Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
CryptoCell SRP APIs
Data Structures | |
struct | CRYS_SRP_GroupParam_t |
struct | CRYS_SRP_Context_t |
Modules | |
CryptoCell SRP specific errors | |
Typedefs | |
typedef uint8_t | CRYS_SRP_Modulus_t [CRYS_SRP_MAX_MODULUS] |
typedef uint8_t | CRYS_SRP_Digest_t [CRYS_SRP_MAX_DIGEST] |
typedef uint8_t | CRYS_SRP_Secret_t [2 *CRYS_SRP_MAX_DIGEST] |
typedef struct CRYS_SRP_GroupParam_t | CRYS_SRP_GroupParam_t |
typedef struct CRYS_SRP_Context_t | CRYS_SRP_Context_t |
Enumerations | |
enum | CRYS_SRP_Version_t { CRYS_SRP_VER_3 = 0, CRYS_SRP_VER_6 = 1, CRYS_SRP_VER_6A = 2, CRYS_SRP_VER_HK = 3, CRYS_SRP_NumOfVersions, CRYS_SRP_VersionLast = 0x7FFFFFFF } |
enum | CRYS_SRP_Entity_t { CRYS_SRP_HOST = 1, CRYS_SRP_USER = 2, CRYS_SRP_NumOfEntityType, CRYS_SRP_EntityLast = 0x7FFFFFFF } |
Functions | |
CIMPORT_C CRYSError_t | CRYS_SRP_Init (CRYS_SRP_Entity_t srpType, CRYS_SRP_Version_t srpVer, CRYS_SRP_Modulus_t srpModulus, uint8_t srpGen, size_t modSizeInBits, CRYS_HASH_OperationMode_t hashMode, uint8_t *pUserName, size_t userNameSize, uint8_t *pPwd, size_t pwdSize, void *pRndState, SaSiRndGenerateVectWorkFunc_t rndGenerateVectFunc, CRYS_SRP_Context_t *pCtx) |
This function initiates the SRP context. | |
CIMPORT_C CRYSError_t | CRYS_SRP_PwdVerCreate (size_t saltSize, uint8_t *pSalt, CRYS_SRP_Modulus_t pwdVerifier, CRYS_SRP_Context_t *pCtx) |
This function calculates pSalt & password verifier. | |
CIMPORT_C CRYSError_t | CRYS_SRP_Clear (CRYS_SRP_Context_t *pCtx) |
Clears the SRP context. | |
CIMPORT_C CRYSError_t | CRYS_SRP_HostPubKeyCreate (size_t ephemPrivSize, CRYS_SRP_Modulus_t pwdVerifier, CRYS_SRP_Modulus_t hostPubKeyB, CRYS_SRP_Context_t *pCtx) |
This function generates host public & private ephemeral key, known as B & b in RFC. | |
CIMPORT_C CRYSError_t | CRYS_SRP_HostProofVerifyAndCalc (size_t saltSize, uint8_t *pSalt, CRYS_SRP_Modulus_t pwdVerifier, CRYS_SRP_Modulus_t userPubKeyA, CRYS_SRP_Modulus_t hostPubKeyB, CRYS_SRP_Digest_t userProof, CRYS_SRP_Digest_t hostProof, CRYS_SRP_Secret_t sharedSecret, CRYS_SRP_Context_t *pCtx) |
Verifies the user Proof and calculates the Host message proof. | |
CIMPORT_C CRYSError_t | CRYS_SRP_UserPubKeyCreate (size_t ephemPrivSize, CRYS_SRP_Modulus_t userPubKeyA, CRYS_SRP_Context_t *pCtx) |
This function generates user public & private ephemeral key, known as A & a in RFC. | |
CIMPORT_C CRYSError_t | CRYS_SRP_UserProofCalc (size_t saltSize, uint8_t *pSalt, CRYS_SRP_Modulus_t userPubKeyA, CRYS_SRP_Modulus_t hostPubKeyB, CRYS_SRP_Digest_t userProof, CRYS_SRP_Secret_t sharedSecret, CRYS_SRP_Context_t *pCtx) |
This function calculates the user proof. | |
CIMPORT_C CRYSError_t | CRYS_SRP_UserProofVerify (CRYS_SRP_Secret_t sharedSecret, CRYS_SRP_Modulus_t userPubKeyA, CRYS_SRP_Digest_t userProof, CRYS_SRP_Digest_t hostProof, CRYS_SRP_Context_t *pCtx) |
This function verifies the host proof. |
Typedef Documentation
typedef struct CRYS_SRP_Context_t CRYS_SRP_Context_t |
The SRP context prototype
typedef uint8_t CRYS_SRP_Digest_t[CRYS_SRP_MAX_DIGEST] |
SRP digest buffer definition.
Definition at line 133 of file crys_srp.h.
typedef struct CRYS_SRP_GroupParam_t CRYS_SRP_GroupParam_t |
Group parameters for the SRP - defines the modulus and the generator used
typedef uint8_t CRYS_SRP_Modulus_t[CRYS_SRP_MAX_MODULUS] |
SRP modulus buffer definition.
Definition at line 130 of file crys_srp.h.
typedef uint8_t CRYS_SRP_Secret_t[2 *CRYS_SRP_MAX_DIGEST] |
SRP secret buffer definition.
Definition at line 136 of file crys_srp.h.
Enumeration Type Documentation
enum CRYS_SRP_Entity_t |
SRP entity type
- Enumerator:
Definition at line 158 of file crys_srp.h.
enum CRYS_SRP_Version_t |
SRP supported versions
- Enumerator:
CRYS_SRP_VER_3 VER 3.
CRYS_SRP_VER_6 VER 6.
CRYS_SRP_VER_6A VER 6A.
CRYS_SRP_VER_HK VER 6A.
CRYS_SRP_NumOfVersions Maximal number of supported versions.
CRYS_SRP_VersionLast Reserved.
Definition at line 143 of file crys_srp.h.
Function Documentation
CIMPORT_C CRYSError_t CRYS_SRP_Clear | ( | CRYS_SRP_Context_t * | pCtx ) |
Clears the SRP context.
- Returns:
- CRYS_OK on success.
- A non-zero value on failure as defined crys_srp_error.h.
- Parameters:
-
[in,out] pCtx A Pointer to the SRP context.
CIMPORT_C CRYSError_t CRYS_SRP_HostProofVerifyAndCalc | ( | size_t | saltSize, |
uint8_t * | pSalt, | ||
CRYS_SRP_Modulus_t | pwdVerifier, | ||
CRYS_SRP_Modulus_t | userPubKeyA, | ||
CRYS_SRP_Modulus_t | hostPubKeyB, | ||
CRYS_SRP_Digest_t | userProof, | ||
CRYS_SRP_Digest_t | hostProof, | ||
CRYS_SRP_Secret_t | sharedSecret, | ||
CRYS_SRP_Context_t * | pCtx | ||
) |
Verifies the user Proof and calculates the Host message proof.
- Returns:
- CRYS_OK on success.
- A non-zero value on failure as defined crys_srp_error.h or crys_hash_error.h.
- Parameters:
-
[in] saltSize The size of the random salt, The range is between CRYS_SRP_MIN_SALT_SIZE to CRYS_SRP_MAX_SALT_SIZE. [in] pSalt A Pointer to the pSalt number. [in] pwdVerifier A Pointer to the password verifier (v). [in] userPubKeyA A Pointer to the user ephemeral public key (A). [in] hostPubKeyB A Pointer to the host ephemeral public key (B). [in] userProof A Pointer to the SRP user proof buffer (M1). [out] hostProof A Pointer to the SRP host proof buffer (M2). [out] sharedSecret A Pointer to the SRP shared secret (K). [in] pCtx A Pointer to the SRP context.
CIMPORT_C CRYSError_t CRYS_SRP_HostPubKeyCreate | ( | size_t | ephemPrivSize, |
CRYS_SRP_Modulus_t | pwdVerifier, | ||
CRYS_SRP_Modulus_t | hostPubKeyB, | ||
CRYS_SRP_Context_t * | pCtx | ||
) |
This function generates host public & private ephemeral key, known as B & b in RFC.
- Returns:
- CRYS_OK on success.
- A non-zero value on failure as defined crys_srp_error.h or crys_rnd_error.h.
- Parameters:
-
[in] ephemPrivSize The size of the generated ephemeral private key (b). The range is between CRYS_SRP_PRIV_NUM_MIN_SIZE to CRYS_SRP_PRIV_NUM_MAX_SIZE [in] pwdVerifier A Pointer to the verifier (v). [out] hostPubKeyB A Pointer to the host ephemeral public key (B). [in,out] pCtx A Pointer to the SRP context.
CIMPORT_C CRYSError_t CRYS_SRP_Init | ( | CRYS_SRP_Entity_t | srpType, |
CRYS_SRP_Version_t | srpVer, | ||
CRYS_SRP_Modulus_t | srpModulus, | ||
uint8_t | srpGen, | ||
size_t | modSizeInBits, | ||
CRYS_HASH_OperationMode_t | hashMode, | ||
uint8_t * | pUserName, | ||
size_t | userNameSize, | ||
uint8_t * | pPwd, | ||
size_t | pwdSize, | ||
void * | pRndState, | ||
SaSiRndGenerateVectWorkFunc_t | rndGenerateVectFunc, | ||
CRYS_SRP_Context_t * | pCtx | ||
) |
This function initiates the SRP context.
- Returns:
- CRYS_OK on success.
- A non-zero value on failure as defined crys_srp_error.h or crys_hash_error.h.
- Parameters:
-
[in] srpType SRP entity type. [in] srpVer SRP version. [in] srpModulus A pointer to the SRP modulus, BE byte buffer. [in] srpGen The SRP generator param. [in] modSizeInBits The SRP modulus size in bits:1024, 1536, 2048 & 3072 [in] hashMode Enumerator defining the HASH mode. [in] pUserName A Pointer to user name. [in] userNameSize The user name buffer size > 0. [in] pPwd A Pointer to user password. [in] pwdSize The user password buffer size > 0 if pPwd is valid. [in] pRndState A Pointer to RND context. [in] rndGenerateVectFunc Pointer to random vector generation function. [out] pCtx A Pointer to the SRP host context.
CIMPORT_C CRYSError_t CRYS_SRP_PwdVerCreate | ( | size_t | saltSize, |
uint8_t * | pSalt, | ||
CRYS_SRP_Modulus_t | pwdVerifier, | ||
CRYS_SRP_Context_t * | pCtx | ||
) |
This function calculates pSalt & password verifier.
- Returns:
- CRYS_OK on success.
- A non-zero value on failure as defined crys_srp_error.h, crys_rnd_error.h or crys_hash_error.h.
- Parameters:
-
[in] saltSize The size of the random salt to generate, The range is between CRYS_SRP_MIN_SALT_SIZE to CRYS_SRP_MAX_SALT_SIZE. [out] pSalt A Pointer to the pSalt number (s). [out] pwdVerifier A Pointer to the password verifier (v). [out] pCtx A Pointer to the SRP context.
CIMPORT_C CRYSError_t CRYS_SRP_UserProofCalc | ( | size_t | saltSize, |
uint8_t * | pSalt, | ||
CRYS_SRP_Modulus_t | userPubKeyA, | ||
CRYS_SRP_Modulus_t | hostPubKeyB, | ||
CRYS_SRP_Digest_t | userProof, | ||
CRYS_SRP_Secret_t | sharedSecret, | ||
CRYS_SRP_Context_t * | pCtx | ||
) |
This function calculates the user proof.
- Returns:
- CRYS_OK on success.
- A non-zero value on failure as defined crys_srp_error.h or crys_hash_error.h.
- Parameters:
-
[in] saltSize The size of the random salt, The range is between CRYS_SRP_MIN_SALT_SIZE to CRYS_SRP_MAX_SALT_SIZE. [in] pSalt A Pointer to the pSalt number. [in] userPubKeyA A Pointer to the user public ephmeral key (A). [in] hostPubKeyB A Pointer to the host public ephmeral key (B). [out] userProof A Pointer to the SRP user proof buffer (M1). [out] sharedSecret A Pointer to the SRP shared secret (K). [out] pCtx A Pointer to the SRP context.
CIMPORT_C CRYSError_t CRYS_SRP_UserProofVerify | ( | CRYS_SRP_Secret_t | sharedSecret, |
CRYS_SRP_Modulus_t | userPubKeyA, | ||
CRYS_SRP_Digest_t | userProof, | ||
CRYS_SRP_Digest_t | hostProof, | ||
CRYS_SRP_Context_t * | pCtx | ||
) |
This function verifies the host proof.
- Returns:
- CRYS_OK on success.
- A non-zero value on failure as defined crys_srp_error.h or crys_hash_error.h.
- Parameters:
-
[in] sharedSecret A Pointer to the SRP shared secret (K). [in] userPubKeyA A Pointer to the user public ephmeral key (A). [in] userProof A Pointer to the SRP user proof buffer (M1). [in] hostProof A Pointer to the SRP host proof buffer (M2). [out] pCtx A Pointer to the SRP user context.
CIMPORT_C CRYSError_t CRYS_SRP_UserPubKeyCreate | ( | size_t | ephemPrivSize, |
CRYS_SRP_Modulus_t | userPubKeyA, | ||
CRYS_SRP_Context_t * | pCtx | ||
) |
This function generates user public & private ephemeral key, known as A & a in RFC.
- Returns:
- CRYS_OK on success.
- A non-zero value on failure as defined crys_srp_error.h or crys_rnd_error.h.
- Parameters:
-
[in] ephemPrivSize The size of the generated ephemeral private key (a). The range is between CRYS_SRP_PRIV_NUM_MIN_SIZE to CRYS_SRP_PRIV_NUM_MAX_SIZE [out] userPubKeyA A Pointer to the user ephemeral public key (A). [in,out] pCtx A Pointer to the SRP context.
Generated on Tue Jul 12 2022 12:46:38 by
