Mistake on this page?
Report an issue in GitHub or email us
Macros | Functions
CryptoCell RSA key generation APIs

Macros

#define CRYS_RSA_KG_PUB_EXP_MAX_SIZE_BITS   17
 
#define CRYS_RSA_KG_PUB_EXP_ALLOW_VAL_1   0x000003
 
#define CRYS_RSA_KG_PUB_EXP_ALLOW_VAL_2   0x000011
 
#define CRYS_RSA_KG_PUB_EXP_ALLOW_VAL_3   0x010001
 

Functions

CRYSError_t CRYS_RSA_KG_GenerateKeyPair (void *rndState_ptr, SaSiRndGenerateVectWorkFunc_t rndGenerateVectFunc, uint8_t *pubExp_ptr, uint16_t pubExpSizeInBytes, uint32_t keySize, CRYS_RSAUserPrivKey_t *userPrivKey_ptr, CRYS_RSAUserPubKey_t *userPubKey_ptr, CRYS_RSAKGData_t *keyGenData_ptr, CRYS_RSAKGFipsContext_t *pFipsCtx)
 CRYS_RSA_KG_GenerateKeyPair generates a Pair of public and private keys on non CRT mode according to [ANS X9.31]. More...
 
CRYSError_t CRYS_RSA_KG_GenerateKeyPairCRT (void *rndState_ptr, SaSiRndGenerateVectWorkFunc_t rndGenerateVectFunc, uint8_t *pubExp_ptr, uint16_t pubExpSizeInBytes, uint32_t keySize, CRYS_RSAUserPrivKey_t *userPrivKey_ptr, CRYS_RSAUserPubKey_t *userPubKey_ptr, CRYS_RSAKGData_t *keyGenData_ptr, CRYS_RSAKGFipsContext_t *pFipsCtx)
 Generates a pair of public and private keys on CRT mode according to [ANS X9.31]. More...
 

Detailed Description

Macro Definition Documentation

#define CRYS_RSA_KG_PUB_EXP_ALLOW_VAL_1   0x000003

Definition of public exponent value.

Definition at line 63 of file crys_rsa_kg.h.

#define CRYS_RSA_KG_PUB_EXP_ALLOW_VAL_2   0x000011

Definition of public exponent value.

Definition at line 65 of file crys_rsa_kg.h.

#define CRYS_RSA_KG_PUB_EXP_ALLOW_VAL_3   0x010001

Definition of public exponent value.

Definition at line 67 of file crys_rsa_kg.h.

#define CRYS_RSA_KG_PUB_EXP_MAX_SIZE_BITS   17

Maximal public exponent size in bits.

Definition at line 61 of file crys_rsa_kg.h.

Function Documentation

CRYSError_t CRYS_RSA_KG_GenerateKeyPair ( void *  rndState_ptr,
SaSiRndGenerateVectWorkFunc_t  rndGenerateVectFunc,
uint8_t *  pubExp_ptr,
uint16_t  pubExpSizeInBytes,
uint32_t  keySize,
CRYS_RSAUserPrivKey_t userPrivKey_ptr,
CRYS_RSAUserPubKey_t userPubKey_ptr,
CRYS_RSAKGData_t keyGenData_ptr,
CRYS_RSAKGFipsContext_t pFipsCtx 
)

CRYS_RSA_KG_GenerateKeyPair generates a Pair of public and private keys on non CRT mode according to [ANS X9.31].

Note
To be FIPS 186-4 [5.1] compliant use only the following key sizes (in bits): 1024, 2048 and 3072.
Returns
CRYS_OK on success.
A non-zero value from crys_rsa_error.h or crys_rnd_error.h on failure.
Parameters
[in,out]rndState_ptrPointer to the RND state structure.
[in]rndGenerateVectFuncPointer to the random vector generation function.
[in]pubExp_ptrThe pointer to the public exponent (public key).
[in]pubExpSizeInBytesThe public exponent size in bytes.
[in]keySizeThe size of the key, in bits. Supported sizes are 512, 1024, 2048, 3072 and 4096 bit.
[out]userPrivKey_ptrPointer to the private key structure.
[out]userPubKey_ptrPointer to the public key structure.
[in]keyGenData_ptrPointer to a temporary structure required for the KeyGen operation.
[in]pFipsCtxPointer to temporary buffer used in case FIPS certification if required.
CRYSError_t CRYS_RSA_KG_GenerateKeyPairCRT ( void *  rndState_ptr,
SaSiRndGenerateVectWorkFunc_t  rndGenerateVectFunc,
uint8_t *  pubExp_ptr,
uint16_t  pubExpSizeInBytes,
uint32_t  keySize,
CRYS_RSAUserPrivKey_t userPrivKey_ptr,
CRYS_RSAUserPubKey_t userPubKey_ptr,
CRYS_RSAKGData_t keyGenData_ptr,
CRYS_RSAKGFipsContext_t pFipsCtx 
)

Generates a pair of public and private keys on CRT mode according to [ANS X9.31].

Note
To be FIPS 186-4 [5.1] compliant use only the following key sizes (in bits): 1024, 2048 and 3072.
Returns
CRYS_OK on success.
A non-zero value from crys_rsa_error.h or crys_rnd_error.h on failure.
Parameters
[in,out]rndState_ptrPointer to the RND state structure.
[in]rndGenerateVectFuncPointer to the random vector generation function.
[in]pubExp_ptrThe pointer to the public exponent (public key).
[in]pubExpSizeInBytesThe public exponent size in bytes.
[in]keySizeThe size of the key, in bits. Supported sizes are 512, 1024, 2048, 3072 and 4096 bit.
[out]userPrivKey_ptrPointer to the private key structure.
[out]userPubKey_ptrPointer to the public key structure.
[in]keyGenData_ptrPointer to a temporary structure required for the KeyGen operation.
[in]pFipsCtxPointer to temporary buffer used in case FIPS certification if required.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.