Mistake on this page?
Report an issue in GitHub or email us
Functions
CryptoCell RSA Utility APIs

Functions

CRYSError_t CRYS_RSA_Build_PubKey (CRYS_RSAUserPubKey_t *UserPubKey_ptr, uint8_t *Exponent_ptr, uint16_t ExponentSize, uint8_t *Modulus_ptr, uint16_t ModulusSize)
 Builds a CRYSRSAPubKey_t public key structure with the provided modulus and exponent. More...
 
CRYSError_t CRYS_RSA_Build_PrivKey (CRYS_RSAUserPrivKey_t *UserPrivKey_ptr, uint8_t *PrivExponent_ptr, uint16_t PrivExponentSize, uint8_t *PubExponent_ptr, uint16_t PubExponentSize, uint8_t *Modulus_ptr, uint16_t ModulusSize)
 Builds a CRYSRSAPrivKey_t private key structure with the provided modulus and exponent, marking the key as a non-CRT key. More...
 
CRYSError_t CRYS_RSA_Build_PrivKeyCRT (CRYS_RSAUserPrivKey_t *UserPrivKey_ptr, uint8_t *P_ptr, uint16_t PSize, uint8_t *Q_ptr, uint16_t QSize, uint8_t *dP_ptr, uint16_t dPSize, uint8_t *dQ_ptr, uint16_t dQSize, uint8_t *qInv_ptr, uint16_t qInvSize)
 Builds a CRYSRSAPrivKey_t private key structure with the provided parameters, marking the key as a CRT key. More...
 
CRYSError_t CRYS_RSA_Get_PubKey (CRYS_RSAUserPubKey_t *UserPubKey_ptr, uint8_t *Exponent_ptr, uint16_t *ExponentSize_ptr, uint8_t *Modulus_ptr, uint16_t *ModulusSize_ptr)
 The function gets the e,n public key parameters from the input CRYS_RSAUserPubKey_t structure. The function can also be used to retrieve the modulus and exponent sizes only (Exponent_ptr AND Modulus_ptr must be set to NULL). More...
 

Detailed Description

Function Documentation

CRYSError_t CRYS_RSA_Build_PrivKey ( CRYS_RSAUserPrivKey_t UserPrivKey_ptr,
uint8_t *  PrivExponent_ptr,
uint16_t  PrivExponentSize,
uint8_t *  PubExponent_ptr,
uint16_t  PubExponentSize,
uint8_t *  Modulus_ptr,
uint16_t  ModulusSize 
)

Builds a CRYSRSAPrivKey_t private key structure with the provided modulus and exponent, marking the key as a non-CRT key.

Returns
CRYS_OK on success.
A non-zero value from crys_rsa_error.h on failure.
Parameters
[out]UserPrivKey_ptrPointer to the public key structure.
[in]PrivExponent_ptrPointer to the private exponent stream of bytes (Big-Endian format).
[in]PrivExponentSizeThe size of the private exponent (in bytes).
[in]PubExponent_ptrPointer to the public exponent stream of bytes (Big-Endian format).
[in]PubExponentSizeThe size of the public exponent (in bytes).
[in]Modulus_ptrPointer to the modulus stream of bytes (Big-Endian format). The most significant bit must be set to '1'.
[in]ModulusSizeThe modulus size in bytes. Supported sizes are 64, 128, 256, 384 and 512.
CRYSError_t CRYS_RSA_Build_PrivKeyCRT ( CRYS_RSAUserPrivKey_t UserPrivKey_ptr,
uint8_t *  P_ptr,
uint16_t  PSize,
uint8_t *  Q_ptr,
uint16_t  QSize,
uint8_t *  dP_ptr,
uint16_t  dPSize,
uint8_t *  dQ_ptr,
uint16_t  dQSize,
uint8_t *  qInv_ptr,
uint16_t  qInvSize 
)

Builds a CRYSRSAPrivKey_t private key structure with the provided parameters, marking the key as a CRT key.

Returns
CRYS_OK on success.
A non-zero value from crys_rsa_error.h on failure.
Parameters
[out]UserPrivKey_ptrPointer to the public key structure.
[in]P_ptrPointer to the first factor stream of bytes (Big-Endian format).
[in]PSizeThe size of the first factor (in bytes).
[in]Q_ptrPointer to the second factor stream of bytes (Big-Endian format).
[in]QSizeThe size of the second factor (in bytes).
[in]dP_ptrPointer to the first factor's CRT exponent stream of bytes (Big-Endian format).
[in]dPSizeThe size of the first factor's CRT exponent (in bytes).
[in]dQ_ptrPointer to the second factor's CRT exponent stream of bytes (Big-Endian format).
[in]dQSizeThe size of the second factor's CRT exponent (in bytes).
[in]qInv_ptrPointer to the first CRT coefficient stream of bytes (Big-Endian format).
[in]qInvSizeThe size of the first CRT coefficient (in bytes).
CRYSError_t CRYS_RSA_Build_PubKey ( CRYS_RSAUserPubKey_t UserPubKey_ptr,
uint8_t *  Exponent_ptr,
uint16_t  ExponentSize,
uint8_t *  Modulus_ptr,
uint16_t  ModulusSize 
)

Builds a CRYSRSAPubKey_t public key structure with the provided modulus and exponent.

Returns
CRYS_OK on success.
A non-zero value from crys_rsa_error.h on failure.
Parameters
[out]UserPubKey_ptrPointer to the public key structure.
[in]Exponent_ptrPointer to the exponent stream of bytes (Big-Endian format).
[in]ExponentSizeThe size of the exponent (in bytes).
[in]Modulus_ptrPointer to the modulus stream of bytes (Big-Endian format). The most significant bit (MSB) must be set to '1'.
[in]ModulusSizeThe modulus size in bytes. Supported sizes are 64, 128, 256, 384 and 512.
CRYSError_t CRYS_RSA_Get_PubKey ( CRYS_RSAUserPubKey_t UserPubKey_ptr,
uint8_t *  Exponent_ptr,
uint16_t *  ExponentSize_ptr,
uint8_t *  Modulus_ptr,
uint16_t *  ModulusSize_ptr 
)

The function gets the e,n public key parameters from the input CRYS_RSAUserPubKey_t structure. The function can also be used to retrieve the modulus and exponent sizes only (Exponent_ptr AND Modulus_ptr must be set to NULL).

Note
All members of input UserPubKey_ptr structure must be initialized.
Returns
CRYS_OK on success.
A non-zero value from crys_rsa_error.h on failure.
Parameters
[in]UserPubKey_ptrA pointer to the public key structure.
[out]Exponent_ptrA pointer to the exponent stream of bytes (Big-Endian format).
[in,out]ExponentSize_ptrthe size of the exponent buffer in bytes, it is updated to the actual size of the exponent, in bytes.
[out]Modulus_ptrA pointer to the modulus stream of bytes (Big-Endian format). The MS (most significant) bit must be set to '1'.
[in,out]ModulusSize_ptrthe size of the modulus buffer in bytes, it is updated to the actual size of the modulus, in bytes.
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.