|
ChibiOS
0.0.0
|
Generic Crypto Driver. More...
|
Generic Crypto Driver.
This module implements a generic Cryptography driver.
HAL_USE_CRY option must be enabled in halconf.h. Macros | |
| #define | HAL_CRY_MAX_KEY_SIZE 32 |
| Maximum size of a key for all supported algorithms. More... | |
| #define | HAL_CRY_USE_FALLBACK FALSE |
| Enables the SW fall-back of the cryptographic driver. More... | |
| #define | HAL_CRY_USE_FALLBACK TRUE |
| Enables the SW fall-back of the cryptographic driver. More... | |
| #define | HAL_CRY_ENFORCE_FALLBACK FALSE |
| Makes the driver forcibly use the fall-back implementations. More... | |
Driver capability switches | |
| #define | CRY_LLD_SUPPORTS_AES TRUE |
| #define | CRY_LLD_SUPPORTS_AES_ECB TRUE |
| #define | CRY_LLD_SUPPORTS_AES_CBC TRUE |
| #define | CRY_LLD_SUPPORTS_AES_CFB TRUE |
| #define | CRY_LLD_SUPPORTS_AES_CTR TRUE |
| #define | CRY_LLD_SUPPORTS_AES_GCM TRUE |
| #define | CRY_LLD_SUPPORTS_DES TRUE |
| #define | CRY_LLD_SUPPORTS_DES_ECB TRUE |
| #define | CRY_LLD_SUPPORTS_DES_CBC TRUE |
| #define | CRY_LLD_SUPPORTS_SHA1 TRUE |
| #define | CRY_LLD_SUPPORTS_SHA256 TRUE |
| #define | CRY_LLD_SUPPORTS_SHA512 TRUE |
| #define | CRY_LLD_SUPPORTS_TRNG TRUE |
PLATFORM configuration options | |
| #define | PLATFORM_CRY_USE_CRY1 FALSE |
| CRY1 driver enable switch. More... | |
Typedefs | |
| typedef size_t | bitsize_t |
| Size, in bits, of a crypto field or message. More... | |
| typedef uint32_t | crykey_t |
| CRY key identifier type. More... | |
| typedef struct CRYDriver | CRYDriver |
| Type of a structure representing an CRY driver. More... | |
Data Structures | |
| struct | SHA1Context |
| Type of a SHA1 context. More... | |
| struct | SHA256Context |
| Type of a SHA256 context. More... | |
| struct | SHA512Context |
| Type of a SHA512 context. More... | |
| struct | CRYConfig |
| Driver configuration structure. More... | |
| struct | CRYDriver |
| Structure representing an CRY driver. More... | |
Functions | |
| void | cryInit (void) |
| Cryptographic Driver initialization. More... | |
| void | cryObjectInit (CRYDriver *cryp) |
Initializes the standard part of a CRYDriver structure. More... | |
| void | cryStart (CRYDriver *cryp, const CRYConfig *config) |
| Configures and activates the cryptographic peripheral. More... | |
| void | cryStop (CRYDriver *cryp) |
| Deactivates the cryptographic peripheral. More... | |
| cryerror_t | cryLoadTransientKey (CRYDriver *cryp, cryalgorithm_t algorithm, size_t size, const uint8_t *keyp) |
| Initializes the transient key for a specific algorithm. More... | |
| cryerror_t | cryEncryptAES (CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out) |
| Encryption of a single block using AES. More... | |
| cryerror_t | cryDecryptAES (CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out) |
| Decryption of a single block using AES. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| cryerror_t | cryEncryptAES_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 | cryDecryptAES_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 | cryEncryptDES (CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out) |
| Encryption of a single block using (T)DES. More... | |
| cryerror_t | cryDecryptDES (CRYDriver *cryp, crykey_t key_id, const uint8_t *in, uint8_t *out) |
| Decryption of a single block using (T)DES. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| cryerror_t | crySHA1Init (CRYDriver *cryp, SHA1Context *sha1ctxp) |
| Hash initialization using SHA1. More... | |
| cryerror_t | crySHA1Update (CRYDriver *cryp, SHA1Context *sha1ctxp, size_t size, const uint8_t *in) |
| Hash update using SHA1. More... | |
| cryerror_t | crySHA1Final (CRYDriver *cryp, SHA1Context *sha1ctxp, uint8_t *out) |
| Hash finalization using SHA1. More... | |
| cryerror_t | crySHA256Init (CRYDriver *cryp, SHA256Context *sha256ctxp) |
| Hash initialization using SHA256. More... | |
| cryerror_t | crySHA256Update (CRYDriver *cryp, SHA256Context *sha256ctxp, size_t size, const uint8_t *in) |
| Hash update using SHA256. More... | |
| cryerror_t | crySHA256Final (CRYDriver *cryp, SHA256Context *sha256ctxp, uint8_t *out) |
| Hash finalization using SHA256. More... | |
| cryerror_t | crySHA512Init (CRYDriver *cryp, SHA512Context *sha512ctxp) |
| Hash initialization using SHA512. More... | |
| cryerror_t | crySHA512Update (CRYDriver *cryp, SHA512Context *sha512ctxp, size_t size, const uint8_t *in) |
| Hash update using SHA512. More... | |
| cryerror_t | crySHA512Final (CRYDriver *cryp, SHA512Context *sha512ctxp, uint8_t *out) |
| Hash finalization using SHA512. More... | |
| cryerror_t | cryTRNG (CRYDriver *cryp, uint8_t *out) |
| True random numbers generator. More... | |
| 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... | |
Enumerations |
Variables | |
| CRYDriver | CRYD1 |
| CRY1 driver identifier. More... | |
| #define HAL_CRY_MAX_KEY_SIZE 32 |
Maximum size of a key for all supported algorithms.
Definition at line 37 of file hal_crypto.h.
Referenced by cryLoadTransientKey().
| #define HAL_CRY_USE_FALLBACK FALSE |
Enables the SW fall-back of the cryptographic driver.
When enabled, this option, activates a fall-back software implementation for algorithms not supported by the underlying hardware.
Definition at line 68 of file hal_crypto.h.
| #define HAL_CRY_USE_FALLBACK TRUE |
Enables the SW fall-back of the cryptographic driver.
When enabled, this option, activates a fall-back software implementation for algorithms not supported by the underlying hardware.
Definition at line 68 of file hal_crypto.h.
| #define HAL_CRY_ENFORCE_FALLBACK FALSE |
Makes the driver forcibly use the fall-back implementations.
Definition at line 59 of file hal_crypto.h.
| #define PLATFORM_CRY_USE_CRY1 FALSE |
CRY1 driver enable switch.
If set to TRUE the support for CRY1 is included.
FALSE. Definition at line 67 of file hal_crypto_lld.h.
| typedef size_t bitsize_t |
Size, in bits, of a crypto field or message.
size_t. Definition at line 80 of file hal_crypto.h.
| typedef uint32_t crykey_t |
CRY key identifier type.
Definition at line 82 of file hal_crypto_lld.h.
Type of a structure representing an CRY driver.
Definition at line 87 of file hal_crypto_lld.h.
| enum crystate_t |
Driver state machine possible states.
| Enumerator | |
|---|---|
| CRY_UNINIT |
Not initialized. |
| CRY_STOP |
Stopped. |
| CRY_READY |
Ready. |
Definition at line 85 of file hal_crypto.h.
| enum cryerror_t |
Driver error codes.
| Enumerator | |
|---|---|
| CRY_NOERROR |
No error. |
| CRY_ERR_INV_ALGO |
Invalid cypher/mode. |
| CRY_ERR_INV_KEY_SIZE |
Invalid key size. |
| CRY_ERR_INV_KEY_TYPE |
Invalid key type. |
| CRY_ERR_INV_KEY_ID |
Invalid key type. |
Definition at line 94 of file hal_crypto.h.
| enum cryalgorithm_t |
Type of an algorithm identifier.
| Enumerator | |
|---|---|
| cry_algo_aes |
AES 128, 192, 256 bits. |
| cry_algo_des |
DES 56, TDES 112, 168 bits. |
Definition at line 106 of file hal_crypto.h.
| void cryInit | ( | void | ) |
Cryptographic Driver initialization.
halInit(), there is no need to explicitly initialize the driver.Definition at line 56 of file hal_crypto.c.
References cry_lld_init().
Referenced by halInit().

| void cryObjectInit | ( | CRYDriver * | cryp | ) |
Initializes the standard part of a CRYDriver structure.
| [out] | cryp | pointer to the CRYDriver object |
Definition at line 70 of file hal_crypto.c.
References CRYDriver::config, CRY_STOP, and CRYDriver::state.
Configures and activates the cryptographic peripheral.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | config | pointer to the CRYConfig object. Depending on the implementation the value can be NULL. |
Definition at line 88 of file hal_crypto.c.
References CRYDriver::config, cry_lld_start(), CRY_READY, CRY_STOP, osalDbgAssert, osalDbgCheck, osalSysLock(), osalSysUnlock(), and CRYDriver::state.

| void cryStop | ( | CRYDriver * | cryp | ) |
Deactivates the cryptographic peripheral.
| [in] | cryp | pointer to the CRYDriver object |
Definition at line 110 of file hal_crypto.c.
References CRYDriver::config, cry_lld_stop(), CRY_READY, CRY_STOP, osalDbgAssert, osalDbgCheck, osalSysLock(), osalSysUnlock(), and CRYDriver::state.

| cryerror_t cryLoadTransientKey | ( | CRYDriver * | cryp, |
| cryalgorithm_t | algorithm, | ||
| size_t | size, | ||
| const uint8_t * | keyp | ||
| ) |
Initializes the transient key for a specific algorithm.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | algorithm | the algorithm identifier |
| [in] | size | key size in bytes |
| [in] | keyp | pointer to the key data |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the specified algorithm is unknown or unsupported. |
| CRY_ERR_INV_KEY_SIZE | if the specified key size is invalid for the specified algorithm. |
Definition at line 146 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_loadkey(), CRY_NOERROR, HAL_CRY_MAX_KEY_SIZE, CRYDriver::key0_size, CRYDriver::key0_type, and osalDbgCheck.

| cryerror_t cryEncryptAES | ( | CRYDriver * | cryp, |
| crykey_t | key_id, | ||
| const uint8_t * | in, | ||
| uint8_t * | out | ||
| ) |
Encryption of a single block using AES.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 199 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_encrypt_AES(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t cryDecryptAES | ( | CRYDriver * | cryp, |
| crykey_t | key_id, | ||
| const uint8_t * | in, | ||
| uint8_t * | out | ||
| ) |
Decryption of a single block using AES.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 243 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_decrypt_AES(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 290 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_encrypt_AES_ECB(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 340 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_decrypt_AES_ECB(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits input vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 391 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_encrypt_AES_CBC(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| [in] | iv | 128 bits input vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 444 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_decrypt_AES_CBC(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits input vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 497 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_encrypt_AES_CFB(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| [in] | iv | 128 bits input vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 550 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_decrypt_AES_CFB(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits input vector + counter, it contains a 96 bits IV and a 32 bits counter |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 604 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_encrypt_AES_CTR(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| [in] | iv | 128 bits input vector + counter, it contains a 96 bits IV and a 32 bits counter |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 659 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_decrypt_AES_CTR(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t cryEncryptAES_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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the text buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits input vector + counter, it contains a 96 bits IV and a 32 bits counter |
| [in] | aadsize | size of the authentication data, this number must be a multiple of 16 |
| [in] | aad | buffer containing the authentication data |
| [in] | authtag | 128 bits buffer for the generated authentication tag |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 719 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_encrypt_AES_GCM(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t cryDecryptAES_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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the text buffers, this number must be a multiple of 16 |
| [in] | in | buffer for the output cyphertext |
| [out] | out | buffer containing the input plaintext |
| [in] | iv | 128 bits input vector + counter, it contains a 96 bits IV and a 32 bits counter |
| [in] | aadsize | size of the authentication data, this number must be a multiple of 16 |
| [in] | aad | buffer containing the authentication data |
| [in] | authtag | 128 bits buffer for the generated authentication tag |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 788 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_decrypt_AES_GCM(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t cryEncryptDES | ( | CRYDriver * | cryp, |
| crykey_t | key_id, | ||
| const uint8_t * | in, | ||
| uint8_t * | out | ||
| ) |
Encryption of a single block using (T)DES.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 847 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_encrypt_DES(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t cryDecryptDES | ( | CRYDriver * | cryp, |
| crykey_t | key_id, | ||
| const uint8_t * | in, | ||
| uint8_t * | out | ||
| ) |
Decryption of a single block using (T)DES.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 892 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_decrypt_DES(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 8 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 939 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_encrypt_DES_ECB(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 8 |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 989 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_decrypt_DES_ECB(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 8 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 64 bits input vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 1040 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_encrypt_DES_CBC(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of both buffers, this number must be a multiple of 8 |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| [in] | iv | 64 bits input vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 1093 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_decrypt_DES_CBC(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t crySHA1Init | ( | CRYDriver * | cryp, |
| SHA1Context * | sha1ctxp | ||
| ) |
Hash initialization using SHA1.
| [in] | cryp | pointer to the CRYDriver object |
| [out] | sha1ctxp | pointer to a SHA1 context to be initialized |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1134 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_SHA1_init(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t crySHA1Update | ( | CRYDriver * | cryp, |
| SHA1Context * | sha1ctxp, | ||
| size_t | size, | ||
| const uint8_t * | in | ||
| ) |
Hash update using SHA1.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha1ctxp | pointer to a SHA1 context |
| [in] | size | size of input buffer |
| [in] | in | buffer containing the input text |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1167 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_SHA1_update(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t crySHA1Final | ( | CRYDriver * | cryp, |
| SHA1Context * | sha1ctxp, | ||
| uint8_t * | out | ||
| ) |
Hash finalization using SHA1.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha1ctxp | pointer to a SHA1 context |
| [out] | out | 160 bits output buffer |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1202 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_SHA1_final(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t crySHA256Init | ( | CRYDriver * | cryp, |
| SHA256Context * | sha256ctxp | ||
| ) |
Hash initialization using SHA256.
| [in] | cryp | pointer to the CRYDriver object |
| [out] | sha256ctxp | pointer to a SHA256 context to be initialized |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1234 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_SHA256_init(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t crySHA256Update | ( | CRYDriver * | cryp, |
| SHA256Context * | sha256ctxp, | ||
| size_t | size, | ||
| const uint8_t * | in | ||
| ) |
Hash update using SHA256.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha256ctxp | pointer to a SHA256 context |
| [in] | size | size of input buffer |
| [in] | in | buffer containing the input text |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1267 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_SHA256_update(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t crySHA256Final | ( | CRYDriver * | cryp, |
| SHA256Context * | sha256ctxp, | ||
| uint8_t * | out | ||
| ) |
Hash finalization using SHA256.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha256ctxp | pointer to a SHA256 context |
| [out] | out | 256 bits output buffer |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1302 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_SHA256_final(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t crySHA512Init | ( | CRYDriver * | cryp, |
| SHA512Context * | sha512ctxp | ||
| ) |
Hash initialization using SHA512.
| [in] | cryp | pointer to the CRYDriver object |
| [out] | sha512ctxp | pointer to a SHA512 context to be initialized |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1335 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_SHA512_init(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t crySHA512Update | ( | CRYDriver * | cryp, |
| SHA512Context * | sha512ctxp, | ||
| size_t | size, | ||
| const uint8_t * | in | ||
| ) |
Hash update using SHA512.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha512ctxp | pointer to a SHA512 context |
| [in] | size | size of input buffer |
| [in] | in | buffer containing the input text |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1368 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_SHA512_update(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t crySHA512Final | ( | CRYDriver * | cryp, |
| SHA512Context * | sha512ctxp, | ||
| uint8_t * | out | ||
| ) |
Hash finalization using SHA512.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha512ctxp | pointer to a SHA512 context |
| [out] | out | 512 bits output buffer |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1403 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_SHA512_final(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| cryerror_t cryTRNG | ( | CRYDriver * | cryp, |
| uint8_t * | out | ||
| ) |
True random numbers generator.
| [in] | cryp | pointer to the CRYDriver object |
| [out] | out | 128 bits output buffer |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1435 of file hal_crypto.c.
References CRY_ERR_INV_ALGO, cry_lld_TRNG(), CRY_READY, osalDbgAssert, osalDbgCheck, and CRYDriver::state.

| void cry_lld_init | ( | void | ) |
Low level crypto driver initialization.
Definition at line 63 of file hal_crypto_lld.c.
Referenced by cryInit().
| void cry_lld_start | ( | CRYDriver * | cryp | ) |
Configures and activates the crypto peripheral.
| [in] | cryp | pointer to the CRYDriver object |
Definition at line 74 of file hal_crypto_lld.c.
References CRY_STOP, and CRYDriver::state.
Referenced by cryStart().
| void cry_lld_stop | ( | CRYDriver * | cryp | ) |
Deactivates the crypto peripheral.
| [in] | cryp | pointer to the CRYDriver object |
Definition at line 88 of file hal_crypto_lld.c.
References CRY_READY, and CRYDriver::state.
Referenced by cryStop().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | algorithm | the algorithm identifier |
| [in] | size | key size in bytes |
| [in] | keyp | pointer to the key data |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the specified algorithm is unknown or unsupported. |
| CRY_ERR_INV_KEY_SIZE | if the specified key size is invalid. |
Definition at line 110 of file hal_crypto_lld.c.
References CRY_NOERROR.
Referenced by cryLoadTransientKey().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 144 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryEncryptAES().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 178 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryDecryptAES().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of the selected key size |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 215 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryEncryptAES_ECB().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of the selected key size |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 254 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryDecryptAES_ECB().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of the selected key size |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits initial vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 294 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryEncryptAES_CBC().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of the selected key size |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits initial vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 336 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryDecryptAES_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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of the selected key size |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits initial vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 378 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryEncryptAES_CFB().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of the selected key size |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits initial vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 420 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryDecryptAES_CFB().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of 16 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits initial vector + counter, it contains a 96 bits IV and a 32 bits counter |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 463 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryEncryptAES_CTR().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of 16 |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| [in] | iv | 128 bits initial vector + counter, it contains a 96 bits IV and a 32 bits counter |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 506 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryDecryptAES_CTR().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the text buffers, this number must be a multiple of 16 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 128 bits initial vector + counter, it contains a 96 bits IV and a 32 bits counter |
| [in] | aadsize | size of the authentication data, this number must be a multiple of 16 |
| [in] | aad | buffer containing the authentication data |
| [in] | authtag | 128 bits buffer for the generated authentication tag |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 554 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryEncryptAES_GCM().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the text buffers, this number must be a multiple of 16 |
| [in] | in | buffer for the output cyphertext |
| [out] | out | buffer containing the input plaintext |
| [in] | iv | 128 bits initial vector + counter, it contains a 96 bits IV and a 32 bits counter |
| [in] | aadsize | size of the authentication data, this number must be a multiple of 16 |
| [in] | aad | buffer containing the authentication data |
| [in] | authtag | 128 bits buffer for the generated authentication tag |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 608 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryDecryptAES_GCM().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 652 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryEncryptDES().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 687 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryDecryptDES().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of 8 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 724 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryEncryptDES_ECB().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of 8 |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 763 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryDecryptDES_ECB().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of 8 |
| [in] | in | buffer containing the input plaintext |
| [out] | out | buffer for the output cyphertext |
| [in] | iv | 64 bits input vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 803 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryEncryptDES_CBC().
| 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.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | key_id | the key to be used for the operation, zero is the transient key, other values are keys stored in an unspecified way |
| [in] | size | size of the plaintext buffer, this number must be a multiple of 8 |
| [in] | in | buffer containing the input cyphertext |
| [out] | out | buffer for the output plaintext |
| [in] | iv | 64 bits input vector |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
| CRY_ERR_INV_KEY_TYPE | the selected key is invalid for this operation. |
| CRY_ERR_INV_KEY_ID | if the specified key identifier is invalid or refers to an empty key slot. |
Definition at line 845 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryDecryptDES_CBC().
| cryerror_t cry_lld_SHA1_init | ( | CRYDriver * | cryp, |
| SHA1Context * | sha1ctxp | ||
| ) |
Hash initialization using SHA1.
| [in] | cryp | pointer to the CRYDriver object |
| [out] | sha1ctxp | pointer to a SHA1 context to be initialized |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 874 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by crySHA1Init().
| cryerror_t cry_lld_SHA1_update | ( | CRYDriver * | cryp, |
| SHA1Context * | sha1ctxp, | ||
| size_t | size, | ||
| const uint8_t * | in | ||
| ) |
Hash update using SHA1.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha1ctxp | pointer to a SHA1 context |
| [in] | size | size of input buffer |
| [in] | in | buffer containing the input text |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 897 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by crySHA1Update().
| cryerror_t cry_lld_SHA1_final | ( | CRYDriver * | cryp, |
| SHA1Context * | sha1ctxp, | ||
| uint8_t * | out | ||
| ) |
Hash finalization using SHA1.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha1ctxp | pointer to a SHA1 context |
| [out] | out | 160 bits output buffer |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 922 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by crySHA1Final().
| cryerror_t cry_lld_SHA256_init | ( | CRYDriver * | cryp, |
| SHA256Context * | sha256ctxp | ||
| ) |
Hash initialization using SHA256.
| [in] | cryp | pointer to the CRYDriver object |
| [out] | sha256ctxp | pointer to a SHA256 context to be initialized |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 943 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by crySHA256Init().
| cryerror_t cry_lld_SHA256_update | ( | CRYDriver * | cryp, |
| SHA256Context * | sha256ctxp, | ||
| size_t | size, | ||
| const uint8_t * | in | ||
| ) |
Hash update using SHA256.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha256ctxp | pointer to a SHA256 context |
| [in] | size | size of input buffer |
| [in] | in | buffer containing the input text |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 965 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by crySHA256Update().
| cryerror_t cry_lld_SHA256_final | ( | CRYDriver * | cryp, |
| SHA256Context * | sha256ctxp, | ||
| uint8_t * | out | ||
| ) |
Hash finalization using SHA256.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha256ctxp | pointer to a SHA256 context |
| [out] | out | 256 bits output buffer |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 989 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by crySHA256Final().
| cryerror_t cry_lld_SHA512_init | ( | CRYDriver * | cryp, |
| SHA512Context * | sha512ctxp | ||
| ) |
Hash initialization using SHA512.
| [in] | cryp | pointer to the CRYDriver object |
| [out] | sha512ctxp | pointer to a SHA512 context to be initialized |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1010 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by crySHA512Init().
| cryerror_t cry_lld_SHA512_update | ( | CRYDriver * | cryp, |
| SHA512Context * | sha512ctxp, | ||
| size_t | size, | ||
| const uint8_t * | in | ||
| ) |
Hash update using SHA512.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha512ctxp | pointer to a SHA512 context |
| [in] | size | size of input buffer |
| [in] | in | buffer containing the input text |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1032 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by crySHA512Update().
| cryerror_t cry_lld_SHA512_final | ( | CRYDriver * | cryp, |
| SHA512Context * | sha512ctxp, | ||
| uint8_t * | out | ||
| ) |
Hash finalization using SHA512.
| [in] | cryp | pointer to the CRYDriver object |
| [in] | sha512ctxp | pointer to a SHA512 context |
| [out] | out | 512 bits output buffer |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1056 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by crySHA512Final().
| cryerror_t cry_lld_TRNG | ( | CRYDriver * | cryp, |
| uint8_t * | out | ||
| ) |
True random numbers generator.
| [in] | cryp | pointer to the CRYDriver object |
| [out] | out | 128 bits output buffer |
| CRY_NOERROR | if the operation succeeded. |
| CRY_ERR_INV_ALGO | if the operation is unsupported on this device instance. |
Definition at line 1078 of file hal_crypto_lld.c.
References CRY_ERR_INV_ALGO.
Referenced by cryTRNG().
| CRYDriver CRYD1 |
CRY1 driver identifier.
Definition at line 39 of file hal_crypto_lld.c.