9 #ifndef NDN_SECURITY_AES_H_ 10 #define NDN_SECURITY_AES_H_ 12 #include "../ndn-error-code.h" 32 uint8_t* output_value, uint8_t output_size,
35 uint8_t* output_value, uint8_t output_size,
89 const uint8_t* key_value, uint32_t key_size);
101 uint32_t key_size, uint32_t key_id)
122 uint8_t* output_value, uint8_t output_size,
139 uint8_t* output_value, uint8_t output_size,
164 #endif // NDN_SECURITY_AES_H_ ndn_aes_get_key_value_impl get_key_value
Definition: ndn-lite-aes.h:45
const uint8_t *(* ndn_aes_get_key_value_impl)(const abstract_aes_key_t *aes_key)
Definition: ndn-lite-aes.h:28
ndn_aes_load_key_impl load_key
Definition: ndn-lite-aes.h:46
int ndn_aes_load_key(ndn_aes_key_t *aes_key, const uint8_t *key_value, uint32_t key_size)
Load in-memory key bits into an NDN aes key.
Definition: ndn-lite-aes.c:32
Definition: ndn-lite-default-aes-impl.h:14
static int ndn_aes_key_init(ndn_aes_key_t *key, const uint8_t *key_value, uint32_t key_size, uint32_t key_id)
Initialize an AES-128 key.
Definition: ndn-lite-aes.h:100
int ndn_aes_cbc_decrypt(const uint8_t *input_value, uint8_t input_size, uint8_t *output_value, uint8_t output_size, const uint8_t *aes_iv, const ndn_aes_key_t *aes_key)
Use AES-128-CBC algorithm to decrypt an encrypted buffer.
Definition: ndn-lite-aes.c:49
uint32_t key_size
The key size of key bytes.
Definition: ndn-lite-default-aes-impl.h:22
uint32_t ndn_aes_probe_padding_size(uint32_t plaintext_size)
Probe after padding size of plaintext.
Definition: ndn-lite-aes.c:59
uint32_t ndn_aes_get_key_size(const ndn_aes_key_t *aes_key)
Get aes key size in unit of byte.
Definition: ndn-lite-aes.c:20
int ndn_aes_cbc_encrypt(const uint8_t *input_value, uint8_t input_size, uint8_t *output_value, uint8_t output_size, const uint8_t *aes_iv, const ndn_aes_key_t *aes_key)
Use AES-128-CBC algorithm to encrypt a buffer.
Definition: ndn-lite-aes.c:39
ndn_aes_backend_t * ndn_aes_get_backend(void)
Definition: ndn-lite-aes.c:14
abstract_aes_key_t abs_key
Definition: ndn-lite-aes.h:57
The structure to keep an AES-128 key.
Definition: ndn-lite-aes.h:56
uint32_t(* ndn_aes_get_key_size_impl)(const abstract_aes_key_t *aes_key)
The APIs that are supposed to be implemented by the backend.
Definition: ndn-lite-aes.h:27
int(* ndn_aes_cbc_decrypt_impl)(const uint8_t *input_value, uint8_t input_size, uint8_t *output_value, uint8_t output_size, const uint8_t *aes_iv, const abstract_aes_key_t *aes_key)
Definition: ndn-lite-aes.h:34
struct ndn_aes_backend ndn_aes_backend_t
The structure to represent the backend implementation.
ndn_aes_cbc_decrypt_impl cbc_decrypt
Definition: ndn-lite-aes.h:48
uint8_t key_value[32]
The key bytes buffer of current key.
Definition: ndn-lite-default-aes-impl.h:18
The structure to represent the backend implementation.
Definition: ndn-lite-aes.h:43
uint32_t(* ndn_aes_probe_padding_size_impl)(uint32_t plaintext_size)
Definition: ndn-lite-aes.h:37
ndn_aes_cbc_encrypt_impl cbc_encrypt
Definition: ndn-lite-aes.h:47
struct ndn_aes_key ndn_aes_key_t
The structure to keep an AES-128 key.
ndn_aes_parse_unpadding_size_impl parse_unpadding_size
Definition: ndn-lite-aes.h:50
uint32_t key_id
The KEY ID of current key.
Definition: ndn-lite-aes.h:61
const uint8_t * ndn_aes_get_key_value(const ndn_aes_key_t *aes_key)
Get aes key bytes.
Definition: ndn-lite-aes.c:26
int(* ndn_aes_load_key_impl)(abstract_aes_key_t *aes_key, const uint8_t *key_value, uint32_t key_size)
Definition: ndn-lite-aes.h:29
int(* ndn_aes_cbc_encrypt_impl)(const uint8_t *input_value, uint8_t input_size, uint8_t *output_value, uint8_t output_size, const uint8_t *aes_iv, const abstract_aes_key_t *aes_key)
Definition: ndn-lite-aes.h:31
ndn_aes_probe_padding_size_impl probe_padding_size
Definition: ndn-lite-aes.h:49
ndn_aes_get_key_size_impl get_key_size
Definition: ndn-lite-aes.h:44
uint32_t ndn_aes_parse_unpadding_size(uint8_t *plaintext_value, uint32_t plaintext_size)
Parse the orginal plaintext size after stripping padding byte.
Definition: ndn-lite-aes.c:65
uint32_t(* ndn_aes_parse_unpadding_size_impl)(uint8_t *plaintext_value, uint32_t plaintext_size)
Definition: ndn-lite-aes.h:38