|
Lightweight Cryptography Primitives
|
TinyJAMBU authenticated encryption algorithm. More...
#include <stddef.h>Go to the source code of this file.
Macros | |
| #define | TINY_JAMBU_128_KEY_SIZE 16 |
| Size of the key for TinyJAMBU-128. | |
| #define | TINY_JAMBU_192_KEY_SIZE 24 |
| Size of the key for TinyJAMBU-192. | |
| #define | TINY_JAMBU_256_KEY_SIZE 32 |
| Size of the key for TinyJAMBU-256. | |
| #define | TINY_JAMBU_TAG_SIZE 8 |
| Size of the authentication tag for all TinyJAMBU variants. | |
| #define | TINY_JAMBU_NONCE_SIZE 12 |
| Size of the nonce for all TinyJAMBU variants. | |
Functions | |
| int | tiny_jambu_128_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 TinyJAMBU-128. More... | |
| int | tiny_jambu_128_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 TinyJAMBU-128. More... | |
| int | tiny_jambu_192_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 TinyJAMBU-192. More... | |
| int | tiny_jambu_192_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 TinyJAMBU-192. More... | |
| int | tiny_jambu_256_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 TinyJAMBU-256. More... | |
| int | tiny_jambu_256_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 TinyJAMBU-256. More... | |
TinyJAMBU authenticated encryption algorithm.
TinyJAMBU is a family of encryption algorithms that are built around a lightweight 128-bit permutation. There are three variants of TinyJAMBU with different key sizes:
TinyJAMBU has one of the smallest RAM and flash memory footprints out of all the algorithms in this library.
| int tiny_jambu_128_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 TinyJAMBU-128.
| 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 8 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 tiny_jambu_128_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 TinyJAMBU-128.
| c | Buffer to receive the output. |
| clen | On exit, set to the length of the output which includes the ciphertext and the 8 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 tiny_jambu_192_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 TinyJAMBU-192.
| 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 8 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 tiny_jambu_192_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 TinyJAMBU-192.
| c | Buffer to receive the output. |
| clen | On exit, set to the length of the output which includes the ciphertext and the 8 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 tiny_jambu_256_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 TinyJAMBU-256.
| 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 8 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 tiny_jambu_256_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 TinyJAMBU-256.
| c | Buffer to receive the output. |
| clen | On exit, set to the length of the output which includes the ciphertext and the 8 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. |
1.8.6