![]() |
MySQL 8.0.43
Source Code Documentation
|
Wrapper to give simple interface for MySQL to AES standard encryption. More...
Go to the source code of this file.
Macros | |
| #define | MY_AES_IV_SIZE 16 |
| AES IV size is 16 bytes for all supported ciphers except ECB. More... | |
| #define | MY_AES_BLOCK_SIZE 16 |
| AES block size is fixed to be 128 bits for CBC and ECB. More... | |
| #define | MY_AES_BEGIN my_aes_128_ecb |
| #define | MY_AES_END my_aes_256_ofb |
| #define | MY_AES_BAD_DATA -1 |
Enumerations | |
| enum | my_aes_opmode { my_aes_128_ecb , my_aes_192_ecb , my_aes_256_ecb , my_aes_128_cbc , my_aes_192_cbc , my_aes_256_cbc , my_aes_128_cfb1 , my_aes_192_cfb1 , my_aes_256_cfb1 , my_aes_128_cfb8 , my_aes_192_cfb8 , my_aes_256_cfb8 , my_aes_128_cfb128 , my_aes_192_cfb128 , my_aes_256_cfb128 , my_aes_128_ofb , my_aes_192_ofb , my_aes_256_ofb } |
| Supported AES cipher/block mode combos. More... | |
Functions | |
| int | my_aes_encrypt (const unsigned char *source, uint32 source_length, unsigned char *dest, const unsigned char *key, uint32 key_length, enum my_aes_opmode mode, const unsigned char *iv, bool padding=true, vector< string > *kdf_options=nullptr) |
| Encrypt a buffer using AES. More... | |
| int | my_aes_decrypt (const unsigned char *source, uint32 source_length, unsigned char *dest, const unsigned char *key, uint32 key_length, enum my_aes_opmode mode, const unsigned char *iv, bool padding=true, vector< string > *kdf_options=nullptr) |
| Decrypt an AES encrypted buffer. More... | |
| longlong | my_aes_get_size (uint32 source_length, enum my_aes_opmode opmode) |
| Calculate the size of a buffer large enough for encrypted data. More... | |
| bool | my_aes_needs_iv (my_aes_opmode opmode) |
| Return true if the AES cipher and block mode requires an IV. More... | |
Variables | |
| const char * | my_aes_opmode_names [] |
| String representations of the supported AES modes. More... | |
Wrapper to give simple interface for MySQL to AES standard encryption.
| #define MY_AES_BAD_DATA -1 |
| #define MY_AES_BEGIN my_aes_128_ecb |
| #define MY_AES_BLOCK_SIZE 16 |
AES block size is fixed to be 128 bits for CBC and ECB.
| #define MY_AES_END my_aes_256_ofb |
| #define MY_AES_IV_SIZE 16 |
AES IV size is 16 bytes for all supported ciphers except ECB.
| enum my_aes_opmode |
Supported AES cipher/block mode combos.
| int my_aes_decrypt | ( | const unsigned char * | source, |
| uint32 | source_length, | ||
| unsigned char * | dest, | ||
| const unsigned char * | key, | ||
| uint32 | key_length, | ||
| enum my_aes_opmode | mode, | ||
| const unsigned char * | iv, | ||
| bool | padding = true, |
||
| vector< string > * | kdf_options = nullptr |
||
| ) |
Decrypt an AES encrypted buffer.
| source | Pointer to data for decryption |
| source_length | size of encrypted data |
| dest | buffer to place decrypted data (must be large enough) |
| key | Key to be used for decryption |
| key_length | Length of the key. Will handle keys of any length |
| mode | encryption mode |
| iv | 16 bytes initialization vector if needed. Otherwise NULL |
| padding | if padding needed. |
| kdf_options | KDF options |
| int my_aes_encrypt | ( | const unsigned char * | source, |
| uint32 | source_length, | ||
| unsigned char * | dest, | ||
| const unsigned char * | key, | ||
| uint32 | key_length, | ||
| enum my_aes_opmode | mode, | ||
| const unsigned char * | iv, | ||
| bool | padding = true, |
||
| vector< string > * | kdf_options = nullptr |
||
| ) |
Encrypt a buffer using AES.
| [in] | source | Pointer to data for encryption |
| [in] | source_length | Size of encryption data |
| [out] | dest | Buffer to place encrypted data (must be large enough and not overlap with source) |
| [in] | key | Key to be used for encryption |
| [in] | key_length | Length of the key. Will handle keys of any length |
| [in] | mode | encryption mode |
| [in] | iv | 16 bytes initialization vector if needed. Otherwise NULL |
| [in] | padding | if padding needed. |
| kdf_options | KDF options |
| longlong my_aes_get_size | ( | uint32 | source_length, |
| enum my_aes_opmode | opmode | ||
| ) |
Calculate the size of a buffer large enough for encrypted data.
| source_length | length of data to be encrypted |
| opmode | encryption mode |
| bool my_aes_needs_iv | ( | my_aes_opmode | opmode | ) |
Return true if the AES cipher and block mode requires an IV.
| opmode | encryption mode |
| true | IV needed |
| false | IV not needed |
|
extern |
String representations of the supported AES modes.
Keep in sync with my_aes_opmode