Go to the documentation of this file.
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);
96 #if HAL_CRY_ENFORCE_FALLBACK == FALSE
119 #if HAL_CRY_ENFORCE_FALLBACK == FALSE
146 const uint8_t *keyp) {
150 #if CRY_LLD_SUPPORTS_AES == TRUE
152 #elif HAL_CRY_USE_FALLBACK == TRUE
153 return cry_fallback_aes_loadkey(cryp, size, keyp);
195 #if CRY_LLD_SUPPORTS_AES == TRUE
197 #elif HAL_CRY_USE_FALLBACK == TRUE
198 return cry_fallback_encrypt_AES(cryp, key_id,
in,
out);
241 #if CRY_LLD_SUPPORTS_AES == TRUE
243 #elif HAL_CRY_USE_FALLBACK == TRUE
244 return cry_fallback_decrypt_AES(cryp, key_id,
in,
out);
288 ((size & (
size_t)15) == (
size_t)0));
292 #if CRY_LLD_SUPPORTS_AES_ECB == TRUE
294 #elif HAL_CRY_USE_FALLBACK == TRUE
295 return cry_fallback_encrypt_AES_ECB(cryp, key_id, size,
in,
out);
340 ((size & (
size_t)15) == (
size_t)0));
344 #if CRY_LLD_SUPPORTS_AES_ECB == TRUE
346 #elif HAL_CRY_USE_FALLBACK == TRUE
347 return cry_fallback_decrypt_AES_ECB(cryp, key_id, size,
in,
out);
394 (iv != NULL) && ((size & (
size_t)15) == (
size_t)0));
398 #if CRY_LLD_SUPPORTS_AES_CBC == TRUE
400 #elif HAL_CRY_USE_FALLBACK == TRUE
401 return cry_fallback_encrypt_AES_CBC(cryp, key_id, size,
in,
out, iv);
449 (iv != NULL) && ((size & (
size_t)15) == (
size_t)0));
453 #if CRY_LLD_SUPPORTS_AES_CBC == TRUE
455 #elif HAL_CRY_USE_FALLBACK == TRUE
456 return cry_fallback_decrypt_AES_CBC(cryp, key_id, size,
in,
out, iv);
501 (iv != NULL) && (size > (
size_t)0));
505 #if CRY_LLD_SUPPORTS_AES_CFB == TRUE
507 #elif HAL_CRY_USE_FALLBACK == TRUE
508 return cry_fallback_encrypt_AES_CFB(cryp, key_id, size,
in,
out, iv);
553 (iv != NULL) && (size > (
size_t)0));
557 #if CRY_LLD_SUPPORTS_AES_CFB == TRUE
559 #elif HAL_CRY_USE_FALLBACK == TRUE
560 return cry_fallback_decrypt_AES_CFB(cryp, key_id, size,
in,
out, iv);
606 (iv != NULL) && (size > (
size_t)0));
610 #if CRY_LLD_SUPPORTS_AES_CTR == TRUE
612 #elif HAL_CRY_USE_FALLBACK == TRUE
613 return cry_fallback_encrypt_AES_CTR(cryp, key_id, size,
in,
out, iv);
659 (iv != NULL) && (size > (
size_t)0));
663 #if CRY_LLD_SUPPORTS_AES_CTR == TRUE
665 #elif HAL_CRY_USE_FALLBACK == TRUE
666 return cry_fallback_decrypt_AES_CTR(cryp, key_id, size,
in,
out, iv);
711 const uint8_t *auth_in,
713 const uint8_t *text_in,
720 (text_size > (
size_t)0) &&
721 (text_in != NULL) && (text_out != NULL) && (iv != NULL) &&
722 (tag_size >= (
size_t)1) && (tag_size <= (
size_t)16) &&
727 #if CRY_LLD_SUPPORTS_AES_GCM == TRUE
729 text_size, text_in, text_out, iv,
731 #elif HAL_CRY_USE_FALLBACK == TRUE
732 return cry_fallback_encrypt_AES_GCM(cryp, key_id, auth_size, auth_in,
733 text_size, text_in, text_out, iv,
784 const uint8_t *auth_in,
786 const uint8_t *text_in,
790 const uint8_t *tag_in) {
793 (text_size > (
size_t)0) &&
794 (text_in != NULL) && (text_out != NULL) && (iv != NULL) &&
795 (tag_size >= (
size_t)1) && (tag_size <= (
size_t)16) &&
800 #if CRY_LLD_SUPPORTS_AES_GCM == TRUE
802 text_size, text_in, text_out, iv,
804 #elif HAL_CRY_USE_FALLBACK == TRUE
805 return cry_fallback_decrypt_AES_GCM(cryp, key_id, auth_size, auth_in,
806 text_size, text_in, text_out, iv,
842 const uint8_t *keyp) {
846 #if CRY_LLD_SUPPORTS_DES == TRUE
848 #elif HAL_CRY_USE_FALLBACK == TRUE
849 return cry_fallback_des_loadkey(cryp, size, keyp);
891 #if CRY_LLD_SUPPORTS_DES == TRUE
893 #elif HAL_CRY_USE_FALLBACK == TRUE
894 return cry_fallback_encrypt_DES(cryp, key_id,
in,
out);
938 #if CRY_LLD_SUPPORTS_DES == TRUE
940 #elif HAL_CRY_USE_FALLBACK == TRUE
941 return cry_fallback_decrypt_DES(cryp, key_id,
in,
out);
985 ((size & (
size_t)7) == (
size_t)0));
989 #if CRY_LLD_SUPPORTS_DES_ECB == TRUE
991 #elif HAL_CRY_USE_FALLBACK == TRUE
992 return cry_fallback_encrypt_DES_ECB(cryp, key_id, size,
in,
out);
1037 ((size & (
size_t)7) == (
size_t)0));
1041 #if CRY_LLD_SUPPORTS_DES_ECB == TRUE
1043 #elif HAL_CRY_USE_FALLBACK == TRUE
1044 return cry_fallback_decrypt_DES_ECB(cryp, key_id, size,
in,
out);
1088 const uint8_t *iv) {
1091 (iv != NULL) && ((size & (
size_t)7) == (
size_t)0));
1095 #if CRY_LLD_SUPPORTS_DES_CBC == TRUE
1097 #elif HAL_CRY_USE_FALLBACK == TRUE
1098 return cry_fallback_encrypt_DES_CBC(cryp, key_id, size,
in,
out, iv);
1143 const uint8_t *iv) {
1146 (iv != NULL) && ((size & (
size_t)7) == (
size_t)0));
1150 #if CRY_LLD_SUPPORTS_DES_CBC == TRUE
1152 #elif HAL_CRY_USE_FALLBACK == TRUE
1153 return cry_fallback_decrypt_DES_CBC(cryp, key_id, size,
in,
out, iv);
1187 #if CRY_LLD_SUPPORTS_SHA1 == TRUE
1189 #elif HAL_CRY_USE_FALLBACK == TRUE
1190 return cry_fallback_SHA1_init(cryp, sha1ctxp);
1217 size_t size,
const uint8_t *
in) {
1219 osalDbgCheck((cryp != NULL) && (sha1ctxp != NULL) && (
in != NULL));
1223 #if CRY_LLD_SUPPORTS_SHA1 == TRUE
1225 #elif HAL_CRY_USE_FALLBACK == TRUE
1226 return cry_fallback_SHA1_update(cryp, sha1ctxp, size,
in);
1259 #if CRY_LLD_SUPPORTS_SHA1 == TRUE
1261 #elif HAL_CRY_USE_FALLBACK == TRUE
1262 return cry_fallback_SHA1_final(cryp, sha1ctxp,
out);
1292 #if CRY_LLD_SUPPORTS_SHA256 == TRUE
1294 #elif HAL_CRY_USE_FALLBACK == TRUE
1295 return cry_fallback_SHA256_init(cryp, sha256ctxp);
1321 size_t size,
const uint8_t *
in) {
1323 osalDbgCheck((cryp != NULL) && (sha256ctxp != NULL) && (
in != NULL));
1327 #if CRY_LLD_SUPPORTS_SHA256 == TRUE
1329 #elif HAL_CRY_USE_FALLBACK == TRUE
1330 return cry_fallback_SHA256_update(cryp, sha256ctxp, size,
in);
1359 osalDbgCheck((cryp != NULL) && (sha256ctxp != NULL) && (
out != NULL));
1363 #if CRY_LLD_SUPPORTS_SHA256 == TRUE
1365 #elif HAL_CRY_USE_FALLBACK == TRUE
1366 return cry_fallback_SHA256_final(cryp, sha256ctxp,
out);
1396 #if CRY_LLD_SUPPORTS_SHA512 == TRUE
1398 #elif HAL_CRY_USE_FALLBACK == TRUE
1399 return cry_fallback_SHA512_init(cryp, sha512ctxp);
1425 size_t size,
const uint8_t *
in) {
1427 osalDbgCheck((cryp != NULL) && (sha512ctxp != NULL) && (
in != NULL));
1431 #if CRY_LLD_SUPPORTS_SHA512 == TRUE
1433 #elif HAL_CRY_USE_FALLBACK == TRUE
1434 return cry_fallback_SHA512_update(cryp, sha512ctxp, size,
in);
1463 osalDbgCheck((cryp != NULL) && (sha512ctxp != NULL) && (
out != NULL));
1467 #if CRY_LLD_SUPPORTS_SHA512 == TRUE
1469 #elif HAL_CRY_USE_FALLBACK == TRUE
1470 return cry_fallback_SHA512_final(cryp, sha512ctxp,
out);
1498 const uint8_t *keyp) {
1502 #if (CRY_LLD_SUPPORTS_HMAC_SHA256 == TRUE) || \
1503 (CRY_LLD_SUPPORTS_HMAC_SHA512 == TRUE)
1505 #elif HAL_CRY_USE_FALLBACK == TRUE
1506 return cry_fallback_hmac_loadkey(cryp, size, keyp);
1534 osalDbgCheck((cryp != NULL) && (hmacsha256ctxp != NULL));
1538 #if CRY_LLD_SUPPORTS_HMAC_SHA256 == TRUE
1540 #elif HAL_CRY_USE_FALLBACK == TRUE
1541 return cry_fallback_HMACSHA256_init(cryp, hmacsha256ctxp);
1544 (void)hmacsha256ctxp;
1569 const uint8_t *
in) {
1571 osalDbgCheck((cryp != NULL) && (hmacsha256ctxp != NULL) && (
in != NULL));
1575 #if CRY_LLD_SUPPORTS_HMAC_SHA256 == TRUE
1577 #elif HAL_CRY_USE_FALLBACK == TRUE
1578 return cry_fallback_HMACSHA256_update(cryp, hmacsha256ctxp, size,
in);
1581 (void)hmacsha256ctxp;
1608 osalDbgCheck((cryp != NULL) && (hmacsha256ctxp != NULL) && (
out != NULL));
1612 #if CRY_LLD_SUPPORTS_HMAC_SHA256 == TRUE
1614 #elif HAL_CRY_USE_FALLBACK == TRUE
1615 return cry_fallback_HMACSHA256_final(cryp, hmacsha256ctxp,
out);
1618 (void)hmacsha256ctxp;
1643 osalDbgCheck((cryp != NULL) && (hmacsha512ctxp != NULL));
1647 #if CRY_LLD_SUPPORTS_HMAC_SHA512 == TRUE
1649 #elif HAL_CRY_USE_FALLBACK == TRUE
1650 return cry_fallback_HMACSHA512_init(cryp, hmacsha512ctxp);
1653 (void)hmacsha512ctxp;
1678 const uint8_t *
in) {
1680 osalDbgCheck((cryp != NULL) && (hmacsha512ctxp != NULL) && (
in != NULL));
1684 #if CRY_LLD_SUPPORTS_HMAC_SHA512 == TRUE
1686 #elif HAL_CRY_USE_FALLBACK == TRUE
1687 return cry_fallback_HMACSHA512_update(cryp, hmacsha512ctxp, size,
in);
1690 (void)hmacsha512ctxp;
1717 osalDbgCheck((cryp != NULL) && (hmacsha512ctxp != NULL) && (
out != NULL));
1721 #if CRY_LLD_SUPPORTS_HMAC_SHA512 == TRUE
1723 #elif HAL_CRY_USE_FALLBACK == TRUE
1724 return cry_fallback_HMACSHA512_final(cryp, hmacsha512ctxp,
out);
1727 (void)hmacsha512ctxp;
cryerror_t cry_lld_SHA1_init(CRYDriver *cryp, SHA1Context *sha1ctxp)
Hash initialization using SHA1.
Type of a HMAC_SHA256 context.
USBOutEndpointState out
OUT EP0 state.
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.
Structure representing an CRY driver.
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
Driver error codes.
cryerror_t cryLoadDESTransientKey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the DES transient key.
cryerror_t cry_lld_HMACSHA512_final(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp, uint8_t *out)
Hash finalization using HMAC.
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 cry_lld_HMACSHA256_update(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp, size_t size, const uint8_t *in)
Hash update using HMAC.
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.
crystate_t state
Driver state.
cryerror_t cry_lld_HMACSHA256_final(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp, uint8_t *out)
Hash finalization using HMAC.
cryerror_t cry_lld_hmac_loadkey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the HMAC transient key.
void cry_lld_init(void)
Low level crypto driver initialization.
cryerror_t crySHA256Init(CRYDriver *cryp, SHA256Context *sha256ctxp)
Hash initialization using SHA256.
cryerror_t cry_lld_HMACSHA512_update(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp, size_t size, const uint8_t *in)
Hash update using HMAC.
static void osalSysUnlock(void)
Leaves a critical zone from thread context.
cryerror_t crySHA256Final(CRYDriver *cryp, SHA256Context *sha256ctxp, uint8_t *out)
Hash finalization using SHA256.
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 crySHA512Final(CRYDriver *cryp, SHA512Context *sha512ctxp, uint8_t *out)
Hash finalization using SHA512.
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.
void cry_lld_stop(CRYDriver *cryp)
Deactivates the crypto peripheral.
Type of a SHA256 context.
cryerror_t crySHA512Init(CRYDriver *cryp, SHA512Context *sha512ctxp)
Hash initialization using SHA512.
cryerror_t cry_lld_SHA1_final(CRYDriver *cryp, SHA1Context *sha1ctxp, uint8_t *out)
Hash finalization using SHA1.
cryerror_t crySHA1Init(CRYDriver *cryp, SHA1Context *sha1ctxp)
Hash initialization using SHA1.
cryerror_t cryEncryptDES(CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
Encryption of a single block using (T)DES.
Driver configuration structure.
cryerror_t cryHMACSHA256Init(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp)
Hash initialization using HMAC_SHA256.
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 cryLoadAESTransientKey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the AES transient key.
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 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 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 crySHA1Update(CRYDriver *cryp, SHA1Context *sha1ctxp, size_t size, const uint8_t *in)
Hash update using SHA1.
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 cryLoadHMACTransientKey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the HMAC transient key.
void cryStop(CRYDriver *cryp)
Deactivates the cryptographic peripheral.
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.
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_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_HMACSHA256_init(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp)
Hash initialization using HMAC_SHA256.
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 cryHMACSHA512Final(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp, uint8_t *out)
Hash finalization using HMAC.
Type of a SHA512 context.
cryerror_t cry_lld_SHA512_final(CRYDriver *cryp, SHA512Context *sha512ctxp, uint8_t *out)
Hash finalization using SHA512.
cryerror_t crySHA256Update(CRYDriver *cryp, SHA256Context *sha256ctxp, size_t size, const uint8_t *in)
Hash update using SHA256.
uint32_t crykey_t
CRY key identifier type.
cryerror_t cry_lld_SHA1_update(CRYDriver *cryp, SHA1Context *sha1ctxp, size_t size, const uint8_t *in)
Hash update using SHA1.
cryerror_t cryHMACSHA256Update(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp, size_t size, const uint8_t *in)
Hash update using HMAC.
cryerror_t cry_lld_SHA256_init(CRYDriver *cryp, SHA256Context *sha256ctxp)
Hash initialization using SHA256.
cryerror_t cry_lld_aes_loadkey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the AES transient key.
void cryInit(void)
Cryptographic Driver initialization.
#define osalDbgCheck(c)
Function parameters check.
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 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 cryEncryptAES(CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
Encryption of a single block using AES.
cryerror_t cryDecryptAES(CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
Decryption of a single block using AES.
cryerror_t cry_lld_SHA512_init(CRYDriver *cryp, SHA512Context *sha512ctxp)
Hash initialization using SHA512.
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 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 crySHA1Final(CRYDriver *cryp, SHA1Context *sha1ctxp, uint8_t *out)
Hash finalization using SHA1.
void cry_lld_start(CRYDriver *cryp)
Configures and activates the crypto peripheral.
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.
static void osalSysLock(void)
Enters a critical zone from thread context.
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 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.
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 cryHMACSHA512Init(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp)
Hash initialization using HMAC_SHA512.
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_decrypt_DES(CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out)
Decryption of a single block using (T)DES.
const CRYConfig * config
Current configuration data.
USBInEndpointState in
IN EP0 state.
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.
#define osalDbgAssert(c, remark)
Condition assertion.
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_ECB(CRYDriver *cryp, crykey_t key_id, size_t size, const uint8_t *in, uint8_t *out)
Encryption operation using AES-ECB.
cryerror_t cry_lld_HMACSHA512_init(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp)
Hash initialization using HMAC_SHA512.
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 crySHA512Update(CRYDriver *cryp, SHA512Context *sha512ctxp, size_t size, const uint8_t *in)
Hash update using SHA512.
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 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_SHA256_update(CRYDriver *cryp, SHA256Context *sha256ctxp, size_t size, const uint8_t *in)
Hash update using SHA256.
void cryStart(CRYDriver *cryp, const CRYConfig *config)
Configures and activates the cryptographic peripheral.
cryerror_t cry_lld_des_loadkey(CRYDriver *cryp, size_t size, const uint8_t *keyp)
Initializes the DES transient key.
Type of a HMAC_SHA512 context.
cryerror_t cry_lld_SHA256_final(CRYDriver *cryp, SHA256Context *sha256ctxp, uint8_t *out)
Hash finalization 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 cryHMACSHA512Update(CRYDriver *cryp, HMACSHA512Context *hmacsha512ctxp, size_t size, const uint8_t *in)
Hash update using HMAC.
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 cryHMACSHA256Final(CRYDriver *cryp, HMACSHA256Context *hmacsha256ctxp, uint8_t *out)
Hash finalization using HMAC.
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.
void cryObjectInit(CRYDriver *cryp)
Initializes the standard part of a CRYDriver structure.