Defines all functions of mcuxClEcc.
More...
|
mcuxClEcc_Status_Protected_t | mcuxClEcc_KeyGen (mcuxClSession_Handle_t pSession, const mcuxClEcc_KeyGen_Param_t *pParam) |
| implements ECDSA key generation. More...
|
|
mcuxClEcc_Status_Protected_t | mcuxClEcc_Sign (mcuxClSession_Handle_t pSession, const mcuxClEcc_Sign_Param_t *pParam) |
| implements ECDSA signature generation. More...
|
|
mcuxClEcc_Status_Protected_t | mcuxClEcc_Verify (mcuxClSession_Handle_t pSession, const mcuxClEcc_Verify_Param_t *pParam) |
| implements ECDSA signature verification. More...
|
|
mcuxClEcc_Status_Protected_t | mcuxClEcc_PointMult (mcuxClSession_Handle_t pSession, const mcuxClEcc_PointMult_Param_t *pParam) |
| implements ECC point multiplication. More...
|
|
mcuxClEcc_Status_Protected_t | mcuxClEcc_Mont_DhKeyGeneration (mcuxClSession_Handle_t session, mcuxClKey_Type_t type, mcuxClKey_Protection_t protection, mcuxClKey_Handle_t privKey, uint8_t *pPrivData, uint32_t *const pPrivDataSize, mcuxClKey_Handle_t pubKey, uint8_t *pPubData, uint32_t *const pPubDataSize) |
| implements ECC key pair generation step for a MontDh key agreement according to rfc7748. More...
|
|
mcuxClEcc_Status_Protected_t | mcuxClEcc_Mont_DhKeyAgreement (mcuxClSession_Handle_t session, mcuxClKey_Handle_t key, mcuxClKey_Handle_t otherKey, uint8_t *pOut, uint32_t *const pOutSize) |
| implements ECC key agreement according to rfc7748. More...
|
|
Defines all functions of mcuxClEcc.
◆ mcuxClEcc_KeyGen()
implements ECDSA key generation.
- Return values
-
- Attention
- This function uses DRBG and PRNG. Caller needs to check if DRBG and PRNG are ready.
- Parameters
-
◆ mcuxClEcc_Sign()
implements ECDSA signature generation.
- Return values
-
- Attention
- This function uses DRBG and PRNG. Caller needs to check if DRBG and PRNG are ready.
- Parameters
-
◆ mcuxClEcc_Verify()
implements ECDSA signature verification.
- Return values
-
- Parameters
-
◆ mcuxClEcc_PointMult()
implements ECC point multiplication.
This API performs elliptic curve point multiplication on the given elliptic curve in short Weierstrass form. This API does not check if the curve parameters and the given point are valid or not. Invalid curve parameters or point might cause the return of MCUXCLECC_STATUS_POINTMULT_INVALID_PARAMS, invalid result, and unexpected behavior (e.g., the return of MCUXCLECC_STATUS_FAULT_ATTACK).
- Parameters
-
- Parameter properties
- pParam.curveParam.pG
- the base point is not used in this API. This pointer can be left unspecified.
- Returns
- A code-flow protected error code (see MCUXCLECC_STATUS_)
- Return values
-
- Attention
- This function uses PRNG. Caller needs to check if PRNG is ready.
◆ mcuxClEcc_Mont_DhKeyGeneration()
implements ECC key pair generation step for a MontDh key agreement according to rfc7748.
This API performs elliptic curve key generation of the private key and calculates corresponding public key for MontDh key agreement This API does not check if the curve parameters are correct. This API might return MCUXCLECC_STATUS_MONT_RNG_ERROR when RNG behave in unexpected way Unexpected behavior will return MCUXCLECC_STATUS_FAULT_ATTACK.
- Parameters
-
[in] | session | mcuxClSession_Descriptor structure |
[in] | type | type structure specifying requested key type to be generated. Also contains domain parameters |
[in] | protection | mcuxClKey_Protection structure |
[out] | privKey | private key handling structure |
[out] | pPrivData | buffer for private key of the MCUXCLECC_MONT_CURVE25519_SIZE_PRIVATEKEY length |
[out] | pPrivDataSize | private key length |
[out] | pubKey | public key handling structure |
[out] | pPubData | buffer for public key x-coordinate of MCUXCLECC_MONT_CURVE25519_SIZE_PUBLICKEY length |
[out] | pPubDataSize | public key x-coordinate length |
- Returns
- A code-flow protected error code (see MCUXCLECC_STATUS_ and MCUXCLECC_MONT_STATUS_)
- Return values
-
- Attention
- This function uses PRNG. Caller needs to check if PRNG is ready.
- Examples
- mcuxClEcc_Mont_example.c.
◆ mcuxClEcc_Mont_DhKeyAgreement()
implements ECC key agreement according to rfc7748.
This API performs elliptic curve key agreement to compute shared secret between two parties using the function X25519 This API does not check if the curve parameters are correct. This API might return MCUXCLECC_STATUS_MONT_RNG_ERROR when RNG behave in unexpected way This API might return MCUXCLECC_STATUS_MONT_DHKEYAGREEMENT_ERROR_SMALL_SUBGROUP if generated public key lies in the small subgroup Unexpected behavior will return MCUXCLECC_STATUS_FAULT_ATTACK.
- Parameters
-
[in] | session | pointer to mcuxClSession_Descriptor. |
[in] | key | private key handling structure |
[in] | otherKey | public key handling structure |
[out] | pOut | buffer for shared secret of length MCUXCLECC_MONT_CURVE25519_SIZE_SHAREDSECRET |
[out] | pOutSize | shared secret length |
- Returns
- A code-flow protected error code (see MCUXCLECC_STATUS_ and MCUXCLECC_MONT_STATUS_)
- Return values
-
- Attention
- This function uses PRNG. Caller needs to check if PRNG is ready.
- Examples
- mcuxClEcc_Mont_example.c.