| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef NETTLE_CBC_H_INCLUDED |
| | #define NETTLE_CBC_H_INCLUDED |
| |
|
| | #include "nettle-types.h" |
| |
|
| | #ifdef __cplusplus |
| | extern "C" { |
| | #endif |
| |
|
| | |
| | #define cbc_encrypt nettle_cbc_encrypt |
| | #define cbc_decrypt nettle_cbc_decrypt |
| |
|
| | void |
| | cbc_encrypt(const void *ctx, nettle_cipher_func *f, |
| | size_t block_size, uint8_t *iv, |
| | size_t length, uint8_t *dst, |
| | const uint8_t *src); |
| |
|
| | void |
| | cbc_decrypt(const void *ctx, nettle_cipher_func *f, |
| | size_t block_size, uint8_t *iv, |
| | size_t length, uint8_t *dst, |
| | const uint8_t *src); |
| |
|
| | #define CBC_CTX(type, size) \ |
| | { type ctx; uint8_t iv[size]; } |
| |
|
| | #define CBC_SET_IV(ctx, data) \ |
| | memcpy((ctx)->iv, (data), sizeof((ctx)->iv)) |
| |
|
| | |
| | #define CBC_ENCRYPT(self, f, length, dst, src) \ |
| | (0 ? ((f)(&(self)->ctx, ~(size_t) 0, \ |
| | (uint8_t *) 0, (const uint8_t *) 0)) \ |
| | : cbc_encrypt((void *) &(self)->ctx, \ |
| | (nettle_cipher_func *) (f), \ |
| | sizeof((self)->iv), (self)->iv, \ |
| | (length), (dst), (src))) |
| |
|
| | #define CBC_DECRYPT(self, f, length, dst, src) \ |
| | (0 ? ((f)(&(self)->ctx, ~(size_t) 0, \ |
| | (uint8_t *) 0, (const uint8_t *) 0)) \ |
| | : cbc_decrypt((void *) &(self)->ctx, \ |
| | (nettle_cipher_func *) (f), \ |
| | sizeof((self)->iv), (self)->iv, \ |
| | (length), (dst), (src))) |
| |
|
| | #ifdef __cplusplus |
| | } |
| | #endif |
| |
|
| | #endif |
| |
|