samd51_crypto_cipher.c
Go to the documentation of this file.
Collection of AEAD algorithms.
Block cipher modes of operation.
General definitions for cryptographic algorithms.
Debugging facilities.
void osAcquireMutex(OsMutex *mutex)
Acquire ownership of the specified mutex object.
Definition: os_port_chibios.c:388
void osReleaseMutex(OsMutex *mutex)
Release ownership of the specified mutex object.
Definition: os_port_chibios.c:400
SAMD51 hardware cryptographic accelerator.
error_t aesInit(AesContext *context, const uint8_t *key, size_t keyLen)
Key expansion.
Definition: samd51_crypto_cipher.c:223
error_t gcmEncrypt(GcmContext *context, const uint8_t *iv, size_t ivLen, const uint8_t *a, size_t aLen, const uint8_t *p, uint8_t *c, size_t length, uint8_t *t, size_t tLen)
Authenticated encryption using GCM.
Definition: samd51_crypto_cipher.c:1303
void aesProcessData(AesContext *context, uint8_t *iv, const uint8_t *input, uint8_t *output, size_t length, uint32_t mode)
Perform AES encryption or decryption.
Definition: samd51_crypto_cipher.c:147
error_t cbcEncrypt(const CipherAlgo *cipher, void *context, uint8_t *iv, const uint8_t *p, uint8_t *c, size_t length)
CBC encryption.
Definition: samd51_crypto_cipher.c:432
void gcmProcessData(const uint32_t *j, const uint8_t *input, uint8_t *output, size_t length)
Encrypt/decrypt payload data.
Definition: samd51_crypto_cipher.c:1083
void gcmGenerateHashSubKey(AesContext *context)
Generate hash subkey.
Definition: samd51_crypto_cipher.c:879
error_t cbcDecrypt(const CipherAlgo *cipher, void *context, uint8_t *iv, const uint8_t *c, uint8_t *p, size_t length)
CBC decryption.
Definition: samd51_crypto_cipher.c:512
void aesDecryptBlock(AesContext *context, const uint8_t *input, uint8_t *output)
Decrypt a 16-byte block using AES algorithm.
Definition: samd51_crypto_cipher.c:281
error_t cfbDecrypt(const CipherAlgo *cipher, void *context, uint_t s, uint8_t *iv, const uint8_t *c, uint8_t *p, size_t length)
CFB decryption.
Definition: samd51_crypto_cipher.c:696
void gcmGenerateTag(AesContext *context, const uint32_t *j, size_t aadLen, size_t dataLen, uint8_t *tag)
Calculate authentication tag.
Definition: samd51_crypto_cipher.c:1196
void aesEncryptBlock(AesContext *context, const uint8_t *input, uint8_t *output)
Encrypt a 16-byte block using AES algorithm.
Definition: samd51_crypto_cipher.c:266
error_t gcmDecrypt(GcmContext *context, const uint8_t *iv, size_t ivLen, const uint8_t *a, size_t aLen, const uint8_t *c, uint8_t *p, size_t length, const uint8_t *t, size_t tLen)
Authenticated decryption using GCM.
Definition: samd51_crypto_cipher.c:1359
error_t ecbEncrypt(const CipherAlgo *cipher, void *context, const uint8_t *p, uint8_t *c, size_t length)
ECB encryption.
Definition: samd51_crypto_cipher.c:301
void gcmSetMode(AesContext *context, uint32_t mode)
Set GCM operation mode.
Definition: samd51_crypto_cipher.c:922
error_t gcmInit(GcmContext *context, const CipherAlgo *cipherAlgo, void *cipherContext)
Initialize GCM context.
Definition: samd51_crypto_cipher.c:1268
void gcmProcessAuthData(const uint8_t *aad, size_t aadLen)
Process additional authenticated data.
Definition: samd51_crypto_cipher.c:1044
error_t cfbEncrypt(const CipherAlgo *cipher, void *context, uint_t s, uint8_t *iv, const uint8_t *p, uint8_t *c, size_t length)
CFB encryption.
Definition: samd51_crypto_cipher.c:603
void gcmGeneratePreCounterBlock(const uint8_t *iv, size_t ivLen, uint32_t *j)
Generate pre-counter block.
Definition: samd51_crypto_cipher.c:969
void aesProcessDataBlock(const uint8_t *input, uint8_t *output)
Encrypt/decrypt a 16-byte block using AES algorithm.
Definition: samd51_crypto_cipher.c:109
error_t ofbEncrypt(const CipherAlgo *cipher, void *context, uint_t s, uint8_t *iv, const uint8_t *p, uint8_t *c, size_t length)
OFB encryption.
Definition: samd51_crypto_cipher.c:791
error_t ecbDecrypt(const CipherAlgo *cipher, void *context, const uint8_t *c, uint8_t *p, size_t length)
ECB decryption.
Definition: samd51_crypto_cipher.c:365
SAMD51 cipher hardware accelerator.