ChibiOS/HAL  6.1.0
hal_crypto_lld.c File Reference

PLATFORM cryptographic subsystem low level driver source. More...

#include "hal.h"

Go to the source code of this file.

Functions

void cry_lld_init (void)
 Low level crypto driver initialization. More...
 
void cry_lld_start (CRYDriver *cryp)
 Configures and activates the crypto peripheral. More...
 
void cry_lld_stop (CRYDriver *cryp)
 Deactivates the crypto peripheral. More...
 
cryerror_t cry_lld_loadkey (CRYDriver *cryp, cryalgorithm_t algorithm, size_t size, const uint8_t *keyp)
 Initializes the transient key for a specific algorithm. More...
 
cryerror_t cry_lld_encrypt_AES (CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
 Encryption of a single block using AES. More...
 
cryerror_t cry_lld_decrypt_AES (CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
 Decryption of a single block using AES. More...
 
cryerror_t cry_lld_encrypt_AES_ECB (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out)
 Encryption operation using AES-ECB. More...
 
cryerror_t cry_lld_decrypt_AES_ECB (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out)
 Decryption operation using AES-ECB. More...
 
cryerror_t cry_lld_encrypt_AES_CBC (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv)
 Encryption operation using AES-CBC. More...
 
cryerror_t cry_lld_decrypt_AES_CBC (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv)
 Decryption operation using AES-CBC. More...
 
cryerror_t cry_lld_encrypt_AES_CFB (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv)
 Encryption operation using AES-CFB. More...
 
cryerror_t cry_lld_decrypt_AES_CFB (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv)
 Decryption operation using AES-CFB. More...
 
cryerror_t cry_lld_encrypt_AES_CTR (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv)
 Encryption operation using AES-CTR. More...
 
cryerror_t cry_lld_decrypt_AES_CTR (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv)
 Decryption operation using AES-CTR. More...
 
cryerror_t cry_lld_encrypt_AES_GCM (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv, size_t aadsize, const uint8_t *aad, uint8_t *authtag)
 Encryption operation using AES-GCM. More...
 
cryerror_t cry_lld_decrypt_AES_GCM (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv, size_t aadsize, const uint8_t *aad, uint8_t *authtag)
 Decryption operation using AES-GCM. More...
 
cryerror_t cry_lld_encrypt_DES (CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
 Encryption of a single block using (T)DES. More...
 
cryerror_t cry_lld_decrypt_DES (CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
 Decryption of a single block using (T)DES. More...
 
cryerror_t cry_lld_encrypt_DES_ECB (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out)
 Encryption operation using (T)DES-ECB. More...
 
cryerror_t cry_lld_decrypt_DES_ECB (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out)
 Decryption operation using (T)DES-ECB. More...
 
cryerror_t cry_lld_encrypt_DES_CBC (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv)
 Encryption operation using (T)DES-CBC. More...
 
cryerror_t cry_lld_decrypt_DES_CBC (CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out, const uint8_t *iv)
 Decryption operation using (T)DES-CBC. More...
 
cryerror_t cry_lld_SHA1_init (CRYDriver *cryp, SHA1Context *sha1ctxp)
 Hash initialization using SHA1. More...
 
cryerror_t cry_lld_SHA1_update (CRYDriver *cryp, SHA1Context *sha1ctxp, size_t size, const uint8_t *in)
 Hash update using SHA1. More...
 
cryerror_t cry_lld_SHA1_final (CRYDriver *cryp, SHA1Context *sha1ctxp, uint8_t *out)
 Hash finalization using SHA1. More...
 
cryerror_t cry_lld_SHA256_init (CRYDriver *cryp, SHA256Context *sha256ctxp)
 Hash initialization using SHA256. More...
 
cryerror_t cry_lld_SHA256_update (CRYDriver *cryp, SHA256Context *sha256ctxp, size_t size, const uint8_t *in)
 Hash update using SHA256. More...
 
cryerror_t cry_lld_SHA256_final (CRYDriver *cryp, SHA256Context *sha256ctxp, uint8_t *out)
 Hash finalization using SHA256. More...
 
cryerror_t cry_lld_SHA512_init (CRYDriver *cryp, SHA512Context *sha512ctxp)
 Hash initialization using SHA512. More...
 
cryerror_t cry_lld_SHA512_update (CRYDriver *cryp, SHA512Context *sha512ctxp, size_t size, const uint8_t *in)
 Hash update using SHA512. More...
 
cryerror_t cry_lld_SHA512_final (CRYDriver *cryp, SHA512Context *sha512ctxp, uint8_t *out)
 Hash finalization using SHA512. More...
 
cryerror_t cry_lld_TRNG (CRYDriver *cryp, uint8_t *out)
 True random numbers generator. More...
 

Variables

CRYDriver CRYD1
 CRY1 driver identifier. More...
 

Detailed Description

PLATFORM cryptographic subsystem low level driver source.

Definition in file hal_crypto_lld.c.