aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/plugins/openssl/openssl_hmac.h
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-06-22 10:52:20 +0200
committerTobias Brunner <tobias@strongswan.org>2012-06-25 16:35:06 +0200
commit73d032e41276ecca3b1b7c7f95c805a649113b48 (patch)
tree6455f23af6f13677df7454d15a585edabf9ff4b2 /src/libstrongswan/plugins/openssl/openssl_hmac.h
parent63420c6e136cd9dc46e2a61f5ea178ed7e434c0d (diff)
downloadstrongswan-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.h71
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_ @}*/