2 +--------------------------------------------------------------------+
3 | libmemcached-awesome - C/C++ Client Library for memcached |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted under the terms of the BSD license. |
7 | You should have received a copy of the license in a bundled file |
8 | named LICENSE; in case you did not receive a copy you can review |
9 | the terms online at: https://opensource.org/licenses/BSD-3-Clause |
10 +--------------------------------------------------------------------+
11 | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ |
12 | Copyright (c) 2020-2021 Michael Wallner https://awesome.co/ |
13 +--------------------------------------------------------------------+
18 #ifdef HAVE_OPENSSL_CRYPTO
20 #include <openssl/evp.h>
22 typedef struct encryption_context
{
23 EVP_CIPHER_CTX
*encryption_context
;
24 EVP_CIPHER_CTX
*decryption_context
;
25 } encryption_context_t
;
27 hashkit_string_st
*aes_encrypt(encryption_context_t
*crypto_context
, const unsigned char *source
,
28 size_t source_length
);
30 hashkit_string_st
*aes_decrypt(encryption_context_t
*crypto_context
, const unsigned char *source
,
31 size_t source_length
);
33 bool aes_initialize(const unsigned char *key
, const size_t key_length
,
34 encryption_context_t
*crypto_context
);
36 encryption_context_t
*aes_clone_cryptographic_context(encryption_context_t
*source
);
41 hashkit_string_st
*aes_encrypt(aes_key_t
*_aes_key
, const char *source
, size_t source_length
);
43 hashkit_string_st
*aes_decrypt(aes_key_t
*_aes_key
, const char *source
, size_t source_length
);
45 aes_key_t
*aes_create_key(const char *key
, const size_t key_length
);
47 aes_key_t
*aes_clone_key(aes_key_t
*_aes_key
);