ASCON Suite
Functions
aead-masked.h File Reference

Masked ASCON-128 encryption algorithm and related family members. More...

#include <ascon/aead.h>
#include <ascon/masking.h>

Go to the source code of this file.

Functions

void ascon128_masked_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 ascon_masked_key_128_t *k)
 Encrypts and authenticates a packet with masked ASCON-128. More...
 
int ascon128_masked_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 ascon_masked_key_128_t *k)
 Decrypts and authenticates a packet with masked ASCON-128. More...
 
void ascon128a_masked_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 ascon_masked_key_128_t *k)
 Encrypts and authenticates a packet with masked ASCON-128a. More...
 
int ascon128a_masked_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 ascon_masked_key_128_t *k)
 Decrypts and authenticates a packet with masked ASCON-128a. More...
 
void ascon80pq_masked_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 ascon_masked_key_160_t *k)
 Encrypts and authenticates a packet with masked ASCON-80pq. More...
 
int ascon80pq_masked_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 ascon_masked_key_160_t *k)
 Decrypts and authenticates a packet with masked ASCON-80pq. More...
 

Detailed Description

Masked ASCON-128 encryption algorithm and related family members.

References: https://ascon.iaik.tugraz.at/

Definition in file aead-masked.h.

Function Documentation

◆ ascon128_masked_aead_decrypt()

int ascon128_masked_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 ascon_masked_key_128_t k 
)

Decrypts and authenticates a packet with masked ASCON-128.

Parameters
mBuffer to receive the plaintext message on output.
mlenReceives the length of the plaintext message on output.
cBuffer that contains the ciphertext and authentication tag to decrypt.
clenLength of the input data in bytes, which includes the ciphertext and the 16 byte authentication tag.
adBuffer that contains associated data to authenticate along with the packet but which does not need to be encrypted.
adlenLength of the associated data in bytes.
npubPoints to the public nonce for the packet which must be 16 bytes in length.
kPoints to the masked 128-bit key.
Returns
0 on success, -1 if the authentication tag was incorrect, or some other negative number if there was an error in the parameters.
See also
ascon128_aead_encrypt()

Definition at line 194 of file ascon-aead-masked-128.c.

◆ ascon128_masked_aead_encrypt()

void ascon128_masked_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 ascon_masked_key_128_t k 
)

Encrypts and authenticates a packet with masked ASCON-128.

Parameters
cBuffer to receive the output.
clenOn exit, set to the length of the output which includes the ciphertext and the 16 byte authentication tag.
mBuffer that contains the plaintext message to encrypt.
mlenLength of the plaintext message in bytes.
adBuffer that contains associated data to authenticate along with the packet but which does not need to be encrypted.
adlenLength of the associated data in bytes.
npubPoints to the public nonce for the packet which must be 16 bytes in length.
kPoints to the masked 128-bit key.
See also
ascon128_masked_aead_decrypt()

Definition at line 122 of file ascon-aead-masked-128.c.

◆ ascon128a_masked_aead_decrypt()

int ascon128a_masked_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 ascon_masked_key_128_t k 
)

Decrypts and authenticates a packet with masked ASCON-128a.

Parameters
mBuffer to receive the plaintext message on output.
mlenReceives the length of the plaintext message on output.
cBuffer that contains the ciphertext and authentication tag to decrypt.
clenLength of the input data in bytes, which includes the ciphertext and the 16 byte authentication tag.
adBuffer that contains associated data to authenticate along with the packet but which does not need to be encrypted.
adlenLength of the associated data in bytes.
npubPoints to the public nonce for the packet which must be 16 bytes in length.
kPoints to the masked 128-bit key.
Returns
0 on success, -1 if the authentication tag was incorrect, or some other negative number if there was an error in the parameters.
See also
ascon128a_masked_aead_encrypt()

Definition at line 194 of file ascon-aead-masked-128a.c.

◆ ascon128a_masked_aead_encrypt()

void ascon128a_masked_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 ascon_masked_key_128_t k 
)

Encrypts and authenticates a packet with masked ASCON-128a.

Parameters
cBuffer to receive the output.
clenOn exit, set to the length of the output which includes the ciphertext and the 16 byte authentication tag.
mBuffer that contains the plaintext message to encrypt.
mlenLength of the plaintext message in bytes.
adBuffer that contains associated data to authenticate along with the packet but which does not need to be encrypted.
adlenLength of the associated data in bytes.
npubPoints to the public nonce for the packet which must be 16 bytes in length.
kPoints to the masked 128-bit key.
See also
ascon128a_masked_aead_decrypt()

Definition at line 122 of file ascon-aead-masked-128a.c.

◆ ascon80pq_masked_aead_decrypt()

int ascon80pq_masked_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 ascon_masked_key_160_t k 
)

Decrypts and authenticates a packet with masked ASCON-80pq.

Parameters
mBuffer to receive the plaintext message on output.
mlenReceives the length of the plaintext message on output.
cBuffer that contains the ciphertext and authentication tag to decrypt.
clenLength of the input data in bytes, which includes the ciphertext and the 16 byte authentication tag.
adBuffer that contains associated data to authenticate along with the packet but which does not need to be encrypted.
adlenLength of the associated data in bytes.
npubPoints to the public nonce for the packet which must be 16 bytes in length.
kPoints to the masked 160-bit key.
Returns
0 on success, -1 if the authentication tag was incorrect, or some other negative number if there was an error in the parameters.
See also
ascon80pq_masked_aead_encrypt()

Definition at line 197 of file ascon-aead-masked-80pq.c.

◆ ascon80pq_masked_aead_encrypt()

void ascon80pq_masked_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 ascon_masked_key_160_t k 
)

Encrypts and authenticates a packet with masked ASCON-80pq.

Parameters
cBuffer to receive the output.
clenOn exit, set to the length of the output which includes the ciphertext and the 16 byte authentication tag.
mBuffer that contains the plaintext message to encrypt.
mlenLength of the plaintext message in bytes.
adBuffer that contains associated data to authenticate along with the packet but which does not need to be encrypted.
adlenLength of the associated data in bytes.
npubPoints to the public nonce for the packet which must be 16 bytes in length.
kPoints to the masked 160-bit key.
See also
ascon80pq_masked_aead_decrypt()

Definition at line 125 of file ascon-aead-masked-80pq.c.