libhashkit/aes: simplify code
[awesomized/libmemcached] / src / libhashkit / encrypt.cc
1 /*
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 +--------------------------------------------------------------------+
14 */
15
16 #include "libhashkit/common.h"
17
18 hashkit_string_st *hashkit_encrypt(hashkit_st *kit, const char *source, size_t source_length) {
19 return aes_encrypt((aes_key_t *) kit->_key, source,
20 source_length);
21 }
22
23 hashkit_string_st *hashkit_decrypt(hashkit_st *kit, const char *source, size_t source_length) {
24 return aes_decrypt((aes_key_t *)kit->_key, source, source_length);
25 }
26
27 bool hashkit_key(hashkit_st *kit, const char *key, const size_t key_length) {
28 if (kit->_key) {
29 aes_free_key((aes_key_t *) kit->_key);
30 }
31
32 kit->_key = aes_create_key(key, key_length);
33
34 return bool(kit->_key);
35 }