27#if (HAL_USE_CRY == TRUE) || defined(__DOXYGEN__)
58#if HAL_CRY_ENFORCE_FALLBACK == FALSE
74#if defined(CRY_DRIVER_EXT_INIT_HOOK)
75 CRY_DRIVER_EXT_INIT_HOOK(cryp);
98#if HAL_CRY_ENFORCE_FALLBACK == FALSE
99#if defined(CRY_LLD_ENHANCED_API)
138#if HAL_CRY_ENFORCE_FALLBACK == FALSE
165 const uint8_t *keyp) {
169#if CRY_LLD_SUPPORTS_AES == TRUE
171#elif HAL_CRY_USE_FALLBACK == TRUE
172 return cry_fallback_aes_loadkey(cryp, size, keyp);
214#if CRY_LLD_SUPPORTS_AES == TRUE
216#elif HAL_CRY_USE_FALLBACK == TRUE
217 return cry_fallback_encrypt_AES(cryp, key_id,
in,
out);
260#if CRY_LLD_SUPPORTS_AES == TRUE
262#elif HAL_CRY_USE_FALLBACK == TRUE
263 return cry_fallback_decrypt_AES(cryp, key_id,
in,
out);
307 ((size & (
size_t)15) == (
size_t)0));
311#if CRY_LLD_SUPPORTS_AES_ECB == TRUE
313#elif HAL_CRY_USE_FALLBACK == TRUE
314 return cry_fallback_encrypt_AES_ECB(cryp, key_id, size,
in,
out);
359 ((size & (
size_t)15) == (
size_t)0));
363#if CRY_LLD_SUPPORTS_AES_ECB == TRUE
365#elif HAL_CRY_USE_FALLBACK == TRUE
366 return cry_fallback_decrypt_AES_ECB(cryp, key_id, size,
in,
out);
413 (iv != NULL) && ((size & (
size_t)15) == (
size_t)0));
417#if CRY_LLD_SUPPORTS_AES_CBC == TRUE
419#elif HAL_CRY_USE_FALLBACK == TRUE
420 return cry_fallback_encrypt_AES_CBC(cryp, key_id, size,
in,
out, iv);
468 (iv != NULL) && ((size & (
size_t)15) == (
size_t)0));
472#if CRY_LLD_SUPPORTS_AES_CBC == TRUE
474#elif HAL_CRY_USE_FALLBACK == TRUE
475 return cry_fallback_decrypt_AES_CBC(cryp, key_id, size,
in,
out, iv);
520 (iv != NULL) && (size > (
size_t)0));
524#if CRY_LLD_SUPPORTS_AES_CFB == TRUE
526#elif HAL_CRY_USE_FALLBACK == TRUE
527 return cry_fallback_encrypt_AES_CFB(cryp, key_id, size,
in,
out, iv);
572 (iv != NULL) && (size > (
size_t)0));
576#if CRY_LLD_SUPPORTS_AES_CFB == TRUE
578#elif HAL_CRY_USE_FALLBACK == TRUE
579 return cry_fallback_decrypt_AES_CFB(cryp, key_id, size,
in,
out, iv);
625 (iv != NULL) && (size > (
size_t)0));
629#if CRY_LLD_SUPPORTS_AES_CTR == TRUE
631#elif HAL_CRY_USE_FALLBACK == TRUE
632 return cry_fallback_encrypt_AES_CTR(cryp, key_id, size,
in,
out, iv);
678 (iv != NULL) && (size > (
size_t)0));
682#if CRY_LLD_SUPPORTS_AES_CTR == TRUE
684#elif HAL_CRY_USE_FALLBACK == TRUE
685 return cry_fallback_decrypt_AES_CTR(cryp, key_id, size,
in,
out, iv);
730 const uint8_t *auth_in,
732 const uint8_t *text_in,
739 (text_size > (
size_t)0) &&
740 (text_in != NULL) && (text_out != NULL) && (iv != NULL) &&
741 (tag_size >= (
size_t)1) && (tag_size <= (
size_t)16) &&
746#if CRY_LLD_SUPPORTS_AES_GCM == TRUE
748 text_size, text_in, text_out, iv,
750#elif HAL_CRY_USE_FALLBACK == TRUE
751 return cry_fallback_encrypt_AES_GCM(cryp, key_id, auth_size, auth_in,
752 text_size, text_in, text_out, iv,
803 const uint8_t *auth_in,
805 const uint8_t *text_in,
809 const uint8_t *tag_in) {
812 (text_size > (
size_t)0) &&
813 (text_in != NULL) && (text_out != NULL) && (iv != NULL) &&
814 (tag_size >= (
size_t)1) && (tag_size <= (
size_t)16) &&
819#if CRY_LLD_SUPPORTS_AES_GCM == TRUE
821 text_size, text_in, text_out, iv,
823#elif HAL_CRY_USE_FALLBACK == TRUE
824 return cry_fallback_decrypt_AES_GCM(cryp, key_id, auth_size, auth_in,
825 text_size, text_in, text_out, iv,
861 const uint8_t *keyp) {
865#if CRY_LLD_SUPPORTS_DES == TRUE
867#elif HAL_CRY_USE_FALLBACK == TRUE
868 return cry_fallback_des_loadkey(cryp, size, keyp);
910#if CRY_LLD_SUPPORTS_DES == TRUE
912#elif HAL_CRY_USE_FALLBACK == TRUE
913 return cry_fallback_encrypt_DES(cryp, key_id,
in,
out);
957#if CRY_LLD_SUPPORTS_DES == TRUE
959#elif HAL_CRY_USE_FALLBACK == TRUE
960 return cry_fallback_decrypt_DES(cryp, key_id,
in,
out);
1004 ((size & (
size_t)7) == (
size_t)0));
1008#if CRY_LLD_SUPPORTS_DES_ECB == TRUE
1010#elif HAL_CRY_USE_FALLBACK == TRUE
1011 return cry_fallback_encrypt_DES_ECB(cryp, key_id, size,
in,
out);
1056 ((size & (
size_t)7) == (
size_t)0));
1060#if CRY_LLD_SUPPORTS_DES_ECB == TRUE
1062#elif HAL_CRY_USE_FALLBACK == TRUE
1063 return cry_fallback_decrypt_DES_ECB(cryp, key_id, size,
in,
out);
1107 const uint8_t *iv) {
1110 (iv != NULL) && ((size & (
size_t)7) == (
size_t)0));
1114#if CRY_LLD_SUPPORTS_DES_CBC == TRUE
1116#elif HAL_CRY_USE_FALLBACK == TRUE
1117 return cry_fallback_encrypt_DES_CBC(cryp, key_id, size,
in,
out, iv);
1162 const uint8_t *iv) {
1165 (iv != NULL) && ((size & (
size_t)7) == (
size_t)0));
1169#if CRY_LLD_SUPPORTS_DES_CBC == TRUE
1171#elif HAL_CRY_USE_FALLBACK == TRUE
1172 return cry_fallback_decrypt_DES_CBC(cryp, key_id, size,
in,
out, iv);
1206#if CRY_LLD_SUPPORTS_SHA1 == TRUE
1208#elif HAL_CRY_USE_FALLBACK == TRUE
1209 return cry_fallback_SHA1_init(cryp, sha1ctxp);
1236 size_t size,
const uint8_t *
in) {
1238 osalDbgCheck((cryp != NULL) && (sha1ctxp != NULL) && (
in != NULL));
1242#if CRY_LLD_SUPPORTS_SHA1 == TRUE
1244#elif HAL_CRY_USE_FALLBACK == TRUE
1245 return cry_fallback_SHA1_update(cryp, sha1ctxp, size,
in);
1278#if CRY_LLD_SUPPORTS_SHA1 == TRUE
1280#elif HAL_CRY_USE_FALLBACK == TRUE
1281 return cry_fallback_SHA1_final(cryp, sha1ctxp,
out);
1311#if CRY_LLD_SUPPORTS_SHA256 == TRUE
1313#elif HAL_CRY_USE_FALLBACK == TRUE
1314 return cry_fallback_SHA256_init(cryp, sha256ctxp);
1340 size_t size,
const uint8_t *
in) {
1342 osalDbgCheck((cryp != NULL) && (sha256ctxp != NULL) && (
in != NULL));
1346#if CRY_LLD_SUPPORTS_SHA256 == TRUE
1348#elif HAL_CRY_USE_FALLBACK == TRUE
1349 return cry_fallback_SHA256_update(cryp, sha256ctxp, size,
in);
1378 osalDbgCheck((cryp != NULL) && (sha256ctxp != NULL) && (
out != NULL));
1382#if CRY_LLD_SUPPORTS_SHA256 == TRUE
1384#elif HAL_CRY_USE_FALLBACK == TRUE
1385 return cry_fallback_SHA256_final(cryp, sha256ctxp,
out);
1415#if CRY_LLD_SUPPORTS_SHA512 == TRUE
1417#elif HAL_CRY_USE_FALLBACK == TRUE
1418 return cry_fallback_SHA512_init(cryp, sha512ctxp);
1444 size_t size,
const uint8_t *
in) {
1446 osalDbgCheck((cryp != NULL) && (sha512ctxp != NULL) && (
in != NULL));
1450#if CRY_LLD_SUPPORTS_SHA512 == TRUE
1452#elif HAL_CRY_USE_FALLBACK == TRUE
1453 return cry_fallback_SHA512_update(cryp, sha512ctxp, size,
in);
1482 osalDbgCheck((cryp != NULL) && (sha512ctxp != NULL) && (
out != NULL));
1486#if CRY_LLD_SUPPORTS_SHA512 == TRUE
1488#elif HAL_CRY_USE_FALLBACK == TRUE
1489 return cry_fallback_SHA512_final(cryp, sha512ctxp,
out);
1517 const uint8_t *keyp) {
1521#if (CRY_LLD_SUPPORTS_HMAC_SHA256 == TRUE) || \
1522 (CRY_LLD_SUPPORTS_HMAC_SHA512 == TRUE)
1524#elif HAL_CRY_USE_FALLBACK == TRUE
1525 return cry_fallback_hmac_loadkey(cryp, size, keyp);
1553 osalDbgCheck((cryp != NULL) && (hmacsha256ctxp != NULL));
1557#if CRY_LLD_SUPPORTS_HMAC_SHA256 == TRUE
1559#elif HAL_CRY_USE_FALLBACK == TRUE
1560 return cry_fallback_HMACSHA256_init(cryp, hmacsha256ctxp);
1563 (void)hmacsha256ctxp;
1588 const uint8_t *
in) {
1590 osalDbgCheck((cryp != NULL) && (hmacsha256ctxp != NULL) && (
in != NULL));
1594#if CRY_LLD_SUPPORTS_HMAC_SHA256 == TRUE
1596#elif HAL_CRY_USE_FALLBACK == TRUE
1597 return cry_fallback_HMACSHA256_update(cryp, hmacsha256ctxp, size,
in);
1600 (void)hmacsha256ctxp;
1627 osalDbgCheck((cryp != NULL) && (hmacsha256ctxp != NULL) && (
out != NULL));
1631#if CRY_LLD_SUPPORTS_HMAC_SHA256 == TRUE
1633#elif HAL_CRY_USE_FALLBACK == TRUE
1634 return cry_fallback_HMACSHA256_final(cryp, hmacsha256ctxp,
out);
1637 (void)hmacsha256ctxp;
1662 osalDbgCheck((cryp != NULL) && (hmacsha512ctxp != NULL));
1666#if CRY_LLD_SUPPORTS_HMAC_SHA512 == TRUE
1668#elif HAL_CRY_USE_FALLBACK == TRUE
1669 return cry_fallback_HMACSHA512_init(cryp, hmacsha512ctxp);
1672 (void)hmacsha512ctxp;
1697 const uint8_t *
in) {
1699 osalDbgCheck((cryp != NULL) && (hmacsha512ctxp != NULL) && (
in != NULL));
1703#if CRY_LLD_SUPPORTS_HMAC_SHA512 == TRUE
1705#elif HAL_CRY_USE_FALLBACK == TRUE
1706 return cry_fallback_HMACSHA512_update(cryp, hmacsha512ctxp, size,
in);
1709 (void)hmacsha512ctxp;
1736 osalDbgCheck((cryp != NULL) && (hmacsha512ctxp != NULL) && (
out != NULL));
1740#if CRY_LLD_SUPPORTS_HMAC_SHA512 == TRUE
1742#elif HAL_CRY_USE_FALLBACK == TRUE
1743 return cry_fallback_HMACSHA512_final(cryp, hmacsha512ctxp,
out);
1746 (void)hmacsha512ctxp;
cryerror_t crySHA256Update(CRYDriver *cryp, SHA256Context *sha256ctxp, size_t size, const uint8_t *in)
Hash update using SHA256.
cryerror_t cryDecryptDES(CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
Decryption of a single block using (T)DES.
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.
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.
cryerror_t crySHA512Final(CRYDriver *cryp, SHA512Context *sha512ctxp, uint8_t *out)
Hash finalization using SHA512.
cryerror_t crySHA512Update(CRYDriver *cryp, SHA512Context *sha512ctxp, size_t size, const uint8_t *in)
Hash update using SHA512.
cryerror_t cry_lld_HMACSHA256_init(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp)
Hash initialization using HMAC_SHA256.
cryerror_t cryEncryptAES(CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
Encryption of a single block using AES.
cryerror_t cryEncryptAES_GCM(CRYDriver *cryp, crykey_t key_id, size_t auth_size, const uint8_t *auth_in, size_t text_size, const uint8_t *text_in, uint8_t *text_out, const uint8_t *iv, size_t tag_size, uint8_t *tag_out)
Encryption operation using AES-GCM.
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.
cryerror_t cryEncryptDES_ECB(CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out)
Encryption operation using (T)DES-ECB.
cryerror_t cry_lld_HMACSHA512_final(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp, uint8_t *out)
Hash finalization using HMAC.
void cry_lld_start(CRYDriver *cryp)
Configures and activates the crypto peripheral.
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.
cryerror_t cryEncryptAES_ECB(CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out)
Encryption operation using AES-ECB.
cryerror_t cryDecryptDES_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.
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.
cryerror_t crySHA1Init(CRYDriver *cryp, SHA1Context *sha1ctxp)
Hash initialization using SHA1.
cryerror_t cry_lld_SHA1_update(CRYDriver *cryp, SHA1Context *sha1ctxp, size_t size, const uint8_t *in)
Hash update using SHA1.
cryerror_t cryEncryptAES_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.
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.
cryerror_t cryHMACSHA512Init(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp)
Hash initialization using HMAC_SHA512.
cryerror_t cryHMACSHA256Update(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp, size_t size, const uint8_t *in)
Hash update using HMAC.
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.
cryerror_t cryDecryptAES_GCM(CRYDriver *cryp, crykey_t key_id, size_t auth_size, const uint8_t *auth_in, size_t text_size, const uint8_t *text_in, uint8_t *text_out, const uint8_t *iv, size_t tag_size, const uint8_t *tag_in)
Decryption operation using AES-GCM.
cryerror_t cry_lld_encrypt_AES_GCM(CRYDriver *cryp, crykey_t key_id, size_t auth_size, const uint8_t *auth_in, size_t text_size, const uint8_t *text_in, uint8_t *text_out, const uint8_t *iv, size_t tag_size, uint8_t *tag_out)
Encryption operation using AES-GCM.
cryerror_t cry_lld_SHA512_init(CRYDriver *cryp, SHA512Context *sha512ctxp)
Hash initialization using SHA512.
cryerror_t cry_lld_SHA256_update(CRYDriver *cryp, SHA256Context *sha256ctxp, size_t size, const uint8_t *in)
Hash update using SHA256.
cryerror_t cryLoadDESTransientKey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the DES transient key.
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.
void cry_lld_init(void)
Low level crypto driver initialization.
cryerror_t cryDecryptAES(CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
Decryption of a single block using AES.
void cryObjectInit(CRYDriver *cryp)
Initializes the standard part of a CRYDriver structure.
cryerror_t cry_lld_aes_loadkey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the AES transient key.
cryerror_t cry_lld_des_loadkey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the DES transient key.
cryerror_t cryDecryptAES_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.
cryerror_t cryEncryptAES_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.
uint32_t crykey_t
CRY key identifier type.
cryerror_t cryDecryptDES_ECB(CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out)
Decryption operation using (T)DES-ECB.
cryerror_t cry_lld_HMACSHA256_final(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp, uint8_t *out)
Hash finalization using HMAC.
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.
cryerror_t cryEncryptAES_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.
cryerror_t cry_lld_HMACSHA256_update(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp, size_t size, const uint8_t *in)
Hash update using HMAC.
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.
cryerror_t cryDecryptAES_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.
cryerror_t crySHA1Update(CRYDriver *cryp, SHA1Context *sha1ctxp, size_t size, const uint8_t *in)
Hash update using SHA1.
cryerror_t cry_lld_HMACSHA512_update(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp, size_t size, const uint8_t *in)
Hash update using HMAC.
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.
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.
cryerror_t cryHMACSHA512Final(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp, uint8_t *out)
Hash finalization using HMAC.
void cryInit(void)
Cryptographic Driver initialization.
cryerror_t crySHA256Final(CRYDriver *cryp, SHA256Context *sha256ctxp, uint8_t *out)
Hash finalization using SHA256.
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.
cryerror_t cry_lld_hmac_loadkey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the HMAC transient key.
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.
cryerror_t cry_lld_SHA256_init(CRYDriver *cryp, SHA256Context *sha256ctxp)
Hash initialization using SHA256.
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.
cryerror_t cry_lld_SHA512_update(CRYDriver *cryp, SHA512Context *sha512ctxp, size_t size, const uint8_t *in)
Hash update using SHA512.
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.
cryerror_t cry_lld_SHA1_final(CRYDriver *cryp, SHA1Context *sha1ctxp, uint8_t *out)
Hash finalization using SHA1.
cryerror_t cry_lld_SHA512_final(CRYDriver *cryp, SHA512Context *sha512ctxp, uint8_t *out)
Hash finalization using SHA512.
cryerror_t cryDecryptAES_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.
cryerror_t cryLoadHMACTransientKey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the HMAC transient key.
void cry_lld_stop(CRYDriver *cryp)
Deactivates the crypto peripheral.
cryerror_t cryHMACSHA256Final(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp, uint8_t *out)
Hash finalization using HMAC.
cryerror_t crySHA1Final(CRYDriver *cryp, SHA1Context *sha1ctxp, uint8_t *out)
Hash finalization using SHA1.
cryerror_t crySHA256Init(CRYDriver *cryp, SHA256Context *sha256ctxp)
Hash initialization using SHA256.
cryerror_t
Driver error codes.
cryerror_t crySHA512Init(CRYDriver *cryp, SHA512Context *sha512ctxp)
Hash initialization using SHA512.
void cryStop(CRYDriver *cryp)
Deactivates the cryptographic peripheral.
cryerror_t cry_lld_decrypt_AES_GCM(CRYDriver *cryp, crykey_t key_id, size_t auth_size, const uint8_t *auth_in, size_t text_size, const uint8_t *text_in, uint8_t *text_out, const uint8_t *iv, size_t tag_size, const uint8_t *tag_in)
Decryption operation using AES-GCM.
cryerror_t cryHMACSHA512Update(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp, size_t size, const uint8_t *in)
Hash update using HMAC.
cryerror_t cry_lld_SHA256_final(CRYDriver *cryp, SHA256Context *sha256ctxp, uint8_t *out)
Hash finalization using SHA256.
cryerror_t cryLoadAESTransientKey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the AES transient key.
cryerror_t cryDecryptAES_ECB(CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out)
Decryption operation using AES-ECB.
cryerror_t cryEncryptDES_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.
cryerror_t cryEncryptDES(CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
Encryption of a single block using (T)DES.
cryerror_t cry_lld_HMACSHA512_init(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp)
Hash initialization using HMAC_SHA512.
msg_t cryStart(CRYDriver *cryp, const CRYConfig *config)
Configures and activates the cryptographic peripheral.
cryerror_t cryHMACSHA256Init(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp)
Hash initialization using HMAC_SHA256.
cryerror_t cry_lld_SHA1_init(CRYDriver *cryp, SHA1Context *sha1ctxp)
Hash initialization using SHA1.
static void osalSysLock(void)
Enters a critical zone from thread context.
static void osalSysUnlock(void)
Leaves a critical zone from thread context.
#define osalDbgAssert(c, remark)
Condition assertion.
#define osalDbgCheck(c)
Function parameters check.
USBOutEndpointState out
OUT EP0 state.
USBInEndpointState in
IN EP0 state.
Driver configuration structure.
Structure representing an CRY driver.
const CRYConfig * config
Current configuration data.
crystate_t state
Driver state.
Type of a HMAC_SHA256 context.
Type of a HMAC_SHA512 context.
Type of a SHA256 context.
Type of a SHA512 context.