1. CMOX_ECC

1.1. CMOX ECC CURVES

group CMOX_ECC_CURVES

Variables

const cmox_ecc_impl_t CMOX_ECC_CURVE25519

Suggested Curve25519 implementation (for X25519) for the target device

const cmox_ecc_impl_t CMOX_ECC_CURVE448

Suggested Curve448 implementation (for X448) for the target device

const cmox_ecc_impl_t CMOX_ECC_ED25519_HIGHMEM

EDWARDS Ed25519 with general Edwards functions, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_ED25519_OPT_LOWMEM

EDWARDS Ed25519 with Edwards functions optimized for a = -1, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_ED25519_OPT_HIGHMEM

EDWARDS Ed25519 with Edwards functions optimized for a = -1, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_ED448_LOWMEM

EDWARDS Ed448 with general Edwards functions, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_ED448_HIGHMEM

EDWARDS Ed448 with general Edwards functions, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP224R1_LOWMEM

NIST-R P-224, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP224R1_HIGHMEM

NIST-R P-224, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP256R1_LOWMEM

NIST-R P-256, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP256R1_HIGHMEM

NIST-R P-256, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP384R1_LOWMEM

NIST-R P-384, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP384R1_HIGHMEM

NIST-R P-384, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP521R1_LOWMEM

NIST-R P-521, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP521R1_HIGHMEM

NIST-R P-521, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP256K1_LOWMEM

NIST-K P-256, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_SECP256K1_HIGHMEM

NIST-K P-256, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP160R1_LOWMEM

BRAINPOOL-R P-160, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP160R1_HIGHMEM

BRAINPOOL-R P-160, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP192R1_LOWMEM

BRAINPOOL-R P-192, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP192R1_HIGHMEM

BRAINPOOL-R P-192, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP224R1_LOWMEM

BRAINPOOL-R P-224, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP224R1_HIGHMEM

BRAINPOOL-R P-224, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP256R1_LOWMEM

BRAINPOOL-R P-256, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP256R1_HIGHMEM

BRAINPOOL-R P-256, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP320R1_LOWMEM

BRAINPOOL-R P-320, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP320R1_HIGHMEM

BRAINPOOL-R P-320, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP384R1_LOWMEM

BRAINPOOL-R P-384, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP384R1_HIGHMEM

BRAINPOOL-R P-384, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP512R1_LOWMEM

BRAINPOOL-R P-512, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP512R1_HIGHMEM

BRAINPOOL-R P-512, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP160T1_LOWMEM

BRAINPOOL-T P-160, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP160T1_HIGHMEM

BRAINPOOL-T P-160, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP192T1_LOWMEM

BRAINPOOL-T P-192, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP192T1_HIGHMEM

BRAINPOOL-T P-192, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP224T1_LOWMEM

BRAINPOOL-T P-224, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP224T1_HIGHMEM

BRAINPOOL-T P-224, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP256T1_LOWMEM

BRAINPOOL-T P-256, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP256T1_HIGHMEM

BRAINPOOL-T P-256, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP320T1_LOWMEM

BRAINPOOL-T P-320, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP320T1_HIGHMEM

BRAINPOOL-T P-320, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP384T1_LOWMEM

BRAINPOOL-T P-384, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP384T1_HIGHMEM

BRAINPOOL-T P-384, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP512T1_LOWMEM

BRAINPOOL-T P-512, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_BPP512T1_HIGHMEM

BRAINPOOL-T P-512, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_FRP256V1_LOWMEM

ANSSI P-256, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_FRP256V1_HIGHMEM

ANSSI P-256, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_SM2_LOWMEM

OSCCA 256 bit curve, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_SM2_HIGHMEM

OSCCA 256 bit curve, high RAM usage

const cmox_ecc_impl_t CMOX_ECC_SM2TEST_LOWMEM

OSCCA 256 bit test curve, low RAM usage

const cmox_ecc_impl_t CMOX_ECC_SM2TEST_HIGHMEM

OSCCA 256 bit test curve, high RAM usage

1.2. CMOX ECC OUTPUT LENGTHS

group CMOX_ECC_OUTPUT_LENGTHS

Defines

CMOX_ECC_CURVE25519_PRIVKEY_LEN

Byte length for a byte buffer containing a CURVE25519 private key

CMOX_ECC_CURVE25519_PUBKEY_LEN

Byte length for a byte buffer containing a CURVE25519 public key

CMOX_ECC_CURVE25519_SECRET_LEN

Byte length for a byte buffer containing a CURVE25519 ECDH secret

CMOX_ECC_CURVE448_PRIVKEY_LEN

Byte length for a byte buffer containing a CURVE448 private key

CMOX_ECC_CURVE448_PUBKEY_LEN

Byte length for a byte buffer containing a CURVE448 public key

CMOX_ECC_CURVE448_SECRET_LEN

Byte length for a byte buffer containing a CURVE448 ECDH secret

CMOX_ECC_ED25519_SIG_LEN

Byte length for a byte buffer containing a ED25519 signature

CMOX_ECC_ED25519_PRIVKEY_LEN

Byte length for a byte buffer containing a ED25519 private key

CMOX_ECC_ED25519_PUBKEY_LEN

Byte length for a byte buffer containing a ED25519 public key

CMOX_ECC_ED448_SIG_LEN

Byte length for a byte buffer containing a ED448 signature

CMOX_ECC_ED448_PRIVKEY_LEN

Byte length for a byte buffer containing a ED448 private key

CMOX_ECC_ED448_PUBKEY_LEN

Byte length for a byte buffer containing a ED448 public key

CMOX_ECC_SECP224R1_SIG_LEN

Byte length for a byte buffer containing a SECP224R1 signature

CMOX_ECC_SECP224R1_PRIVKEY_LEN

Byte length for a byte buffer containing a SECP224R1 private key

CMOX_ECC_SECP224R1_PUBKEY_LEN

Byte length for a byte buffer containing a SECP224R1 public key

CMOX_ECC_SECP224R1_SECRET_LEN

Byte length for a byte buffer containing a SECP224R1 ECDH secret

CMOX_ECC_SECP256R1_SIG_LEN

Byte length for a byte buffer containing a SECP256R1 signature

CMOX_ECC_SECP256R1_PRIVKEY_LEN

Byte length for a byte buffer containing a SECP256R1 private key

CMOX_ECC_SECP256R1_PUBKEY_LEN

Byte length for a byte buffer containing a SECP256R1 public key

CMOX_ECC_SECP256R1_SECRET_LEN

Byte length for a byte buffer containing a SECP256R1 ECDH secret

CMOX_ECC_SECP384R1_SIG_LEN

Byte length for a byte buffer containing a SECP384R1 signature

CMOX_ECC_SECP384R1_PRIVKEY_LEN

Byte length for a byte buffer containing a SECP384R1 private key

CMOX_ECC_SECP384R1_PUBKEY_LEN

Byte length for a byte buffer containing a SECP384R1 public key

CMOX_ECC_SECP384R1_SECRET_LEN

Byte length for a byte buffer containing a SECP384R1 ECDH secret

CMOX_ECC_SECP521R1_SIG_LEN

Byte length for a byte buffer containing a SECP521R1 signature

CMOX_ECC_SECP521R1_PRIVKEY_LEN

Byte length for a byte buffer containing a SECP521R1 private key

CMOX_ECC_SECP521R1_PUBKEY_LEN

Byte length for a byte buffer containing a SECP521R1 public key

CMOX_ECC_SECP521R1_SECRET_LEN

Byte length for a byte buffer containing a SECP521R1 ECDH secret

CMOX_ECC_SECP256K1_SIG_LEN

Byte length for a byte buffer containing a SECP256K1 signature

CMOX_ECC_SECP256K1_PRIVKEY_LEN

Byte length for a byte buffer containing a SECP256K1 private key

CMOX_ECC_SECP256K1_PUBKEY_LEN

Byte length for a byte buffer containing a SECP256K1 public key

CMOX_ECC_SECP256K1_SECRET_LEN

Byte length for a byte buffer containing a SECP256K1 ECDH secret

CMOX_ECC_BPP160R1_SIG_LEN

Byte length for a byte buffer containing a BPP160R1 signature

CMOX_ECC_BPP160R1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP160R1 private key

CMOX_ECC_BPP160R1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP160R1 public key

CMOX_ECC_BPP160R1_SECRET_LEN

Byte length for a byte buffer containing a BPP160R1 ECDH secret

CMOX_ECC_BPP192R1_SIG_LEN

Byte length for a byte buffer containing a BPP192R1 signature

CMOX_ECC_BPP192R1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP192R1 private key

CMOX_ECC_BPP192R1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP192R1 public key

CMOX_ECC_BPP192R1_SECRET_LEN

Byte length for a byte buffer containing a BPP192R1 ECDH secret

CMOX_ECC_BPP224R1_SIG_LEN

Byte length for a byte buffer containing a BPP224R1 signature

CMOX_ECC_BPP224R1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP224R1 private key

CMOX_ECC_BPP224R1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP224R1 public key

CMOX_ECC_BPP224R1_SECRET_LEN

Byte length for a byte buffer containing a BPP224R1 ECDH secret

CMOX_ECC_BPP256R1_SIG_LEN

Byte length for a byte buffer containing a BPP256R1 signature

CMOX_ECC_BPP256R1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP256R1 private key

CMOX_ECC_BPP256R1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP256R1 public key

CMOX_ECC_BPP256R1_SECRET_LEN

Byte length for a byte buffer containing a BPP256R1 ECDH secret

CMOX_ECC_BPP320R1_SIG_LEN

Byte length for a byte buffer containing a BPP320R1 signature

CMOX_ECC_BPP320R1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP320R1 private key

CMOX_ECC_BPP320R1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP320R1 public key

CMOX_ECC_BPP320R1_SECRET_LEN

Byte length for a byte buffer containing a BPP320R1 ECDH secret

CMOX_ECC_BPP384R1_SIG_LEN

Byte length for a byte buffer containing a BPP384R1 signature

CMOX_ECC_BPP384R1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP384R1 private key

CMOX_ECC_BPP384R1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP384R1 public key

CMOX_ECC_BPP384R1_SECRET_LEN

Byte length for a byte buffer containing a BPP384R1 ECDH secret

CMOX_ECC_BPP512R1_SIG_LEN

Byte length for a byte buffer containing a BPP512R1 signature

CMOX_ECC_BPP512R1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP512R1 private key

CMOX_ECC_BPP512R1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP512R1 public key

CMOX_ECC_BPP512R1_SECRET_LEN

Byte length for a byte buffer containing a BPP512R1 ECDH secret

CMOX_ECC_BPP160T1_SIG_LEN

Byte length for a byte buffer containing a BPP160T1 signature

CMOX_ECC_BPP160T1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP160T1 private key

CMOX_ECC_BPP160T1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP160T1 public key

CMOX_ECC_BPP160T1_SECRET_LEN

Byte length for a byte buffer containing a BPP160T1 ECDH secret

CMOX_ECC_BPP192T1_SIG_LEN

Byte length for a byte buffer containing a BPP192T1 signature

CMOX_ECC_BPP192T1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP192T1 private key

CMOX_ECC_BPP192T1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP192T1 public key

CMOX_ECC_BPP192T1_SECRET_LEN

Byte length for a byte buffer containing a BPP192T1 ECDH secret

CMOX_ECC_BPP224T1_SIG_LEN

Byte length for a byte buffer containing a BPP224T1 signature

CMOX_ECC_BPP224T1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP224T1 private key

CMOX_ECC_BPP224T1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP224T1 public key

CMOX_ECC_BPP224T1_SECRET_LEN

Byte length for a byte buffer containing a BPP224T1 ECDH secret

CMOX_ECC_BPP256T1_SIG_LEN

Byte length for a byte buffer containing a BPP256T1 signature

CMOX_ECC_BPP256T1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP256T1 private key

CMOX_ECC_BPP256T1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP256T1 public key

CMOX_ECC_BPP256T1_SECRET_LEN

Byte length for a byte buffer containing a BPP256T1 ECDH secret

CMOX_ECC_BPP320T1_SIG_LEN

Byte length for a byte buffer containing a BPP320T1 signature

CMOX_ECC_BPP320T1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP320T1 private key

CMOX_ECC_BPP320T1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP320T1 public key

CMOX_ECC_BPP320T1_SECRET_LEN

Byte length for a byte buffer containing a BPP320T1 ECDH secret

CMOX_ECC_BPP384T1_SIG_LEN

Byte length for a byte buffer containing a BPP384T1 signature

CMOX_ECC_BPP384T1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP384T1 private key

CMOX_ECC_BPP384T1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP384T1 public key

CMOX_ECC_BPP384T1_SECRET_LEN

Byte length for a byte buffer containing a BPP384T1 ECDH secret

CMOX_ECC_BPP512T1_SIG_LEN

Byte length for a byte buffer containing a BPP512T1 signature

CMOX_ECC_BPP512T1_PRIVKEY_LEN

Byte length for a byte buffer containing a BPP512T1 private key

CMOX_ECC_BPP512T1_PUBKEY_LEN

Byte length for a byte buffer containing a BPP512T1 public key

CMOX_ECC_BPP512T1_SECRET_LEN

Byte length for a byte buffer containing a BPP512T1 ECDH secret

CMOX_ECC_FRP256V1_SIG_LEN

Byte length for a byte buffer containing a FRP256V1 signature

CMOX_ECC_FRP256V1_PRIVKEY_LEN

Byte length for a byte buffer containing a FRP256V1 private key

CMOX_ECC_FRP256V1_PUBKEY_LEN

Byte length for a byte buffer containing a FRP256V1 public key

CMOX_ECC_FRP256V1_SECRET_LEN

Byte length for a byte buffer containing a FRP256V1 ECDH secret

CMOX_ECC_SM2_SIG_LEN

Byte length for a byte buffer containing a SM2 signature

CMOX_ECC_SM2_PRIVKEY_LEN

Byte length for a byte buffer containing a SM2 private key

CMOX_ECC_SM2_PUBKEY_LEN

Byte length for a byte buffer containing a SM2 public key

CMOX_ECC_SM2_SECRET_LEN

Byte length for a byte buffer containing a SM2 ECDH secret

CMOX_ECC_SM2TEST_SIG_LEN

Byte length for a byte buffer containing a SM2TEST signature

CMOX_ECC_SM2TEST_PRIVKEY_LEN

Byte length for a byte buffer containing a SM2TEST private key

CMOX_ECC_SM2TEST_PUBKEY_LEN

Byte length for a byte buffer containing a SM2TEST public key

CMOX_ECC_SM2TEST_SECRET_LEN

Byte length for a byte buffer containing a SM2TEST ECDH secret

1.3. CMOX ECC PUBLIC METHODS

group CMOX_ECC_PUBLIC_METHODS

Functions

void cmox_ecc_construct ( cmox_ecc_handle_t * P_pEccCtx , const cmox_math_funcs_t P_Math , uint8_t * P_pBuf , size_t P_BufLen )

Mandatory function to set Low Level Mathematical Functions, and working memory buffer, for ECC.

Parameters :
  • P_pEccCtx[inout] Context for ECC operations

  • P_Math[in] Structure pointer with the Low-level Mathematical functions This parameter can be one of the following:

    • CMOX_MATH_FUNCS_SMALL

    • CMOX_MATH_FUNCS_FAST

    • CMOX_MATH_FUNCS_SUPERFAST256

  • P_pBuf[in] The preallocated static buffer that will be used

  • P_BufLen[in] The size in bytes of the P_pBuf buffer

void cmox_ecc_cleanup ( cmox_ecc_handle_t * P_pEccCtx )

Clean the ECC context and the internal temporary buffer.

Parameters :

P_pEccCtx [inout] Context for ECC operations