BearSSL: br_block_cbcenc_class Struct Reference

BearSSL

Loading...
Searching...
No Matches
Data Fields
br_block_cbcenc_class Struct Reference

Class type for CBC encryption implementations. More...

`#include <bearssl_block.h>`

## Data Fields
size_t | context_size
| Size (in bytes) of the context structure appropriate for containing subkeys.
unsigned | block_size
| Size of individual blocks (in bytes).
unsigned | log_block_size
| Base-2 logarithm of the size of individual blocks, expressed in bytes.
void(* | init )(const br_block_cbcenc_class **ctx, const void *key, size_t key_len)
| Initialisation function.
void(* | run )(const br_block_cbcenc_class *const *ctx, void *iv, void *data, size_t len)
| Run the CBC encryption.

## Detailed Description

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.

## Field Documentation

## ◆ block_size

unsigned br_block_cbcenc_class::block_size

Size of individual blocks (in bytes).

## ◆ context_size

size_t br_block_cbcenc_class::context_size

Size (in bytes) of the context structure appropriate for containing subkeys.

## ◆ init

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.

Parameters

  ctx | context structure to initialise.
  key | secret key.
  key_len | key length (in bytes).

## ◆ log_block_size

unsigned br_block_cbcenc_class::log_block_size

Base-2 logarithm of the size of individual blocks, expressed in bytes.

## ◆ run

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.

Parameters

  ctx | context structure (already initialised).
  iv | IV for CBC encryption (updated).
  data | data to encrypt.
  len | data length (in bytes, multiple of block size).

The documentation for this struct was generated from the following file:

- bearssl_block.h