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.
Dependents: TYBLE16_simple_data_logger TYBLE16_MP3_Air
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 13:55:22 by
