/**
 * @file ax_common.h
 * @author NXP Semiconductors
 * @version 1.0
 * @par License
 *
 * Copyright 2016 NXP
 * SPDX-License-Identifier: Apache-2.0
 *
 * @par Description
 * Common data types and defines of the AX-family host library.
 * @par History
 * 1.0   27-march-2014 : Initial version
 *
 */
#ifndef _AX_COMMON_A71CL_
#define _AX_COMMON_A71CL_

#include "scp.h"
#include "sm_types.h"

#ifdef __cplusplus
extern "C" {
#endif

#ifdef TGT_A70CM
#define DEFAULT_PRIVATE_KEY_INDEX   0
#define DEFAULT_PUBLIC_KEY_INDEX    0
#define DEFAULT_CERTIFICATE_INDEX   0
#endif

// Security module lifecycle states
#ifdef TGT_A70CI
#define SM_FACTORY            (0x6996)
#define SM_CONFIGURE_INITIAL  (0x5AA5)
#define SM_CONFIGURE          (0x4BB4)
#define SM_OPERATE            (0x3CC3)
#define SM_DEAD               (0x1EE1)
#define SM_UNKNOWN            (0x1234)  // State does not exist
#elif defined(TGT_A70CM)
#define SM_FACTORY            0x6996
#define SM_CONFIGURE_INITIAL  0x5AA5
#define SM_CONFIGURE          0x4BB4
#define SM_OPERATE            0x3CC3
#define SM_RE_CONFIGURE       0x2DD2
#define SM_DEAD               0x1EE1
#define SM_UNKNOWN            0x1234  // State does not exist
#elif defined(TGT_A71CL)
// NOTE: A71CL does not support an explicit lifecycle state concept
#else
#define SM_FACTORY           0x00
#define SM_LOCKED            0x11
#define SM_CONFIGURE_INITIAL 0x21
#define SM_CONFIGURE         0x22
#define SM_OPERATE           0x31
#define SM_DIAGNOSTIC        0x41
#define SM_DEACTIVATED       0x51
#define SM_DEAD              0x61
#endif // TGT_A70CI

/**
 * Two SCP03 channels can be managed. Either a Host or an Admin channel
 */
typedef enum ChannelId
{
    AX_HOST_CHANNEL            = 0x01,  //!< SCP03 channel identifier
    AX_ADMIN_CHANNEL           = 0x02   //!< SCP03 channel identifier
} ChannelId_t;

typedef enum ScpEvent
{
    SCP_WRONG_PADDING   = 0x01,
    SCP_WRONG_RESPMAC   = 0x02,
    SCP_GENERIC_FAILURE = 0x03
} ScpEvent_t;

typedef enum
{
  AX_ENCRYPT = 0x01,
  AX_DECRYPT = 0x02
} AES_Direction_t;

typedef enum
{
   AX_VERIFY_SUCCESS = 0x01,
   AX_VERIFY_FAILURE = 0x02
} Verification_t;

// typedef U8 SST_Index_t;

/**
 * Contains information required to resume an SCP03 channel with the Security Module.
 * The content of this data structure is only to be interpreted by the Host Library.
 */
typedef struct {
    U8 sEnc[SCP_KEY_SIZE];  //!< SCP03 session channel encryption key
    U8 sMac[SCP_KEY_SIZE];  //!< SCP03 session command authentication key
    U8 sRMac[SCP_KEY_SIZE]; //!< SCP03 session response authentication key
    U8 mcv[SCP_MCV_LEN];    //!< SCP03 MAC chaining value
    U8 cCounter[16];        //!< SCP03 command counter
    ChannelId_t channel;
} Scp03SessionState_t;

/**
 * Stores the security sensitive static SCP03 keyset.
 */
typedef struct {
    U8 keyEnc[SCP_KEY_SIZE]; //!< SCP03 static secure channel encryption key
    U8 keyMac[SCP_KEY_SIZE]; //!< SCP03 static secure channel authentication key
    U8 keyDek[SCP_KEY_SIZE]; //!< SCP03 data encryption key
    Scp03SessionState_t session; //!< SCP03 session state
} ScpState_t;

// AX Product Family Specific APDU Instructions (INS) and parameters (P1/P2)
// *************************************************************************

#ifdef TGT_A70CI
#define A70CI_CLA                               (0x80)

#define A70CI_INS_ACCESS                        (0x01)
#define A70CI_INS_SWITCH                        (0x02)
#define A70CI_INS_SST_GENERATE                  (0x03)
#define A70CI_INS_SST_SET                       (0x04)
#define A70CI_INS_SST_GET                       (0x05)
#define A70CI_INS_SST_ERASE                     (0x06)
#define A70CI_INS_ECB                           (0x07)
#define A70CI_INS_CBC                           (0x08)
#define A70CI_INS_GCM                           (0x09)
#define A70CI_INS_GMAC                          (0x0A)
#define A70CI_INS_RSA                           (0x0B)
#define A70CI_INS_ECC                           (0x0C)
#define A70CI_INS_RND                           (0x0D)
#define A70CI_INS_DEBUG                         (0xFF)

#define INS_AX_DEBUG                            A70CI_INS_DEBUG
#define INS_AX_RND_GET_RANDOM                   A70CI_INS_RND

#define P1_GET_CHALLENGE                        (0x01)
#define P1_FREEZE_CREDENTIAL                    (0x02)

#define P1_CONFIGURE                            (0x01)
#define P1_OPERATE                              (0x02)

#define P1_KEY_PAIR                             (0x01)
#define P1_AES_KEY                              (0x02)
#define P1_PUBLIC_KEY                           (0x03)
#define P1_PRIVATE_KEY                          (0x04)
#define P1_DEVICE_CERTIFICATE                   (0x05)
#define P1_ERASE                                (0x06)

#define P1_NEW                                  (0x01)
#define P1_PROCESS                              (0x02)
#define P1_FINISH                               (0x03)
#define P1_CLOSE                                (0x04)

#define P1_SIGN                                 (0x01)
#define P1_VERIFY                               (0x02)
#define P1_ENCRYPT                              (0x03)
#define P1_DECRYPT                              (0x04)
#define P1_OAEP_ENCRYPT                         (0x07)
#define P1_OAEP_DECRYPT                         (0x08)

#define P1_GENERATE_SHARED_SECRET               (0x03)
#define P1_GENERATE_STATIC_SHARED_SECRET        (0x04)

#define P1_GENERATE_RANDOM                      (0x01)

#define P1_DISABLE_DEBUG                        (0x00)
#define P1_GET_LIFECYCLE_STATE                  (0x01)
#define P1_GET_HIGHWATER_LEVEL                  (0x03)
#define P1_RESET                                (0x05)
#define P1_SELECT_GCM_CIPHER                    (0x09)
#define P1_GET_FREE_MEMORY                      (0x0B)

#define P2_PERSISTENT_MEM                       (0x01)
#define P2_TRANS_MEM_DESELECT                   (0x02)
#define P2_TRANS_MEM_RESET                      (0x03)

#define P2_CIPHER_APPLET                        (0x01)
#define P2_CIPHER_SECURE_BOX                    (0x02)
#define P2_RESET                                (0x00)
#elif defined(TGT_A70CM)
#define A70CM_CLA                     (0x80)

#define A70CM_INS_ACCESS              (0x01)
#define A70CM_INS_SWITCH              (0x02)
#define A70CM_INS_SST_SET_ECC_KEY     (0x03)
#define A70CM_INS_SST_SET_RSA_KEY     (0x04)
#define A70CM_INS_SST_SET_CERTIFICATE (0x05)
#define A70CM_INS_SST_SET_AES_KEY     (0x06)
#define A70CM_INS_SST_SET_STORAGE     (0x07)
#define A70CM_INS_SST_GET_ECC_KEY     (0x08)
#define A70CM_INS_SST_GET_RSA_KEY     (0x09)
#define A70CM_INS_SST_GET_CERTIFICATE (0x0A)
#define A70CM_INS_SST_GET_AES_KEY     (0x0B)
#define A70CM_INS_SST_GET_STORAGE     (0x0C)
#define A70CM_INS_SST_ERASE           (0x0D)
#define A70CM_INS_AES_GENERATE_KEY    (0x0E)
#define A70CM_INS_AES_ECB             (0x0F)
#define A70CM_INS_AES_CBC             (0x10)
#define A70CM_INS_AES_GCM             (0x11)
#define A70CM_INS_AES_GMAC            (0x12)
#define A70CM_INS_AES_WRAP            (0x13)
#define A70CM_INS_RSA_GENERATE_KEY    (0x14)
#define A70CM_INS_RSA_SIGN            (0x15)
#define A70CM_INS_RSA_ENCRYPT         (0x16)
#define A70CM_INS_ECC_GENERATE_KEY    (0x17)
#define A70CM_INS_ECC_SIGN            (0x18)
#define A70CM_INS_ECC_ECDH            (0x19)
#define A70CM_INS_RNG_GENERATE        (0x1A)

#define P1_GET_CHALLENGE               (0x01)
#define P1_AUTHENTICATE                (0x02)

#define P1_CONFIGURE                   (0x01) // Redefined in ERDF
#define P1_OPERATE                     (0x02) // Redefined in ERDF
#define P1_RE_CONFIGURE                (0x03)

#define P1_ECC_KEY                     (0x01)

#define P1_ECC_PUBLIC_KEY              (0x01)
#define P1_ECC_PRIVATE_KEY             (0x02)

#define P1_RSA__KEY                    (0x01)

#define P1_RSA_PUBLIC_KEY              (0x01)
#define P1_RSA_PRIVATE_KEY             (0x02)

#define P1_AES_KEY                     (0x01)
#define P1_AES_WRAPPING_KEY            (0x02)
#define P1_SCP_KEY                     (0x03)

#define P1_DEVICE_CERTIFICATE          (0x01)

#define P1_GP_STORAGE                  (0x01)

#define P1_KEY                         (0x01)
#define P1_WRAPPED_KEY                 (0x02)

#define P1_WRAP                        (0x01)
#define P1_UNWRAP                      (0x02)

#define P1_ERASE                       (0x01)

#define P1_NEW                         (0x01)
#define P1_PROCESS                     (0x02)
#define P1_FINISH                      (0x03)
#define P1_CLOSE                       (0x04)
#define P1_NEW_DLMS                    (0x05)

#define P1_SIGN                        (0x01)
#define P1_VERIFY                      (0x02)
#define P1_SIGN_DATA                   (0x03)
#define P1_VERIFY_DATA                 (0x04)

#define P1_ENCRYPT                     (0x01)
#define P1_DECRYPT                     (0x02)

#define P1_GENERATE_EPHEMERAL_KEYPAIR  (0x01)
#define P1_GENERATE_SHARED_SECRET      (0x02)

#define P1_GENERATE_RANDOM             (0x01)

/* ------------------------------ */

#define A70CM_INS_DEBUG                 0xFF
#define P1_GET_LIFECYCLE_STATE          0x01
#define P1_GET_AUTHENTICATION_STATE     0x02
#define P1_GET_HIGHWATER_LEVEL          0x03
#define P1_REFLECT                      0x04
#define P1_RESET                        0x05
#define P1_SET_AUTHENTICATED            0x06
#define P1_GET_PRIVATE_KEY              0x07
#define P1_GET_CONFIGURATION            0x08
#define P1_SELECT_GCM_CIPHER            0x09
#define P1_SELECT_CBC_CIPHER            0x0A
// #define P1_MEMORY                       0x0B
#define P1_GET_FREE_MEMORY             (0x0B)
#define P1_BOUNCE                       0x0C

#define P2_CIPHER_APPLET                0x01
#define P2_CIPHER_SECURE_BOX            0x02
#define P2_RESET                       (0x00)
#define P2_PERSISTENT_MEM              (0x01)
#define P2_TRANS_MEM_DESELECT          (0x02)

// TODO: Remove hack
#define P1_DISABLE_DEBUG               (0x00)
#define INS_AX_DEBUG                   A70CM_INS_DEBUG

#elif defined(TGT_A71CL)
#define A71CL_CLA                     (0x80)
#define A71CL_CLA_00H                 (0x00)
#define A71CL_CLA_84H                 (0x84)
#define A71CL_CMD_CHKSUM_LEN          (0x02)

/// @cond
/*
KEY_PAIR      0x10  ECC NIST P-256 key pairs (Empty)
PUBLIC_KEY    0x20  ECC NIST P-256 public keys in Uncompressed format (Empty)
SYM_KEY       0x40  e.g. AES128 keys (Empty)
GP_DATA       0x60  General Purpose data; size = 1 KB (Filled with zeroes)
COUNTER       0x70  Counter with rollback protection; size = 4 bytes (Filled with zeroes)
MODULE        0x90  TRNG; hash; chip info (N.A.)
*/

#define A71CL_SSI_KEY_PAIR      0x10  //!< Key Pair Secure Storage Class ID
#define A71CL_SSI_PUBLIC_KEY    0x20  //!< Public Key Secure Storage Class ID
#define A71CL_SSI_CONFIG_KEY    0x30  //!< Config Key Secure Storage Class ID
#define A71CL_SSI_SYM_KEY       0x40  //!< Symmetric Key Secure Storage Class ID
#define A71CL_SSI_COUNTER       0x60
#define A71CL_SSI_GP_DATA       0x70
#define A71CL_SSI_MODULE        0x90

#define A71CL_ACTION_GET    0x01   //!< Get the value of the A71 object.
#define A71CL_ACTION_SET    0x02   //!< Set the value of the A71 object.
#define A71CL_ACTION_FREEZE 0x03   //!< Freeze the A71 object: the object cannot be modified (changed or erased) any longer.
#define A71CL_ACTION_ERASE  0x04   //!< Clear the A71 object, reset to Empty state.

#define A71CL_ACTION_SIGN_HASH     0x05
#define A71CL_ACTION_VERIFY_SIG    0x05
#define A71CL_ACTION_KDF           0x05
#define A71CL_ACTION_GET_RANDOM    0x05
#define A71CL_ACTION_GET_SHA256    0x06
#define A71CL_ACTION_MS_PSK        0x06
#define A71CL_ACTION_MS_ECDH_PSK   0x06
#define A71CL_ACTION_SHARED_SECRET 0x07
#define A71CL_ACTION_HMAC_SHA256   0x07
#define A71CL_ACTION_INJECT_LOCK   0x07

#define A71CL_INS_GET_ECC_KEYPAIR           (A71CL_SSI_KEY_PAIR | A71CL_ACTION_GET)
#define A71CL_INS_SET_ECC_KEYPAIR           (A71CL_SSI_KEY_PAIR | A71CL_ACTION_SET)
#define A71CL_INS_FREEZE_ECC_KEYPAIR        (A71CL_SSI_KEY_PAIR | A71CL_ACTION_FREEZE)
#define A71CL_INS_ERASE_ECC_KEYPAIR         (A71CL_SSI_KEY_PAIR | A71CL_ACTION_ERASE)
#define A71CL_INS_SIGN_HASH_ECC_KEYPAIR     (A71CL_SSI_KEY_PAIR | A71CL_ACTION_SIGN_HASH)
#define A71CL_INS_MS_ECDH_PSK_ECC_KEYPAIR   (A71CL_SSI_KEY_PAIR | A71CL_ACTION_MS_ECDH_PSK)
#define A71CL_INS_SHARED_SECRET_ECC_KEYPAIR (A71CL_SSI_KEY_PAIR | A71CL_ACTION_SHARED_SECRET)

#define A71CL_INS_GET_ECC_PUBLIC_KEY         (A71CL_SSI_PUBLIC_KEY | A71CL_ACTION_GET)
#define A71CL_INS_SET_ECC_PUBLIC_KEY         (A71CL_SSI_PUBLIC_KEY | A71CL_ACTION_SET)
#define A71CL_INS_FREEZE_ECC_PUBLIC_KEY      (A71CL_SSI_PUBLIC_KEY | A71CL_ACTION_FREEZE)
#define A71CL_INS_ERASE_ECC_PUBLIC_KEY       (A71CL_SSI_PUBLIC_KEY | A71CL_ACTION_ERASE)
#define A71CL_INS_VERIFY_SIG_ECC_PUBLIC_KEY  (A71CL_SSI_PUBLIC_KEY | A71CL_ACTION_VERIFY_SIG)

#define A71CL_INS_SET_CONFIG_KEY         (A71CL_SSI_CONFIG_KEY | A71CL_ACTION_SET)

#define A71CL_INS_GET_SYM_KEY            (A71CL_SSI_SYM_KEY | A71CL_ACTION_GET)
#define A71CL_INS_SET_SYM_KEY            (A71CL_SSI_SYM_KEY | A71CL_ACTION_SET)
#define A71CL_INS_FREEZE_SYM_KEY         (A71CL_SSI_SYM_KEY | A71CL_ACTION_FREEZE)
#define A71CL_INS_ERASE_SYM_KEY          (A71CL_SSI_SYM_KEY | A71CL_ACTION_ERASE)
#define A71CL_INS_KDF_SYM_KEY            (A71CL_SSI_SYM_KEY | A71CL_ACTION_KDF)
#define A71CL_INS_MS_PSK_SYM_KEY         (A71CL_SSI_SYM_KEY | A71CL_ACTION_MS_PSK)
#define A71CL_INS_HMAC_SHA256_SYM_KEY    (A71CL_SSI_SYM_KEY | A71CL_ACTION_HMAC_SHA256)

#define A71CL_INS_GET_COUNTERS          (A71CL_SSI_COUNTER | A71CL_ACTION_GET)
#define A71CL_INS_SET_COUNTERS          (A71CL_SSI_COUNTER | A71CL_ACTION_SET)
#define A71CL_INS_FREEZE_COUNTERS       (A71CL_SSI_COUNTER | A71CL_ACTION_FREEZE)
#define A71CL_INS_ERASE_COUNTERS        (A71CL_SSI_COUNTER | A71CL_ACTION_ERASE)

#define A71CL_INS_GET_GP_DATA          (A71CL_SSI_GP_DATA | A71CL_ACTION_GET)
#define A71CL_INS_SET_GP_DATA          (A71CL_SSI_GP_DATA | A71CL_ACTION_SET)
#define A71CL_INS_FREEZE_GP_DATA       (A71CL_SSI_GP_DATA | A71CL_ACTION_FREEZE)

#define A71CL_INS_GET_MODULE            (A71CL_SSI_MODULE | A71CL_ACTION_GET)
#define A71CL_INS_SET_MODULE            (A71CL_SSI_MODULE | A71CL_ACTION_SET)
#define A71CL_INS_FREEZE_MODULE         (A71CL_SSI_MODULE | A71CL_ACTION_FREEZE)
#define A71CL_INS_ERASE_MODULE          (A71CL_SSI_MODULE | A71CL_ACTION_ERASE)
#define A71CL_INS_MODULE_GET_RANDOM     0x84 /* (A71CL_SSI_MODULE | A71CL_ACTION_GET_RANDOM) */
#define A71CL_INS_MODULE_GET_DIGEST     0xF0
#define A71CL_INS_MODULE_STORE_KEY      0xE2
#define A71CL_INS_MODULE_GET_ID         0xF8
#define A71CL_INS_MODULE_GET_VENDOR_INFO         0xFC
#define A71CL_INS_MODULE_GENERATE_KEY   0xF2
#define A71CL_INS_MODULE_SYMMETRIC_CRYPT 0xF6
#define A71CL_INS_MODULE_ASYMMETRIC_CRYPT 0xF4
#define A71CL_INS_MODULE_GET_SHA256     (A71CL_SSI_MODULE | A71CL_ACTION_GET_SHA256)
// #define A71CL_INS_MODULE_INJECT_LOCK    (A71CL_SSI_MODULE | A71CL_ACTION_INJECT_LOCK) // Removed in APDU Spec 1.0.2
#define A71CL_INS_DISABLE_PLAIN_INJ_MODE    0xFE
#define A71CL_INS_PUT_DATA                  0x12
#define A71CL_INS_FREE_READ             0x71
#define A71CL_INS_EXT_AUTH                  0x82
#define A71CL_INS_FULL_RESET                0xEA



#define A71CL_INS_REFLECT             (0xFE)

// #define INS_AX_DEBUG                    A71XX_INS_ERASE_MODULE

#define P1_GET_LIFECYCLE_STATE          0x01
#define P1_GET_AUTHENTICATION_STATE     0x02
#define P1_GET_HIGHWATER_LEVEL          0x03
#define P1_REFLECT                      0x04
#define P1_RESET                        0x00
#define P1_SET_AUTHENTICATED            0x06
#define P1_GET_PRIVATE_KEY              0x07
#define P1_GET_CONFIGURATION            0x08
// #define P1_MEMORY                       0x0B
#define P1_BOUNCE                       0x0C
#define P1_EEPROM                       0x00
#define P1_TRANSIENT_MEMORY             0x01

#define P1_GENERATE_RANDOM             (0x01)

#define P2_SMF_LOCK_PLAIN_INJECTION  (0x01)
#define P2_SMF_LOCK_MODULE           (0x02)
#define P2_SMF_UNLOCK_MODULE         (0x03)

#define P2_HMAC_ONE_SHOT     (0x00)
#define P2_HMAC_INIT         (0x01)
#define P2_HMAC_UPDATE       (0x02)
#define P2_HMAC_FINAL        (0x03)

#define P2_SHA256_ONE_SHOT   (0x00)
#define P2_SHA256_INIT       (0x01)
#define P2_SHA256_UPDATE     (0x02)
#define P2_SHA256_FINAL      (0x03)

#define P2_CONFIGURE_INITIAL (0x21)
#define P2_CONFIGURE         (0x22)
#define P2_OPERATE           (0x31)
#define P2_DEAD              (0x61)

#define P2_UNIQUE_ID         (0x01)
#define P2_FREE_MEMORY       (0x02)
#define P2_APPLET_INFO       (0x03)
#define P2_CREDENTIAL_MAP    (0x04)
#define P2_CHALLENGE         (0x05)

#define P2_NOT_WRAPPED       (0x01)
#define P2_RFC3394_WRAPPED   (0x02)

#define P2_PUBKEY_PRESENT    (0x01)
#define P2_PUBKEY_ABSENT     (0x02)

#define P2_RESET             (0xEA)
#define P2_DISABLE_DEBUG     (0xDD)

#define P2_TRANS_CONTINUE    (0x00)
#define P2_TRANS_END         (0x01)

#define P1_DISABLE_DEBUG                        (0x00)
#define P1_GET_FREE_MEMORY                      (0x0B)
/// @endcond

#else
// SWITCH_xxx commands
#define INS_AX_SWITCH              (0x01)
#define P1_UNLOCK                    (0x01)
#define P1_CONFIGURE                 (0x02)
#define P1_OPERATE                   (0x03)
#define P1_DEACTIVATE                (0x04)
#define P1_DIAGNOSE                  (0x05)
#define P1_DEAD                      (0x06)
#define P1_GETSTATE                  (0x07)

#define INS_AX_ECC_GENERATE_KEY    (0x10)
#define INS_AX_RND_GET_RANDOM      (0x15)

// ** Secure Storage commands **
// SST_Set_xxx commands
#define INS_AX_SST_SET_ECC           (0x02)
#define P1_ECC_PUBLIC_KEY            (0x01)
#define P1_ECC_PROTECTED_PUBLIC_KEY  (0x02)

#define INS_AX_SST_SET_CERTIFICATE (0x03)
#define P1_CERTIFICATE               (0x01)

#define INS_AX_SST_SET_AES_KEY     (0x04)
#define P1_AES_KEY                   (0x01)
#define P1_WRAPPED_AES_KEY           (0x02)

#define INS_AX_SST_SET_STORAGE     (0x05)
#define P1_GP_STORAGE                (0x01)

// SST_Get_xxx commands
#define INS_AX_SST_GET_ECC         (0x06)
#define INS_AX_SST_GET_CERTIFICATE (0x07)
#define INS_AX_SST_GET_AES_KEY     (0x08)
#define INS_AX_SST_GET_STORAGE     (0x09)

#define INS_AX_SST_GET_IDENTIFIER  (0x0A)
#define P1_UNIQUE_IDENTIFIER         (0x01)
#define P1_CPLC_DATA                 (0x02)

#define INS_AX_SST_SET_COUNTER     (0x0D)
#define P1_SET_COUNTER               (0x01)
#define P1_INCREMENT_COUNTER         (0x02)
#define P1_SET_PROTECTED_COUNTER     (0x03)

#define INS_AX_SST_GET_COUNTER     (0x0E)
#define P1_GET_COUNTER               (0x01)

// SST_Erase_xxx commands
#define INS_AX_SST_ERASE           (0x0B)
#define P1_ERASE_KEY                 (0x01)
#define P1_ERASE_CERTIFICATE         (0x02)

// SST_Copy_xxx commands
#define INS_AX_SST_COPY            (0x0C)
#define P1_COPY_KEY                 (0x01)

// ** Crypto API **
// ECC commands
#define INS_AX_ECC_GENERATE        (0x10)
#define P1_ECC_KEY                   (0x01)

#define INS_AX_ECC_SIGN            (0x11)
#define P1_ECDSA_SIGN                (0x01)
#define P1_VERIFY                    (0x02)
#define P1_SIGN_PARTIAL_HASH         (0x03)
#define P1_VERIFY_WITH_KEY           (0x04)

#define INS_AX_ECC_ECDH            (0x12)
#define P1_GENERATE_SHARED_SECRET          (0x01)
#define P1_GENERATE_SHARED_SECRET_TO_STORE (0x02)
#define P1_DERIVE_KEY_DATA                 (0x03)

// AES commands
#define INS_AX_AES_GENERATE_KEY    (0x13)
#define INS_AX_AES_WRAP            (0x14)
#define P1_WRAP                      (0x01)
#define P1_UNWRAP                    (0x02)

// RNG commands
#define INS_AX_RNG_GENERATE        (0x15)
#define P1_GENERATE_RANDOM           (0x01)

// SEQUENCE counter command
#define INS_AX_SCP                 (0x16)
#define P1_GET_SEQ_COUNTER           (0x02)

// Soft reset command
#define INS_AX_SM                  (0x17)
#define P1_SOFT_RESET                (0x01)

// DEBUG commands
#define INS_AX_DEBUG               (0xFF)
#define P1_DISABLE_DEBUG             (0x00)
#define P1_GET_LIFECYCLE_STATE       (0x01)
#define P1_GET_AUTHENTICATION_STATE  (0x02)
#define P1_GET_HIGHWATER_LEVEL       (0x03)
#define P1_REFLECT                   (0x04)
#define P1_RESET                     (0x05)
#define P1_SET_USER                  (0x06)
#define P1_SWITCH                    (0x07)
// #define P1_GET_CONFIGURATION         (0x08)
// #define P1_SELECT_GCM_CIPHER (0x09)
// #define P1_SELECT_CBC_CIPHER (0x0A)
#define P1_GET_FREE_MEMORY           (0x0B)
#define P1_SET_SCP_CARD_CHALLENGE    (0x0C)
#define P1_SET_DISABLE_MAC_CHAINING  (0x0D)
#define P1_SET_DISABLE_DEBUG_MODE    (0x0E)
#define P1_SET_KEY_DEK               (0x0F)
#define P1_GET_MASTER_KEYS           (0x10)
#define P1_GET_CURRENT_SEC_LEVEL     (0x11)

// TEST Commands
#define INS_TEST                     (0xFE)
#define P1_REFLECT                   (0x04)
#define P1_REFLECT_SW                (0x14)

#define P2_RESET                     (0x00)
#endif

#ifdef __cplusplus
}
#endif
#endif //_AX_COMMON_A71CL_
