#include "libhashkit/common.h"
-#ifdef HAVE_OPENSSL_CRYPTO
-# include <openssl/evp.h>
-#endif
-
static inline void _hashkit_init(hashkit_st *self) {
self->base_hash.function = hashkit_one_at_a_time;
self->base_hash.context = NULL;
self->distribution_hash.context = NULL;
self->flags.is_base_same_distributed = true;
- self->_cryptographic_context = NULL;
+ self->_key = NULL;
}
static inline hashkit_st *_hashkit_create(hashkit_st *self) {
return self;
}
-#ifdef HAVE_OPENSSL_CRYPTO
-static void cryptographic_context_free(encryption_context_t *context) {
- EVP_CIPHER_CTX_free(context->encryption_context);
- EVP_CIPHER_CTX_free(context->decryption_context);
- free(context);
-}
-#endif
-
void hashkit_free(hashkit_st *self) {
-#ifdef HAVE_OPENSSL_CRYPTO
- if (self and self->_cryptographic_context) {
- cryptographic_context_free((encryption_context_t *)self->_cryptographic_context);
- self->_cryptographic_context = NULL;
- }
-#else
- if (self and self->_cryptographic_context) {
- free(self->_cryptographic_context);
- self->_cryptographic_context = NULL;
+ if (self and self->_key) {
+ aes_free_key((aes_key_t *) self->_key);
+ self->_key = NULL;
}
-#endif
if (hashkit_is_allocated(self)) {
free(self);
destination->base_hash = source->base_hash;
destination->distribution_hash = source->distribution_hash;
destination->flags = source->flags;
-#ifdef HAVE_OPENSSL_CRYPTO
- if (destination->_cryptographic_context) {
- cryptographic_context_free((encryption_context_t *)destination->_cryptographic_context);
- destination->_cryptographic_context = NULL;
- }
- if (source->_cryptographic_context) {
- destination->_cryptographic_context =
- aes_clone_cryptographic_context(((encryption_context_t *) source->_cryptographic_context));
- if (destination->_cryptographic_context) {
-
- }
- }
-#else
- destination->_cryptographic_context = aes_clone_key(static_cast<aes_key_t *>(source->_cryptographic_context));
-#endif
+ destination->_key = aes_clone_key((aes_key_t *) source->_key);
return destination;
}