Lightweight Cryptography Primitives
|
AES-GCM Authenticated Encryption with Associated Data. More...
#include "aead-metadata.h"
Go to the source code of this file.
Macros | |
#define | AES128GCM_KEY_SIZE 16 |
Size of the AES-128-GCM key in bytes. | |
#define | AES192GCM_KEY_SIZE 24 |
Size of the AES-192-GCM key in bytes. | |
#define | AES256GCM_KEY_SIZE 32 |
Size of the AES-256-GCM key in bytes. | |
#define | AESGCM_NONCE_SIZE 12 |
Size of the AES-GCM nonce in bytes (96 bits). | |
#define | AESGCM_TAG_SIZE 16 |
Size of the AES-GCM tag in bytes. | |
Functions | |
int | aesgcm128_aead_encrypt (unsigned char *c, size_t *clen, const unsigned char *m, size_t mlen, const unsigned char *ad, size_t adlen, const unsigned char *npub, const unsigned char *k) |
Encrypts and authenticates a packet with AES-128-GCM. More... | |
int | aesgcm128_aead_decrypt (unsigned char *m, size_t *mlen, const unsigned char *c, size_t clen, const unsigned char *ad, size_t adlen, const unsigned char *npub, const unsigned char *k) |
Decrypts and authenticates a packet with AES-128-GCM. More... | |
int | aesgcm192_aead_encrypt (unsigned char *c, size_t *clen, const unsigned char *m, size_t mlen, const unsigned char *ad, size_t adlen, const unsigned char *npub, const unsigned char *k) |
Encrypts and authenticates a packet with AES-192-GCM. More... | |
int | aesgcm192_aead_decrypt (unsigned char *m, size_t *mlen, const unsigned char *c, size_t clen, const unsigned char *ad, size_t adlen, const unsigned char *npub, const unsigned char *k) |
Decrypts and authenticates a packet with AES-192-GCM. More... | |
int | aesgcm256_aead_encrypt (unsigned char *c, size_t *clen, const unsigned char *m, size_t mlen, const unsigned char *ad, size_t adlen, const unsigned char *npub, const unsigned char *k) |
Encrypts and authenticates a packet with AES-256-GCM. More... | |
int | aesgcm256_aead_decrypt (unsigned char *m, size_t *mlen, const unsigned char *c, size_t clen, const unsigned char *ad, size_t adlen, const unsigned char *npub, const unsigned char *k) |
Decrypts and authenticates a packet with AES-256-GCM. More... | |
AES-GCM Authenticated Encryption with Associated Data.
int aesgcm128_aead_decrypt | ( | unsigned char * | m, |
size_t * | mlen, | ||
const unsigned char * | c, | ||
size_t | clen, | ||
const unsigned char * | ad, | ||
size_t | adlen, | ||
const unsigned char * | npub, | ||
const unsigned char * | k | ||
) |
Decrypts and authenticates a packet with AES-128-GCM.
m | Buffer to receive the plaintext message on output. |
mlen | Receives the length of the plaintext message on output. |
c | Buffer that contains the ciphertext and authentication tag to decrypt. |
clen | Length of the input data in bytes, which includes the ciphertext and the 16 byte authentication tag. |
ad | Buffer that contains associated data to authenticate along with the packet but which does not need to be encrypted. |
adlen | Length of the associated data in bytes. |
npub | Points to the public nonce for the packet which must be 12 bytes in length. |
k | Points to the 16 bytes of the key to use to decrypt the packet. |
int aesgcm128_aead_encrypt | ( | unsigned char * | c, |
size_t * | clen, | ||
const unsigned char * | m, | ||
size_t | mlen, | ||
const unsigned char * | ad, | ||
size_t | adlen, | ||
const unsigned char * | npub, | ||
const unsigned char * | k | ||
) |
Encrypts and authenticates a packet with AES-128-GCM.
c | Buffer to receive the output. |
clen | On exit, set to the length of the output which includes the ciphertext and the 16 byte authentication tag. |
m | Buffer that contains the plaintext message to encrypt. |
mlen | Length of the plaintext message in bytes. |
ad | Buffer that contains associated data to authenticate along with the packet but which does not need to be encrypted. |
adlen | Length of the associated data in bytes. |
npub | Points to the public nonce for the packet which must be 12 bytes in length. |
k | Points to the 16 bytes of the key to use to encrypt the packet. |
int aesgcm192_aead_decrypt | ( | unsigned char * | m, |
size_t * | mlen, | ||
const unsigned char * | c, | ||
size_t | clen, | ||
const unsigned char * | ad, | ||
size_t | adlen, | ||
const unsigned char * | npub, | ||
const unsigned char * | k | ||
) |
Decrypts and authenticates a packet with AES-192-GCM.
m | Buffer to receive the plaintext message on output. |
mlen | Receives the length of the plaintext message on output. |
c | Buffer that contains the ciphertext and authentication tag to decrypt. |
clen | Length of the input data in bytes, which includes the ciphertext and the 16 byte authentication tag. |
ad | Buffer that contains associated data to authenticate along with the packet but which does not need to be encrypted. |
adlen | Length of the associated data in bytes. |
npub | Points to the public nonce for the packet which must be 12 bytes in length. |
k | Points to the 24 bytes of the key to use to decrypt the packet. |
int aesgcm192_aead_encrypt | ( | unsigned char * | c, |
size_t * | clen, | ||
const unsigned char * | m, | ||
size_t | mlen, | ||
const unsigned char * | ad, | ||
size_t | adlen, | ||
const unsigned char * | npub, | ||
const unsigned char * | k | ||
) |
Encrypts and authenticates a packet with AES-192-GCM.
c | Buffer to receive the output. |
clen | On exit, set to the length of the output which includes the ciphertext and the 16 byte authentication tag. |
m | Buffer that contains the plaintext message to encrypt. |
mlen | Length of the plaintext message in bytes. |
ad | Buffer that contains associated data to authenticate along with the packet but which does not need to be encrypted. |
adlen | Length of the associated data in bytes. |
npub | Points to the public nonce for the packet which must be 12 bytes in length. |
k | Points to the 24 bytes of the key to use to encrypt the packet. |
int aesgcm256_aead_decrypt | ( | unsigned char * | m, |
size_t * | mlen, | ||
const unsigned char * | c, | ||
size_t | clen, | ||
const unsigned char * | ad, | ||
size_t | adlen, | ||
const unsigned char * | npub, | ||
const unsigned char * | k | ||
) |
Decrypts and authenticates a packet with AES-256-GCM.
m | Buffer to receive the plaintext message on output. |
mlen | Receives the length of the plaintext message on output. |
c | Buffer that contains the ciphertext and authentication tag to decrypt. |
clen | Length of the input data in bytes, which includes the ciphertext and the 16 byte authentication tag. |
ad | Buffer that contains associated data to authenticate along with the packet but which does not need to be encrypted. |
adlen | Length of the associated data in bytes. |
npub | Points to the public nonce for the packet which must be 12 bytes in length. |
k | Points to the 32 bytes of the key to use to decrypt the packet. |
int aesgcm256_aead_encrypt | ( | unsigned char * | c, |
size_t * | clen, | ||
const unsigned char * | m, | ||
size_t | mlen, | ||
const unsigned char * | ad, | ||
size_t | adlen, | ||
const unsigned char * | npub, | ||
const unsigned char * | k | ||
) |
Encrypts and authenticates a packet with AES-256-GCM.
c | Buffer to receive the output. |
clen | On exit, set to the length of the output which includes the ciphertext and the 16 byte authentication tag. |
m | Buffer that contains the plaintext message to encrypt. |
mlen | Length of the plaintext message in bytes. |
ad | Buffer that contains associated data to authenticate along with the packet but which does not need to be encrypted. |
adlen | Length of the associated data in bytes. |
npub | Points to the public nonce for the packet which must be 12 bytes in length. |
k | Points to the 32 bytes of the key to use to encrypt the packet. |