M480 BSP V3.05.006
The Board Support Package for M480 Series
Functions
crypto.c File Reference

Cryptographic Accelerator driver source file. More...

#include <stdio.h>
#include <string.h>
#include "NuMicro.h"

Go to the source code of this file.

Functions

void PRNG_Open (CRPT_T *crpt, uint32_t u32KeySize, uint32_t u32SeedReload, uint32_t u32Seed)
 Open PRNG function. More...
 
void PRNG_Start (CRPT_T *crpt)
 Start to generate one PRNG key. More...
 
void PRNG_Read (CRPT_T *crpt, uint32_t u32RandKey[])
 Read the PRNG key. More...
 
void AES_Open (CRPT_T *crpt, uint32_t u32Channel, uint32_t u32EncDec, uint32_t u32OpMode, uint32_t u32KeySize, uint32_t u32SwapType)
 Open AES encrypt/decrypt function. More...
 
void AES_Start (CRPT_T *crpt, uint32_t u32Channel, uint32_t u32DMAMode)
 Start AES encrypt/decrypt. More...
 
void AES_SetKey (CRPT_T *crpt, uint32_t u32Channel, uint32_t au32Keys[], uint32_t u32KeySize)
 Set AES keys. More...
 
void AES_SetInitVect (CRPT_T *crpt, uint32_t u32Channel, uint32_t au32IV[])
 Set AES initial vectors. More...
 
void AES_SetDMATransfer (CRPT_T *crpt, uint32_t u32Channel, uint32_t u32SrcAddr, uint32_t u32DstAddr, uint32_t u32TransCnt)
 Set AES DMA transfer configuration. More...
 
void TDES_Open (CRPT_T *crpt, uint32_t u32Channel, uint32_t u32EncDec, int32_t Is3DES, int32_t Is3Key, uint32_t u32OpMode, uint32_t u32SwapType)
 Open TDES encrypt/decrypt function. More...
 
void TDES_Start (CRPT_T *crpt, int32_t u32Channel, uint32_t u32DMAMode)
 Start TDES encrypt/decrypt. More...
 
void TDES_SetKey (CRPT_T *crpt, uint32_t u32Channel, uint32_t au32Keys[3][2])
 Set TDES keys. More...
 
void TDES_SetInitVect (CRPT_T *crpt, uint32_t u32Channel, uint32_t u32IVH, uint32_t u32IVL)
 Set TDES initial vectors. More...
 
void TDES_SetDMATransfer (CRPT_T *crpt, uint32_t u32Channel, uint32_t u32SrcAddr, uint32_t u32DstAddr, uint32_t u32TransCnt)
 Set TDES DMA transfer configuration. More...
 
void SHA_Open (CRPT_T *crpt, uint32_t u32OpMode, uint32_t u32SwapType, uint32_t hmac_key_len)
 Open SHA encrypt function. More...
 
void SHA_Start (CRPT_T *crpt, uint32_t u32DMAMode)
 Start SHA encrypt. More...
 
void SHA_SetDMATransfer (CRPT_T *crpt, uint32_t u32SrcAddr, uint32_t u32TransCnt)
 Set SHA DMA transfer. More...
 
void SHA_Read (CRPT_T *crpt, uint32_t u32Digest[])
 Read the SHA digest. More...
 
void ECC_Complete (CRPT_T *crpt)
 ECC interrupt service routine. User application must invoke this function in his CRYPTO_IRQHandler() to let Crypto driver know ECC processing was done. More...
 
int ECC_IsPrivateKeyValid (CRPT_T *crpt, E_ECC_CURVE ecc_curve, char private_k[])
 Check if the private key is located in valid range of curve. More...
 
int32_t ECC_GeneratePublicKey (CRPT_T *crpt, E_ECC_CURVE ecc_curve, char *private_k, char public_k1[], char public_k2[])
 Given a private key and curve to generate the public key pair. More...
 
int32_t ECC_Mutiply (CRPT_T *crpt, E_ECC_CURVE ecc_curve, char x1[], char y1[], char *k, char x2[], char y2[])
 Given a private key and curve to generate the public key pair. More...
 
int32_t ECC_GenerateSecretZ (CRPT_T *crpt, E_ECC_CURVE ecc_curve, char *private_k, char public_k1[], char public_k2[], char secret_z[])
 Given a curve parameter, the other party's public key, and one's own private key to generate the secret Z. More...
 
int32_t ECC_GenerateSignature (CRPT_T *crpt, E_ECC_CURVE ecc_curve, char *message, char *d, char *k, char *R, char *S)
 ECDSA digital signature generation. More...
 
int32_t ECC_VerifySignature (CRPT_T *crpt, E_ECC_CURVE ecc_curve, char *message, char *public_k1, char *public_k2, char *R, char *S)
 ECDSA dogotal signature verification. More...
 

Detailed Description

Cryptographic Accelerator driver source file.

Version
V1.10

SPDX-License-Identifier: Apache-2.0

Definition in file crypto.c.