/****************************************************************************** * * Copyright (c) 2017-2019 by Löwenware Ltd * Please, refer LICENSE file for legal information * ******************************************************************************/ /** * @file crypt.h * @author Ilja Kartašov * @brief * * @see https://lowenware.com/ */ #ifndef AX_CRYPT_H_F18E0303_66D9_4793_A902_230BA0A0A46F #define AX_CRYPT_H_F18E0303_66D9_4793_A902_230BA0A0A46F #include #include #include #include #define AX_CRYPT_KEY_SIZE 32 #define AX_CRYPT_SALT_SIZE 8 struct ax_crypt { EVP_CIPHER_CTX *e_ctx; EVP_CIPHER_CTX *d_ctx; }; typedef struct ax_crypt * AxCrypt; AislStatus ax_crypt_init(AxSession crypt, const char *key_file); void ax_crypt_release(AxSession crypt); /* encrypt */ int ax_crypt_write(AxSession crypt, char **out, const char *input, int in_len); /* decrypt */ int ax_crypt_read(AxSession crypt, char **out, const char *input, int in_len); /* encrypt and convert to BASE64 */ int ax_crypt_encode(AxSession crypt, char **out, const char *input, int in_len); /* decrypt from BASE64 */ int ax_crypt_decode(AxSession crypt, char **out, const char *input, int in_len); #endif /* !AX_CRYPT_H */