5. CMOX_ECDH ¶
5.1. ECDH public method prototypes ¶
- group CMOX_ECC_ECDH_PUBLIC_METHODS
-
Functions
-
cmox_ecc_retval_t
cmox_ecdh
(
cmox_ecc_handle_t
*
P_pEccCtx
,
const
cmox_ecc_impl_t
P_CurveParams
,
const
uint8_t
*
P_pPrivKey
,
size_t
P_PrivKeyLen
,
const
uint8_t
*
P_pPubKey
,
size_t
P_PubKeyLen
,
uint8_t
*
P_pSharedSecret
,
size_t
*
P_pSharedSecretLen
)
-
Generate a shared secret from a private key and a public key.
- Parameters :
-
P_pEccCtx – [in] Context for ECC operations
P_CurveParams – [in] Curve Parameters and point functions This parameter can be one of the following:
CMOX_ECC_CURVE25519
CMOX_ECC_CURVE448
CMOX_ECC_SECP224R1_LOWMEM
CMOX_ECC_SECP224R1_HIGHMEM
CMOX_ECC_SECP256R1_LOWMEM
CMOX_ECC_SECP256R1_HIGHMEM
CMOX_ECC_SECP384R1_LOWMEM
CMOX_ECC_SECP384R1_HIGHMEM
CMOX_ECC_SECP521R1_LOWMEM
CMOX_ECC_SECP521R1_HIGHMEM
CMOX_ECC_SECP256K1_LOWMEM
CMOX_ECC_SECP256K1_HIGHMEM
CMOX_ECC_BPP160R1_LOWMEM
CMOX_ECC_BPP160R1_HIGHMEM
CMOX_ECC_BPP192R1_LOWMEM
CMOX_ECC_BPP192R1_HIGHMEM
CMOX_ECC_BPP224R1_LOWMEM
CMOX_ECC_BPP224R1_HIGHMEM
CMOX_ECC_BPP256R1_LOWMEM
CMOX_ECC_BPP256R1_HIGHMEM
CMOX_ECC_BPP320R1_LOWMEM
CMOX_ECC_BPP320R1_HIGHMEM
CMOX_ECC_BPP384R1_LOWMEM
CMOX_ECC_BPP384R1_HIGHMEM
CMOX_ECC_BPP512R1_LOWMEM
CMOX_ECC_BPP512R1_HIGHMEM
CMOX_ECC_BPP160T1_LOWMEM
CMOX_ECC_BPP160T1_HIGHMEM
CMOX_ECC_BPP192T1_LOWMEM
CMOX_ECC_BPP192T1_HIGHMEM
CMOX_ECC_BPP224T1_LOWMEM
CMOX_ECC_BPP224T1_HIGHMEM
CMOX_ECC_BPP256T1_LOWMEM
CMOX_ECC_BPP256T1_HIGHMEM
CMOX_ECC_BPP320T1_LOWMEM
CMOX_ECC_BPP320T1_HIGHMEM
CMOX_ECC_BPP384T1_LOWMEM
CMOX_ECC_BPP384T1_HIGHMEM
CMOX_ECC_BPP512T1_LOWMEM
CMOX_ECC_BPP512T1_HIGHMEM
CMOX_ECC_FRP256V1_LOWMEM
CMOX_ECC_FRP256V1_HIGHMEM
P_pPrivKey – [in] Buffer with the private key
P_PrivKeyLen – [in] Private key length
P_pPubKey – [in] Buffer with the public key
P_PubKeyLen – [in] Public key length
P_pSharedSecret – [out] Buffer for the shared secret
P_pSharedSecretLen – [out] Shared secret length
- Return values :
-
CMOX_ECC_SUCCESS – Everything OK
CMOX_ECC_ERR_MATHCURVE_MISMATCH – Mathematical function set is not compatible with current ECC curve
CMOX_ECC_ERR_ALGOCURVE_MISMATCH – Curve is not compatible with current functionality
CMOX_ECC_ERR_BAD_PARAMETERS – Some NULL/wrong/empty parameter or Construct API not called
CMOX_ECC_ERR_MEMORY_FAIL – Not enough memory
CMOX_ECC_ERR_INVALID_PUBKEY – Public key not in a valid format
-
cmox_ecc_retval_t
cmox_ecdh
(
cmox_ecc_handle_t
*
P_pEccCtx
,
const
cmox_ecc_impl_t
P_CurveParams
,
const
uint8_t
*
P_pPrivKey
,
size_t
P_PrivKeyLen
,
const
uint8_t
*
P_pPubKey
,
size_t
P_PubKeyLen
,
uint8_t
*
P_pSharedSecret
,
size_t
*
P_pSharedSecretLen
)