diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-06-22 10:52:20 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-06-25 16:35:06 +0200 |
commit | 73d032e41276ecca3b1b7c7f95c805a649113b48 (patch) | |
tree | 6455f23af6f13677df7454d15a585edabf9ff4b2 /src/libstrongswan/plugins/openssl/openssl_hmac.h | |
parent | 63420c6e136cd9dc46e2a61f5ea178ed7e434c0d (diff) | |
download | strongswan-73d032e41276ecca3b1b7c7f95c805a649113b48.tar.bz2 strongswan-73d032e41276ecca3b1b7c7f95c805a649113b48.tar.xz |
Use simple wrappers for HMAC based PRF and signer in openssl plugin
Diffstat (limited to 'src/libstrongswan/plugins/openssl/openssl_hmac.h')
-rw-r--r-- | src/libstrongswan/plugins/openssl/openssl_hmac.h | 71 |
1 files changed, 13 insertions, 58 deletions
diff --git a/src/libstrongswan/plugins/openssl/openssl_hmac.h b/src/libstrongswan/plugins/openssl/openssl_hmac.h index 175513c2f..95ab6bfc3 100644 --- a/src/libstrongswan/plugins/openssl/openssl_hmac.h +++ b/src/libstrongswan/plugins/openssl/openssl_hmac.h @@ -14,6 +14,8 @@ */ /** + * Implements HMAC based PRF and signer using OpenSSL's HMAC functions. + * * @defgroup openssl_hmac openssl_hmac * @{ @ingroup openssl_p */ @@ -21,70 +23,23 @@ #ifndef OPENSSL_HMAC_H_ #define OPENSSL_HMAC_H_ -typedef struct openssl_hmac_t openssl_hmac_t; - -#include <crypto/hashers/hasher.h> +#include <crypto/prfs/prf.h> +#include <crypto/signers/signer.h> /** - * Simple wrapper around OpenSSL's functions to calculate HMAC message - * authentication codes + * Creates a new prf_t object based on an HMAC. + * + * @param algo algorithm to implement + * @return prf_t object, NULL if not supported */ -struct openssl_hmac_t { - - /** - * Generate message authentication code. - * - * If out is NULL, no result is given back. A next call will - * append the data to already supplied data. If out is not NULL, - * the mac of all apended data is calculated, written to out and the - * internal state is reset. - * - * @param data chunk of data to authenticate - * @param out pointer where the generated bytes will be written - */ - void (*get_mac)(openssl_hmac_t *this, chunk_t data, u_int8_t *out); - - /** - * Generates message authentication code and allocates memory for it. - * - * If out is NULL, no result is given back. A next call will - * append the data to already supplied data. If out is not NULL, - * the mac of all apended data is calculated, returned in out and the - * internal state is reset; - * - * @param data chunk of data to authenticate - * @param out chunk which will hold generated bytes - */ - void (*allocate_mac)(openssl_hmac_t *this, chunk_t data, chunk_t *out); - - /** - * Get the size of the resulting MAC. - * - * @return block size in bytes - */ - size_t (*get_block_size)(openssl_hmac_t *this); - - /** - * Set the key to be used for the HMAC. - * - * Any key length is accepted. - * - * @param key key to set - */ - void (*set_key)(openssl_hmac_t *this, chunk_t key); - - /** - * Destroys an openssl_hmac_t object. - */ - void (*destroy)(openssl_hmac_t *this); -}; +prf_t *openssl_hmac_prf_create(pseudo_random_function_t algo); /** - * Creates a new openssl_hmac_t object. + * Creates a new signer_t object based on an HMAC. * - * @param algo hash algorithm to use - * @return openssl_hmac_t object, NULL if not supported + * @param algo algorithm to implement + * @return signer_t, NULL if not supported */ -openssl_hmac_t *openssl_hmac_create(hash_algorithm_t algo); +signer_t *openssl_hmac_signer_create(integrity_algorithm_t algo); #endif /** OPENSSL_HMAC_H_ @}*/ |