Asymmetric cryptographic command definitions

@file

CMDDEFS_HEADER_FILE Macro

C

#define CMDDEFS_HEADER_FILE

SX_PK_CMD_MOD_ADD Macro

C

typedef const struct sx_pk_cmd_def const SX_CMD_PTR;

/
 @addtogroup SX_PK_CMDS

 @{
    
    / Modular addition of operands A and B /
    #define SX_PK_CMD_MOD_ADD ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_MOD_ADD))

/ Copyright (c) 2018-2020 Silex Insight sa Copyright (c) 2014-2020 Beerten Engineering scs SPDX-License-Identifier: BSD-3-Clause

Modular substraction of operands A and B */

Modular multiplication of operands A and B with odd modulo */

SX_PK_CMD_ODD_MOD_MULT Macro

C

    #define SX_PK_CMD_ODD_MOD_MULT ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_ODD_MOD_MULT))

Modular inversion of an operand with even modulo */

Modular inversion of an operand with even modulo */

SX_PK_CMD_EVEN_MOD_REDUCE Macro

C

    #define SX_PK_CMD_EVEN_MOD_REDUCE ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_EVEN_MOD_REDUCE))

Modular reduction of an operand with odd modulo */

Modular division of operands A and B with odd modulo */

SX_PK_CMD_ODD_MOD_DIV Macro

C

    #define SX_PK_CMD_ODD_MOD_DIV ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_ODD_MOD_DIV))

Modular inversion of an operand with odd modulo */

Modular square root **/

SX_PK_CMD_MOD_SQRT Macro

C

    #define SX_PK_CMD_MOD_SQRT ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_MOD_SQRT))

Multiplication **/

Modular exponentiation operation */

SX_PK_CMD_MOD_EXP Macro

C

    #define SX_PK_CMD_MOD_EXP ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_MOD_EXP))

Diffie Hellman modular exponentiation operation with countermeasures

SX_PK_CMD_DH_MOD_EXP_CM Macro

C

    #define SX_PK_CMD_DH_MOD_EXP_CM ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_DH_MOD_EXP_CM))

The modulus must be a prime number.

RSA modular exponentiation operation with countermeasures*/

Modular exponentiation operation (for RSA) with Chinese Remainder Theorem */

SX_PK_CMD_MOD_EXP_CRT Macro

C

    #define SX_PK_CMD_MOD_EXP_CRT ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_MOD_EXP_CRT))

Modular exponentiation operation (for RSA) with Chinese Remainder Theorem

SX_PK_CMD_MOD_EXP_CRT_CM Macro

C

    #define SX_PK_CMD_MOD_EXP_CRT_CM ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_MOD_EXP_CRT_CM))

With blinding factor for countermeasures.

RSA private key including lambda(n) computation from primes

SX_PK_CMD_RSA_KEYGEN Macro

C

    #define SX_PK_CMD_RSA_KEYGEN ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_RSA_KEYGEN))

Lambda(n) is also called the Carmichael's totient function or Carmichael function.

RSA CRT private key parameters computation */

Montgomery point multiplication for X25519 and X448

SX_PK_CMD_MONTGOMERY_PTMUL Macro

C

    #define SX_PK_CMD_MONTGOMERY_PTMUL ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_MONTGOMERY_PTMUL))

All operands for this command use a little endian representation. Operands should be decoded and clamped as defined in specifications for X25519 and X448.

Elliptic curve ECDSA signature verification operation */

Elliptic curve ECDSA signature generation operation */

SX_PK_CMD_ECDSA_GEN Macro

C

    #define SX_PK_CMD_ECDSA_GEN ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_ECDSA_GEN))

Elliptic curve point addition operation */

Elliptic curve point multiplication operation */

SX_PK_CMD_ECC_PTMUL Macro

C

    #define SX_PK_CMD_ECC_PTMUL ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_ECC_PTMUL))

Elliptic curve point multiplication operation with countermeasures */

Elliptic curve point decompression operation */

SX_PK_CMD_ECC_PT_DECOMP Macro

C

    #define SX_PK_CMD_ECC_PT_DECOMP ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_ECC_PT_DECOMP))

Elliptic curve check parameters a & b */

Elliptic curve check parameter n != p */

SX_PK_CMD_CHECK_PARAM_N Macro

C

    #define SX_PK_CMD_CHECK_PARAM_N ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_CHECK_PARAM_N))

Elliptic curve check x,y point < p */

Elliptic curve point doubling */

SX_PK_CMD_ECC_PT_DOUBLE Macro

C

    #define SX_PK_CMD_ECC_PT_DOUBLE ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_ECC_PT_DOUBLE))

Elliptic curve point on curve check */

EDDSA point multiplication operation

SX_PK_CMD_EDDSA_PTMUL Macro

C

    #define SX_PK_CMD_EDDSA_PTMUL ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_EDDSA_PTMUL))

All operands for this command use a little endian representation. Operands should be decoded and clamped as defined in specifications for ED25519.

EDDSA 2nd part of signature operation

SX_PK_CMD_EDDSA_SIGN Macro

C

    #define SX_PK_CMD_EDDSA_SIGN ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_EDDSA_SIGN))

All operands for this command use a little endian representation. Operands should be decoded and clamped as defined in specifications for ED25519.

EDDSA signature verification operation

SX_PK_CMD_EDDSA_VER Macro

C

    #define SX_PK_CMD_EDDSA_VER ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_EDDSA_VER))

All operands for this command use a little endian representation. Operands should be decoded and clamped as defined in specifications for ED25519.

DSA signature generation */

DSA signature verification */

SX_PK_CMD_DSA_VER Macro

C

    #define SX_PK_CMD_DSA_VER ((SX_CMD_PTR)(uint32_t )(API_TABLE_BASE_ADDRESS + ATO_SX_PK_CMD_DSA_VER))

}