BearSSL
|
Class type for CBC encryption implementations. More...
Data Fields | |
size_t | context_size |
Size (in bytes) of the context structure appropriate for containing subkeys. More... | |
unsigned | block_size |
Size of individual blocks (in bytes). More... | |
unsigned | log_block_size |
Base-2 logarithm of the size of individual blocks, expressed in bytes. More... | |
void(* | init )(const br_block_cbcenc_class **ctx, const void *key, size_t key_len) |
Initialisation function. More... | |
void(* | run )(const br_block_cbcenc_class *const *ctx, void *iv, void *data, size_t len) |
Run the CBC encryption. More... | |
Class type for CBC encryption implementations.
A br_block_cbcenc_class
instance points to the functions implementing a specific block cipher, when used in CBC mode for encrypting data.
unsigned br_block_cbcenc_class::block_size |
Size of individual blocks (in bytes).
size_t br_block_cbcenc_class::context_size |
Size (in bytes) of the context structure appropriate for containing subkeys.
void(* br_block_cbcenc_class::init) (const br_block_cbcenc_class **ctx, const void *key, size_t key_len) |
Initialisation function.
This function sets the vtable
field in the context structure. The key length MUST be one of the key lengths supported by the implementation.
ctx | context structure to initialise. |
key | secret key. |
key_len | key length (in bytes). |
unsigned br_block_cbcenc_class::log_block_size |
Base-2 logarithm of the size of individual blocks, expressed in bytes.
void(* br_block_cbcenc_class::run) (const br_block_cbcenc_class *const *ctx, void *iv, void *data, size_t len) |
Run the CBC encryption.
The iv
parameter points to the IV for this run; it is updated with a copy of the last encrypted block. The data is encrypted "in place"; its length (len
) MUST be a multiple of the block size.
ctx | context structure (already initialised). |
iv | IV for CBC encryption (updated). |
data | data to encrypt. |
len | data length (in bytes, multiple of block size). |