CC13xx Driver Library
rom_crypto.c File Reference
#include <stdint.h>
#include "rom_crypto.h"

Macros

#define PARAM_P   0x10018b0c;
 
#define PARAM_R   0x10018b30;
 
#define PARAM_A   0x10018b54;
 
#define PARAM_B   0x10018b78;
 
#define PARAM_GX   0x10018b9c;
 
#define PARAM_GY   0x10018bc0;
 

Typedefs

typedef void(* aes_ecb_encrypt_t) (uint8_t *, uint16_t, uint8_t *)
 
typedef void(* aes_ecb_decrypt_t) (uint8_t *, uint16_t, uint8_t *)
 
typedef int8_t(* aes_ccm_encrypt_t) (uint8_t, uint8_t, uint8_t *, uint8_t *, uint16_t, uint8_t *, uint16_t, uint8_t *, uint8_t *, uint8_t)
 
typedef int8_t(* aes_ccm_decrypt_t) (uint8_t, uint8_t, uint8_t *, uint8_t *, uint16_t, uint8_t *, uint16_t, uint8_t *, uint8_t *, uint8_t)
 
typedef uint8_t(* aes_ctr_encrypt_t) (uint8_t *, uint16_t, uint8_t *, uint8_t *, uint8_t *)
 
typedef uint8_t(* aes_ctr_decrypt_t) (uint8_t *, uint16_t, uint8_t *, uint8_t *, uint8_t *)
 
typedef uint8_t(* ecc_keygen_t) (uint32_t *, uint32_t *, uint32_t *, uint32_t *)
 
typedef uint8_t(* ecdsa_sign_t) (uint32_t *, uint32_t *, uint32_t *, uint32_t *, uint32_t *)
 
typedef uint8_t(* ecdsa_verify_t) (uint32_t *, uint32_t *, uint32_t *, uint32_t *, uint32_t *)
 
typedef uint8_t(* ecdh_computeSharedSecret_t) (uint32_t *, uint32_t *, uint32_t *, uint32_t *, uint32_t *)
 
typedef uint8_t(* sha256_full_t) (SHA256_memory_t *, uint8_t *, uint8_t *, uint32_t)
 
typedef uint8_t(* sha256_init_t) (SHA256_memory_t *)
 
typedef uint8_t(* sha256_process_t) (SHA256_memory_t *, uint8_t *, uint32_t)
 
typedef uint8_t(* sha256_final_t) (SHA256_memory_t *, uint8_t *)
 

Functions

void AES_ECB_EncryptData (uint8_t *text, uint16_t textLen, uint8_t *aesKey)
 Use a random 128 bit key to encrypt data with the AES. More...
 
void AES_ECB_DecryptData (uint8_t *text, uint16_t textLen, uint8_t *aesKey)
 Use a random 128 bit key to decrypt data with the AES. More...
 
int8_t AES_CCM_EncryptData (uint8_t encryptFlag, uint8_t MACLen, uint8_t *nonce, uint8_t *plainText, uint16_t textLen, uint8_t *addDataBuf, uint16_t addBufLen, uint8_t *aesKey, uint8_t *MAC, uint8_t ccmLVal)
 Authenticate and optionally encrypt message plainText. More...
 
int8_t AES_CCM_DecryptData (uint8_t decryptFlag, uint8_t MACLen, uint8_t *nonce, uint8_t *cipherText, uint16_t textLen, uint8_t *addDataBuf, uint16_t addBufLen, uint8_t *aesKey, uint8_t *MAC, uint8_t ccmLVal)
 Authenticate and optionally decrypt message cipherText. More...
 
uint8_t AES_CTR_EncryptData (uint8_t *plainText, uint16_t textLen, uint8_t *aesKey, uint8_t *nonce, uint8_t *initVector)
 Encrypt plaintext using the AES key, nonce and initialization vector. More...
 
uint8_t AES_CTR_DecryptData (uint8_t *cipherText, uint16_t textLen, uint8_t *aesKey, uint8_t *nonce, uint8_t *initVector)
 Decrypt ciphertext using the AES key, nonce and initialization vector. More...
 
void ECC_initialize (uint32_t *pWorkzone)
 Pass pointer to ECC memory allocation to ECC engine. More...
 
uint8_t ECC_generateKey (uint32_t *randString, uint32_t *privateKey, uint32_t *publicKey_x, uint32_t *publicKey_y)
 Generate a key. More...
 
uint8_t ECC_ECDSA_sign (uint32_t *secretKey, uint32_t *text, uint32_t *randString, uint32_t *sign1, uint32_t *sign2)
 Sign data. More...
 
uint8_t ECC_ECDSA_verify (uint32_t *publicKey_x, uint32_t *publicKey_y, uint32_t *text, uint32_t *sign1, uint32_t *sign2)
 Verify signature. More...
 
uint8_t ECC_ECDH_computeSharedSecret (uint32_t *privateKey, uint32_t *publicKey_x, uint32_t *publicKey_y, uint32_t *sharedSecret_x, uint32_t *sharedSecret_y)
 Compute the shared secret. More...
 
uint8_t SHA256_runFullAlgorithm (SHA256_memory_t *memory, uint8_t *pBufIn, uint32_t bufLen, uint8_t *pBufOut)
 Perform SHA256 on the input data. More...
 
uint8_t SHA256_initialize (SHA256_memory_t *memory)
 Intializes the SHA256 engine. More...
 
uint8_t SHA256_execute (SHA256_memory_t *memory, uint8_t *pBufIn, uint32_t bufLen)
 Perform SHA256. More...
 
uint8_t SHA256_output (SHA256_memory_t *memory, uint8_t *pBufOut)
 Complete the process by passing the modified data back. More...
 

Variables

aes_ecb_encrypt_t aes_ecb_encrypt = (aes_ecb_encrypt_t)(0x10018a99)
 
aes_ecb_decrypt_t aes_ecb_decrypt = (aes_ecb_decrypt_t)(0x10018ac5)
 
aes_ccm_encrypt_t aes_ccm_encrypt = (aes_ccm_encrypt_t)(0x10018a19)
 
aes_ccm_decrypt_t aes_ccm_decrypt = (aes_ccm_decrypt_t)(0x10018a35)
 
aes_ctr_encrypt_t aes_ctr_encrypt = (aes_ctr_encrypt_t)(0x100175ed)
 
aes_ctr_decrypt_t aes_ctr_decrypt = (aes_ctr_decrypt_t)(0x10017771)
 
ecc_keygen_t ecc_generatekey = (ecc_keygen_t)(0x10017dbd)
 
ecdsa_sign_t ecc_ecdsa_sign = (ecdsa_sign_t)(0x10017969)
 
ecdsa_verify_t ecc_ecdsa_verify = (ecdsa_verify_t)(0x10017b01)
 
ecdh_computeSharedSecret_t ecdh_computeSharedSecret = (ecdh_computeSharedSecret_t)(0x10017ded)
 
sha256_full_t sha256_runfullalg = (sha256_full_t)(0x10018129)
 
sha256_init_t sha256_initialize = (sha256_init_t)(0x10017ffd)
 
sha256_process_t sha256_execute = (sha256_process_t)(0x10018019)
 
sha256_final_t sha256_output = (sha256_final_t)(0x10018089)
 

Macro Definition Documentation

#define PARAM_A   0x10018b54;

Referenced by ECC_initialize().

#define PARAM_B   0x10018b78;

Referenced by ECC_initialize().

#define PARAM_GX   0x10018b9c;

Referenced by ECC_initialize().

#define PARAM_GY   0x10018bc0;

Referenced by ECC_initialize().

#define PARAM_P   0x10018b0c;

Referenced by ECC_initialize().

#define PARAM_R   0x10018b30;

Referenced by ECC_initialize().

Typedef Documentation

typedef int8_t(* aes_ccm_decrypt_t) (uint8_t, uint8_t, uint8_t *, uint8_t *, uint16_t, uint8_t *, uint16_t, uint8_t *, uint8_t *, uint8_t)
typedef int8_t(* aes_ccm_encrypt_t) (uint8_t, uint8_t, uint8_t *, uint8_t *, uint16_t, uint8_t *, uint16_t, uint8_t *, uint8_t *, uint8_t)
typedef uint8_t(* aes_ctr_decrypt_t) (uint8_t *, uint16_t, uint8_t *, uint8_t *, uint8_t *)
typedef uint8_t(* aes_ctr_encrypt_t) (uint8_t *, uint16_t, uint8_t *, uint8_t *, uint8_t *)
typedef void(* aes_ecb_decrypt_t) (uint8_t *, uint16_t, uint8_t *)
typedef void(* aes_ecb_encrypt_t) (uint8_t *, uint16_t, uint8_t *)
typedef uint8_t(* ecc_keygen_t) (uint32_t *, uint32_t *, uint32_t *, uint32_t *)
typedef uint8_t(* ecdh_computeSharedSecret_t) (uint32_t *, uint32_t *, uint32_t *, uint32_t *, uint32_t *)
typedef uint8_t(* ecdsa_sign_t) (uint32_t *, uint32_t *, uint32_t *, uint32_t *, uint32_t *)
typedef uint8_t(* ecdsa_verify_t) (uint32_t *, uint32_t *, uint32_t *, uint32_t *, uint32_t *)
typedef uint8_t(* sha256_final_t) (SHA256_memory_t *, uint8_t *)
typedef uint8_t(* sha256_full_t) (SHA256_memory_t *, uint8_t *, uint8_t *, uint32_t)
typedef uint8_t(* sha256_init_t) (SHA256_memory_t *)
typedef uint8_t(* sha256_process_t) (SHA256_memory_t *, uint8_t *, uint32_t)

Variable Documentation

aes_ccm_decrypt_t aes_ccm_decrypt = (aes_ccm_decrypt_t)(0x10018a35)

Referenced by AES_CCM_DecryptData().

aes_ccm_encrypt_t aes_ccm_encrypt = (aes_ccm_encrypt_t)(0x10018a19)

Referenced by AES_CCM_EncryptData().

aes_ctr_decrypt_t aes_ctr_decrypt = (aes_ctr_decrypt_t)(0x10017771)

Referenced by AES_CTR_DecryptData().

aes_ctr_encrypt_t aes_ctr_encrypt = (aes_ctr_encrypt_t)(0x100175ed)

Referenced by AES_CTR_EncryptData().

aes_ecb_decrypt_t aes_ecb_decrypt = (aes_ecb_decrypt_t)(0x10018ac5)

Referenced by AES_ECB_DecryptData().

aes_ecb_encrypt_t aes_ecb_encrypt = (aes_ecb_encrypt_t)(0x10018a99)

Referenced by AES_ECB_EncryptData().

ecdsa_sign_t ecc_ecdsa_sign = (ecdsa_sign_t)(0x10017969)

Referenced by ECC_ECDSA_sign().

ecdsa_verify_t ecc_ecdsa_verify = (ecdsa_verify_t)(0x10017b01)

Referenced by ECC_ECDSA_verify().

ecc_keygen_t ecc_generatekey = (ecc_keygen_t)(0x10017dbd)

Referenced by ECC_generateKey().

ecdh_computeSharedSecret_t ecdh_computeSharedSecret = (ecdh_computeSharedSecret_t)(0x10017ded)
sha256_process_t sha256_execute = (sha256_process_t)(0x10018019)

Referenced by SHA256_execute().

sha256_init_t sha256_initialize = (sha256_init_t)(0x10017ffd)

Referenced by SHA256_initialize().

sha256_final_t sha256_output = (sha256_final_t)(0x10018089)

Referenced by SHA256_output().

sha256_full_t sha256_runfullalg = (sha256_full_t)(0x10018129)

Referenced by SHA256_runFullAlgorithm().