se051plugntrust 2.1.0.0
se051plugntrust.h File Reference

This file contains API for SE051 Plug n Trust Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"

Go to the source code of this file.

Data Structures

struct  se051plugntrust_t
 SE051 Plug n Trust Click context object. More...
 
struct  se051plugntrust_cfg_t
 SE051 Plug n Trust Click configuration object. More...
 
struct  se051plugntrust_apdu_t
 APDU data object. More...
 
struct  se051plugntrust_frame_data_t
 Communication frame data object. More...
 
struct  se051plugntrust_atr_t
 Data after reset. More...
 
struct  se051plugntrust_version_info_t
 Version info data. More...
 

Macros

#define SE051PLUGNTRUST_NAD_WRITE   0x5A
 Node Address Byte.
 
#define SE051PLUGNTRUST_NAD_READ   0xA5
 
#define SE051PLUGNTRUST_PCB_BLOCK_I   0x00
 Information block.
 
#define SE051PLUGNTRUST_PCB_BLOCK_I_NS_ENCODE   0x40
 
#define SE051PLUGNTRUST_PCB_BLOCK_I_M_CHAIN   0x20
 
#define SE051PLUGNTRUST_PCB_BLOCK_R   0x80
 Receive ready block.
 
#define SE051PLUGNTRUST_PCB_BLOCK_R_NR_ENCODE   0x10
 
#define SE051PLUGNTRUST_PCB_BLOCK_R_ERROR_CRC   0x01
 
#define SE051PLUGNTRUST_PCB_BLOCK_R_ERROR_OTHER   0x02
 
#define SE051PLUGNTRUST_PCB_BLOCK_S   0xC0
 Supervisory block.
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_RESYNC_REQ   0x00
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_RESYNC_RSP   0x20
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_IFS_REQ   0x01
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_IFS_RSP   0x21
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_ABORT_REQ   0x02
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_ABORT_RSP   0x22
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_WTX_REQ   0x03
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_WTX_RSP   0x23
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_SOFT_RESET_REQ   0x0F
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_SOFT_RESET_RSP   0x2F
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_END_APDU_SESSION_REQ   0x05
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_END_APDU_SESSION_RSP   0x25
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_SE_RESET_REQ   0x06
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_SE_RESET_RSP   0x26
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_GET_ATR_REQ   0x07
 
#define SE051PLUGNTRUST_PCB_BLOCK_S_GET_ATR_RSP   0x27
 
#define SE051PLUGNTRUST_CLA_SECURE   0x84
 Instruction class.
 
#define SE051PLUGNTRUST_CLA_NOT_SECURE   0x80
 
#define SE051PLUGNTRUST_INS_MASK_INS_CHAR   0xE0
 Instruction code.
 
#define SE051PLUGNTRUST_INS_MASK_INSTRUCTION   0x1F
 
#define SE051PLUGNTRUST_INS_TRANSIENT   0x80
 
#define SE051PLUGNTRUST_INS_AUTH_OBJECT   0x40
 
#define SE051PLUGNTRUST_INS_ATTEST   0x20
 
#define SE051PLUGNTRUST_INS_WRITE   0x01
 
#define SE051PLUGNTRUST_INS_READ   0x02
 
#define SE051PLUGNTRUST_INS_CRYPTO   0x03
 
#define SE051PLUGNTRUST_INS_MGMT   0x04
 
#define SE051PLUGNTRUST_INS_PROCESS   0x05
 
#define SE051PLUGNTRUST_INS_IMPORT_EXTERNAL   0x06
 
#define SE051PLUGNTRUST_P1_UNUSED   0x80
 Instruction parameters.
 
#define SE051PLUGNTRUST_P1_MASK_KEY_TYPE   0x60
 
#define SE051PLUGNTRUST_P1_MASK_CRED_TYPE   0x1F
 
#define SE051PLUGNTRUST_P1_KEY_PAIR   0x60
 
#define SE051PLUGNTRUST_P1_PRIVATE   0x40
 
#define SE051PLUGNTRUST_P1_PUBLIC   0x20
 
#define SE051PLUGNTRUST_P1_DEFAULT   0x00
 
#define SE051PLUGNTRUST_P1_EC   0x01
 
#define SE051PLUGNTRUST_P1_RSA   0x02
 
#define SE051PLUGNTRUST_P1_AES   0x03
 
#define SE051PLUGNTRUST_P1_DES   0x04
 
#define SE051PLUGNTRUST_P1_HMAC   0x05
 
#define SE051PLUGNTRUST_P1_BINARY   0x06
 
#define SE051PLUGNTRUST_P1_USERID   0x07
 
#define SE051PLUGNTRUST_P1_COUNTER   0x08
 
#define SE051PLUGNTRUST_P1_PCR   0x09
 
#define SE051PLUGNTRUST_P1_CURVE   0x0B
 
#define SE051PLUGNTRUST_P1_SIGNATURE   0x0C
 
#define SE051PLUGNTRUST_P1_MAC   0x0D
 
#define SE051PLUGNTRUST_P1_CIPHER   0x0E
 
#define SE051PLUGNTRUST_P1_TLS   0x0F
 
#define SE051PLUGNTRUST_P1_CRYPTO_OBJ   0x10
 
#define SE051PLUGNTRUST_P2_DEFAULT   0x00
 
#define SE051PLUGNTRUST_P2_GENERATE   0x03
 
#define SE051PLUGNTRUST_P2_CREATE   0x04
 
#define SE051PLUGNTRUST_P2_SIZE   0x07
 
#define SE051PLUGNTRUST_P2_SIGN   0x09
 
#define SE051PLUGNTRUST_P2_VERIFY   0x0A
 
#define SE051PLUGNTRUST_P2_INIT   0x0B
 
#define SE051PLUGNTRUST_P2_UPDATE   0x0C
 
#define SE051PLUGNTRUST_P2_FINAL   0x0D
 
#define SE051PLUGNTRUST_P2_ONESHOT   0x0E
 
#define SE051PLUGNTRUST_P2_DH   0x0F
 
#define SE051PLUGNTRUST_P2_DIVERSIFY   0x10
 
#define SE051PLUGNTRUST_P2_AUTH_FIRST_PART2   0x12
 
#define SE051PLUGNTRUST_P2_AUTH_NONFIRST_PART2   0x13
 
#define SE051PLUGNTRUST_P2_DUMP_KEY   0x14
 
#define SE051PLUGNTRUST_P2_CHANGE_KEY_PART1   0x15
 
#define SE051PLUGNTRUST_P2_CHANGE_KEY_PART2   0x16
 
#define SE051PLUGNTRUST_P2_KILL_AUTH   0x17
 
#define SE051PLUGNTRUST_P2_IMPORT   0x18
 
#define SE051PLUGNTRUST_P2_EXPORT   0x19
 
#define SE051PLUGNTRUST_P2_SESSION_CREATE   0x1B
 
#define SE051PLUGNTRUST_P2_SESSION_CLOSE   0x1C
 
#define SE051PLUGNTRUST_P2_SESSION_REFRESH   0x1E
 
#define SE051PLUGNTRUST_P2_SESSION_POLICY   0x1F
 
#define SE051PLUGNTRUST_P2_VERSION   0x20
 
#define SE051PLUGNTRUST_P2_MEMORY   0x22
 
#define SE051PLUGNTRUST_P2_LIST   0x25
 
#define SE051PLUGNTRUST_P2_TYPE   0x26
 
#define SE051PLUGNTRUST_P2_EXIST   0x27
 
#define SE051PLUGNTRUST_P2_DELETE_OBJECT   0x28
 
#define SE051PLUGNTRUST_P2_DELETE_ALL   0x2A
 
#define SE051PLUGNTRUST_P2_SESSION_USERID   0x2C
 
#define SE051PLUGNTRUST_P2_HKDF   0x2D
 
#define SE051PLUGNTRUST_P2_PBKDF   0x2E
 
#define SE051PLUGNTRUST_P2_I2CM   0x30
 
#define SE051PLUGNTRUST_P2_I2CM_ATTESTED   0x31
 
#define SE051PLUGNTRUST_P2_MAC   0x32
 
#define SE051PLUGNTRUST_P2_UNLOCK_CHALLENGE   0x33
 
#define SE051PLUGNTRUST_P2_CURVE_LIST   0x34
 
#define SE051PLUGNTRUST_P2_SIGN_ECDAA   0x35
 
#define SE051PLUGNTRUST_P2_ID   0x36
 
#define SE051PLUGNTRUST_P2_ENCRYPT_ONESHOT   0x37
 
#define SE051PLUGNTRUST_P2_DECRYPT_ONESHOT   0x38
 
#define SE051PLUGNTRUST_P2_ATTEST   0x3A
 
#define SE051PLUGNTRUST_P2_ATTRIBUTES   0x3B
 
#define SE051PLUGNTRUST_P2_CPLC   0x3C
 
#define SE051PLUGNTRUST_P2_TIME   0x3D
 
#define SE051PLUGNTRUST_P2_TRANSPORT   0x3E
 
#define SE051PLUGNTRUST_P2_VARIANT   0x3F
 
#define SE051PLUGNTRUST_P2_PARAM   0x40
 
#define SE051PLUGNTRUST_P2_DELETE_CURVE   0x41
 
#define SE051PLUGNTRUST_P2_ENCRYPT   0x42
 
#define SE051PLUGNTRUST_P2_DECRYPT   0x43
 
#define SE051PLUGNTRUST_P2_VALIDATE   0x44
 
#define SE051PLUGNTRUST_P2_GENERATE_ONESHOT   0x45
 
#define SE051PLUGNTRUST_P2_VALIDATE_ONESHOT   0x46
 
#define SE051PLUGNTRUST_P2_CRYPTO_LIST   0x47
 
#define SE051PLUGNTRUST_P2_RANDOM   0x49
 
#define SE051PLUGNTRUST_P2_TLS_PMS   0x4A
 
#define SE051PLUGNTRUST_P2_TLS_PRF_CLI_HELLO   0x4B
 
#define SE051PLUGNTRUST_P2_TLS_PRF_SRV_HELLO   0x4C
 
#define SE051PLUGNTRUST_P2_TLS_PRF_CLI_RND   0x4D
 
#define SE051PLUGNTRUST_P2_TLS_PRF_SRV_RND   0x4E
 
#define SE051PLUGNTRUST_P2_RAW   0x4F
 
#define SE051PLUGNTRUST_P2_IMPORT_EXT   0x51
 
#define SE051PLUGNTRUST_P2_SCP   0x52
 
#define SE051PLUGNTRUST_P2_AUTH_FIRST_PART1   0x53
 
#define SE051PLUGNTRUST_P2_AUTH_NONFIRST_PART1   0x54
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_EC_KEY_PAIR   0x01
 Secure Object type.
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_EC_PRIV_KEY   0x02
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_EC_PUB_KEY   0x03
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_RSA_KEY_PAIR   0x04
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_RSA_KEY_PAIR_CRT   0x05
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_RSA_PRIV_KEY   0x06
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_RSA_PRIV_KEY_CRT   0x07
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_RSA_PUB_KEY   0x08
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_AES_KEY   0x09
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_DES_KEY   0x0A
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_BINARY_FILE   0x0B
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_USERID   0x0C
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_COUNTER   0x0D
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_PCR   0x0F
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_CURVE   0x10
 
#define SE051PLUGNTRUST_SECURE_OBJECT_TYPE_HMAC_KEY   0x11
 
#define SE051PLUGNTRUST_MEM_PERSISTENT   0x01
 Memory type.
 
#define SE051PLUGNTRUST_MEM_TRANSIENT_RESET   0x02
 
#define SE051PLUGNTRUST_MEM_TRANSIENT_DESELECT   0x03
 
#define SE051PLUGNTRUST_ORIGIN_EXTERNAL   0x01
 Origin type.
 
#define SE051PLUGNTRUST_ORIGIN_INTERNAL   0x02
 
#define SE051PLUGNTRUST_ORIGIN_PROVISIONED   0x03
 
#define SE051PLUGNTRUST_TLV_TAG_SESSION_ID   0x10
 TLV(Tag, Length, Value) tags.
 
#define SE051PLUGNTRUST_TLV_TAG_POLICY   0x11
 
#define SE051PLUGNTRUST_TLV_TAG_MAX_ATTEMPTS   0x12
 
#define SE051PLUGNTRUST_TLV_TAG_IMPORT_AUTH_DATA   0x13
 
#define SE051PLUGNTRUST_TLV_TAG_IMPORT_AUTH_KEY_ID   0x14
 
#define SE051PLUGNTRUST_TLV_TAG_1   0x41
 
#define SE051PLUGNTRUST_TLV_TAG_2   0x42
 
#define SE051PLUGNTRUST_TLV_TAG_3   0x43
 
#define SE051PLUGNTRUST_TLV_TAG_4   0x44
 
#define SE051PLUGNTRUST_TLV_TAG_5   0x45
 
#define SE051PLUGNTRUST_TLV_TAG_6   0x46
 
#define SE051PLUGNTRUST_TLV_TAG_7   0x47
 
#define SE051PLUGNTRUST_TLV_TAG_8   0x48
 
#define SE051PLUGNTRUST_TLV_TAG_9   0x49
 
#define SE051PLUGNTRUST_TLV_TAG_10   0x4A
 
#define SE051PLUGNTRUST_ECS_SIG_ECDSA_PLAIN   0x09
 ECSignature Algo.
 
#define SE051PLUGNTRUST_ECS_SIG_ECDSA_SHA   0x11
 
#define SE051PLUGNTRUST_ECS_SIG_ECDSA_SHA_224   0x25
 
#define SE051PLUGNTRUST_ECS_SIG_ECDSA_SHA_256   0x21
 
#define SE051PLUGNTRUST_ECS_SIG_ECDSA_SHA_384   0x22
 
#define SE051PLUGNTRUST_ECS_SIG_ECDSA_SHA_512   0x26
 
#define SE051PLUGNTRUST_ECS_SIG_ED25519PH_SHA_512   0xA3
 
#define SE051PLUGNTRUST_ECS_SIG_ECDAA   0xF4
 
#define SE051PLUGNTRUST_RSA_SHA1_PKCS1_PSS   0x15
 RSASignature Algo.
 
#define SE051PLUGNTRUST_RSA_SHA224_PKCS1_PSS   0x2B
 
#define SE051PLUGNTRUST_RSA_SHA256_PKCS1_PSS   0x2C
 
#define SE051PLUGNTRUST_RSA_SHA384_PKCS1_PSS   0x2D
 
#define SE051PLUGNTRUST_RSA_SHA512_PKCS1_PSS   0x2E
 
#define SE051PLUGNTRUST_RSA_SHA1_PKCS1   0x0A
 
#define SE051PLUGNTRUST_RSA_SHA_224_PKCS1   0x27
 
#define SE051PLUGNTRUST_RSA_SHA_256_PKCS1   0x28
 
#define SE051PLUGNTRUST_RSA_SHA_384_PKCS1   0x29
 
#define SE051PLUGNTRUST_RSA_SHA_512_PKCS1   0x2A
 
#define SE051PLUGNTRUST_RSA_NO_PAD   0x0C
 
#define SE051PLUGNTRUST_RSA_PKCS1   0x0A
 
#define SE051PLUGNTRUST_RSA_PKCS1_OAEP   0x0F
 
#define SE051PLUGNTRUST_RSA_512   512
 
#define SE051PLUGNTRUST_RSA_1024   1024
 
#define SE051PLUGNTRUST_RSA_1152   1152
 
#define SE051PLUGNTRUST_RSA_2048   2048
 
#define SE051PLUGNTRUST_RSA_3072   3072
 
#define SE051PLUGNTRUST_RSA_4096   4096
 
#define SE051PLUGNTRUST_RSA_COMP_MOD   0x00
 
#define SE051PLUGNTRUST_RSA_COMP_PUB_EXP   0x01
 
#define SE051PLUGNTRUST_RSA_COMP_PRIV_EXP   0x02
 
#define SE051PLUGNTRUST_RSA_COMP_P   0x03
 
#define SE051PLUGNTRUST_RSA_COMP_Q   0x04
 
#define SE051PLUGNTRUST_RSA_COMP_DP   0x05
 
#define SE051PLUGNTRUST_RSA_COMP_DQ   0x06
 
#define SE051PLUGNTRUST_RSA_COMP_INVQ   0x07
 
#define SE051PLUGNTRUST_DIGEST_NO_HASH   0x00
 Digest Mode.
 
#define SE051PLUGNTRUST_DIGEST_SHA   0x01
 
#define SE051PLUGNTRUST_DIGEST_SHA224   0x07
 
#define SE051PLUGNTRUST_DIGEST_SHA256   0x04
 
#define SE051PLUGNTRUST_DIGEST_SHA384   0x05
 
#define SE051PLUGNTRUST_DIGEST_SHA512   0x06
 
#define SE051PLUGNTRUST_HMAC_SHA1   0x18
 MAC Algo.
 
#define SE051PLUGNTRUST_HMAC_SHA256   0x19
 
#define SE051PLUGNTRUST_HMAC_SHA384   0x1A
 
#define SE051PLUGNTRUST_HMAC_SHA512   0x1B
 
#define SE051PLUGNTRUST_CMAC_128   0x31
 
#define SE051PLUGNTRUST_ECC_UNUSED   0x00
 ECCurve.
 
#define SE051PLUGNTRUST_ECC_NIST_P192   0x01
 
#define SE051PLUGNTRUST_ECC_NIST_P224   0x02
 
#define SE051PLUGNTRUST_ECC_NIST_P256   0x03
 
#define SE051PLUGNTRUST_ECC_NIST_P384   0x04
 
#define SE051PLUGNTRUST_ECC_NIST_P521   0x05
 
#define SE051PLUGNTRUST_ECC_Brainpool160   0x06
 
#define SE051PLUGNTRUST_ECC_Brainpool192   0x07
 
#define SE051PLUGNTRUST_ECC_Brainpool224   0x08
 
#define SE051PLUGNTRUST_ECC_Brainpool256   0x09
 
#define SE051PLUGNTRUST_ECC_Brainpool320   0x0A
 
#define SE051PLUGNTRUST_ECC_Brainpool384   0x0B
 
#define SE051PLUGNTRUST_ECC_Brainpool512   0x0C
 
#define SE051PLUGNTRUST_ECC_Secp160k1   0x0D
 
#define SE051PLUGNTRUST_ECC_Secp192k1   0x0E
 
#define SE051PLUGNTRUST_ECC_Secp224k1   0x0F
 
#define SE051PLUGNTRUST_ECC_Secp256k1   0x10
 
#define SE051PLUGNTRUST_ECC_TPM_ECC_BN_P256   0x11
 
#define SE051PLUGNTRUST_ECC_ID_ECC_ED_25519   0x40
 
#define SE051PLUGNTRUST_ECC_ID_ECC_MONT_DH_25519   0x41
 
#define SE051PLUGNTRUST_ECC_CURVE_PARAM_A   0x01
 
#define SE051PLUGNTRUST_ECC_CURVE_PARAM_B   0x02
 
#define SE051PLUGNTRUST_ECC_CURVE_PARAM_G   0x04
 
#define SE051PLUGNTRUST_ECC_CURVE_PARAM_N   0x08
 
#define SE051PLUGNTRUST_ECC_CURVE_PARAM_PRIME   0x10
 
#define SE051PLUGNTRUST_CIPHER_DES_CBC_NOPAD   0x01
 Cipher Mode.
 
#define SE051PLUGNTRUST_CIPHER_DES_CBC_ISO9797_M1   0x02
 
#define SE051PLUGNTRUST_CIPHER_DES_CBC_ISO9797_M2   0x03
 
#define SE051PLUGNTRUST_CIPHER_DES_CBC_PKCS5   0x04
 
#define SE051PLUGNTRUST_CIPHER_DES_ECB_NOPAD   0x05
 
#define SE051PLUGNTRUST_CIPHER_DES_ECB_ISO9797_M1   0x06
 
#define SE051PLUGNTRUST_CIPHER_DES_ECB_ISO9797_M2   0x07
 
#define SE051PLUGNTRUST_CIPHER_DES_ECB_PKCS5   0x08
 
#define SE051PLUGNTRUST_CIPHER_AES_ECB_NOPAD   0x0E
 
#define SE051PLUGNTRUST_CIPHER_AES_CBC_NOPAD   0x0D
 
#define SE051PLUGNTRUST_CIPHER_AES_CBC_ISO9797_M1   0x16
 
#define SE051PLUGNTRUST_CIPHER_AES_CBC_ISO9797_M2   0x17
 
#define SE051PLUGNTRUST_CIPHER_AES_CBC_PKCS5   0x18
 
#define SE051PLUGNTRUST_CIPHER_AES_CTR   0xF0
 
#define SE051PLUGNTRUST_CONFIG_ECDAA   0x0001
 AppletConfig.
 
#define SE051PLUGNTRUST_CONFIG_ECDSA_ECDH_ECDHE   0x0002
 
#define SE051PLUGNTRUST_CONFIG_EDDSA   0x0004
 
#define SE051PLUGNTRUST_CONFIG_DH_MONT   0x0008
 
#define SE051PLUGNTRUST_CONFIG_HMAC   0x0010
 
#define SE051PLUGNTRUST_CONFIG_RSA_PLAIN   0x0020
 
#define SE051PLUGNTRUST_CONFIG_RSA_CRT   0x0040
 
#define SE051PLUGNTRUST_CONFIG_AES   0x0080
 
#define SE051PLUGNTRUST_CONFIG_DES   0x0100
 
#define SE051PLUGNTRUST_CONFIG_PBKDF   0x0200
 
#define SE051PLUGNTRUST_CONFIG_TLS   0x0400
 
#define SE051PLUGNTRUST_CONFIG_MIFARE   0x0800
 
#define SE051PLUGNTRUST_CONFIG_FIPS_MODE_DISABLED   0x1000
 
#define SE051PLUGNTRUST_CONFIG_I2CM   0x2000
 
#define SE051PLUGNTRUST_CONFIG_ECC_ALL   0x000F
 
#define SE051PLUGNTRUST_CONFIG_RSA_ALL   0x0060
 
#define SE051PLUGNTRUST_CONFIG_ALL   0x3FFF
 
#define SE051PLUGNTRUST_TRANSIENT_LOCK   0x01
 Lock Indicator.
 
#define SE051PLUGNTRUST_PERSISTENT_LOCK   0x02
 
#define SE051PLUGNTRUST_LOCKED   0x01
 Lock State.
 
#define SE051PLUGNTRUST_CC_DIGEST   0x01
 Crypto Context.
 
#define SE051PLUGNTRUST_CC_CIPHER   0x02
 
#define SE051PLUGNTRUST_CC_SIGNATURE   0x03
 
#define SE051PLUGNTRUST_RESULT_SUCCESS   0x01
 Result.
 
#define SE051PLUGNTRUST_RESULT_FAILURE   0x02
 
#define SE051PLUGNTRUST_PERSISTENT   0x01
 Transient Indicator.
 
#define SE051PLUGNTRUST_TRANSIENT   0x02
 
#define SE051PLUGNTRUST_NOT_SET   0x01
 Set Indicator.
 
#define SE051PLUGNTRUST_SET   0x02
 
#define SE051PLUGNTRUST_NO_MORE   0x01
 More Indicator.
 
#define SE051PLUGNTRUST_MORE   0x02
 
#define SE051PLUGNTRUST_SCP_REQUIRED   0x01
 Platform SCP Request.
 
#define SE051PLUGNTRUST_SCP_NOT_REQUIRED   0x02
 
#define SE051PLUGNTRUST_APPLET_RES_ID_TRANSPORT   0x7FFF0200ul
 Reserved file identifiers.
 
#define SE051PLUGNTRUST_APPLET_RES_ID_KP_FASTSCP_USER   0x7FFF0201ul
 
#define SE051PLUGNTRUST_APPLET_RES_ID_KP_FASTSCP_IMPORT   0x7FFF0202ul
 
#define SE051PLUGNTRUST_APPLET_RES_ID_PUB_FASTSCP_IMPORT   0x7FFF0203ul
 
#define SE051PLUGNTRUST_APPLET_RES_ID_FEATURE   0x7FFF0204ul
 
#define SE051PLUGNTRUST_APPLET_RES_ID_FACTORY_RESET   0x7FFF0205ul
 
#define SE051PLUGNTRUST_APPLET_RES_ID_UNIQUE_ID   0x7FFF0206ul
 
#define SE051PLUGNTRUST_APPLET_RES_ID_PLATFORM_SCP   0x7FFF0207ul
 
#define SE051PLUGNTRUST_SW_NOERROR   0x9000
 Error codes.
 
#define SE051PLUGNTRUST_SW_CONDITIONS_NOT_SATISFIED   0x6985
 
#define SE051PLUGNTRUST_SW_SECURITY_STATUS   0x6982
 
#define SE051PLUGNTRUST_SW_WRONG_DATA   0x6A80
 
#define SE051PLUGNTRUST_SW_DATA_INVALID   0x6984
 
#define SE051PLUGNTRUST_SW_COMMAND_NOT_ALLOWED   0x6986
 
#define SE051PLUGNTRUST_OBJECT_DOES_EXISTS   1
 Check object exist.
 
#define SE051PLUGNTRUST_OBJECT_DOESNT_EXIST   2
 
#define SE051PLUGNTRUST_OBJID_SE05X_APPLET_RES_START   0x7FFF0000ul
 Applet provided objects.
 
#define SE051PLUGNTRUST_SSS_OBJID_DEMO_AUTH_START   0x7DA00000ul
 
#define SE051PLUGNTRUST_SSS_OBJID_IOT_HUB_A_START   0xF0000000ul
 
#define SE051PLUGNTRUST_OBJID_APPLET_MASK   0xFFFF0000ul
 Mask for applet provided objects.
 
#define SE051PLUGNTRUST_OBJID_IOT_MASK   0xF0000000ul
 
#define SE051PLUGNTRUST_INTERFACE_ISO14443   0
 Communication interface settings.
 
#define SE051PLUGNTRUST_INTERFACE_I2C   1
 
#define SE051PLUGNTRUST_CARD_MANAGER_WITH_RSP   1
 Card manager response data.
 
#define SE051PLUGNTRUST_CARD_MANAGER_WITHOUT_RSP   0
 
#define SE051PLUGNTRUST_DEVICE_ADDRESS   0x48
 SE051 Plug n Trust device address setting.
 
#define SE051PLUGNTRUST_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.
 

Enumerations

enum  se051plugntrust_return_value_t { SE051PLUGNTRUST_OK = 0 , SE051PLUGNTRUST_ERROR = -1 , SE051PLUGNTRUST_ERROR_TIMEOUT = -2 , SE051PLUGNTRUST_ERROR_DATA_OVF = -3 }
 SE051 Plug n Trust Click return value data. More...
 

Functions

void se051plugntrust_cfg_setup (se051plugntrust_cfg_t *cfg)
 SE051 Plug n Trust configuration object setup function.
 
err_t se051plugntrust_init (se051plugntrust_t *ctx, se051plugntrust_cfg_t *cfg)
 SE051 Plug n Trust initialization function.
 
err_t se051plugntrust_apdu_write (se051plugntrust_t *ctx, se051plugntrust_frame_data_t *frame_data)
 Writing frame data function.
 
err_t se051plugntrust_apdu_read (se051plugntrust_t *ctx, se051plugntrust_frame_data_t *frame_data)
 Reading frame data function function.
 
err_t se051plugntrust_apdu_transfer (se051plugntrust_t *ctx, se051plugntrust_frame_data_t *frame_data)
 Write-Read frame data function.
 
void se051plugntrust_set_en_pin (se051plugntrust_t *ctx, uint8_t state)
 Set Enable pin state.
 
void se051plugntrust_set_rst_pin (se051plugntrust_t *ctx, uint8_t state)
 Set Reset pin state.
 
void se051plugntrust_reset (se051plugntrust_t *ctx)
 Reset function.
 
void se051plugntrust_set_tlv_u8 (uint8_t *buf, uint8_t *buf_len, uint8_t tag, uint8_t value)
 Add TLV data of 1 byte value in payload buffer.
 
void se051plugntrust_set_tlv_u16 (uint8_t *buf, uint8_t *buf_len, uint8_t tag, uint16_t value)
 Add TLV data of 2 bytes value in payload buffer.
 
void se051plugntrust_set_tlv_u16_optional (uint8_t *buf, uint8_t *buf_len, uint8_t tag, uint16_t value)
 Add TLV data of 2 bytes value in payload buffer if value is greater then 0.
 
void se051plugntrust_set_tlv_u32 (uint8_t *buf, uint8_t *buf_len, uint8_t tag, uint32_t value)
 Add TLV data of 4 bytes value in payload buffer.
 
err_t se051plugntrust_set_tlv_u8buf (uint8_t *buf, uint8_t *buf_len, uint8_t tag, uint8_t *cmd, uint32_t cmd_len)
 Add TLV data buffer in payload buffer.
 
err_t se051plugntrust_set_tlv_u8buf_optional (uint8_t *buf, uint8_t *buf_len, uint8_t tag, uint8_t *cmd, uint32_t cmd_len)
 Add TLV data buffer in payload buffer if TLV data buffer length greater then 0.
 
err_t se051plugntrust_get_tlv_u8 (uint8_t *buf, uint32_t *buf_index, uint8_t tag, uint8_t *rsp)
 Parses TLV data from payload buffer to find data for desired tag.
 
err_t se051plugntrust_get_tlv_u16 (uint8_t *buf, uint32_t *buf_index, uint8_t tag, uint16_t *rsp)
 Parses TLV data from payload buffer to find data for desired tag.
 
err_t se051plugntrust_get_tlv_u8buf (uint8_t *buf, uint32_t *buf_index, uint8_t buf_len, uint8_t tag, uint8_t *rsp, uint32_t *rsp_len)
 Parses TLV data from payload buffer to find data for desired tag.
 
uint8_t se051plugntrust_calculate_apdu_size (se051plugntrust_apdu_t *apdu_data)
 Calculates APDU object size.
 
err_t se051plugntrust_end_apdu_session (se051plugntrust_t *ctx)
 Sends command for ending APDU session.
 
err_t se051plugntrust_object_id_list (se051plugntrust_t *ctx, uint32_t *id_list, uint8_t *list_len)
 Reads all Object ID's from Applet.
 
err_t se051plugntrust_sw_reset (se051plugntrust_t *ctx, se051plugntrust_atr_t *atr_data)
 Sends request to reset device and reads ATR data.
 
err_t se051plugntrust_select_applet (se051plugntrust_t *ctx, uint8_t ns_encode, se051plugntrust_version_info_t *ver_info)
 Selects Clicks Applet and returns info that device sends back to host.
 
err_t se051plugntrust_select_card_manager (se051plugntrust_t *ctx, uint8_t rsp, uint8_t *cardmanager_rsp, uint8_t *cardmanager_rsp_len)
 Select card manager.
 
err_t se051plugntrust_get_free_memory (se051plugntrust_t *ctx, uint8_t memory_type, uint16_t *free_memory)
 Reads Applet free memory.
 
err_t se051plugntrust_get_random_numbers (se051plugntrust_t *ctx, uint8_t *random_buf, uint8_t buf_len)
 Get random data.
 
err_t se051plugntrust_check_object_exist (se051plugntrust_t *ctx, uint32_t object_id)
 Check if object exists.
 
err_t se051plugntrust_delete_object (se051plugntrust_t *ctx, uint32_t object_id)
 Delete object.
 
err_t se051plugntrust_read_object (se051plugntrust_t *ctx, uint32_t object_id, uint16_t offset, uint16_t read_len, uint8_t *data_buf, uint32_t *data_len)
 Read object data.
 
err_t se051plugntrust_write_binary_object (se051plugntrust_t *ctx, uint32_t object_id, uint16_t offset, uint16_t data_len, uint8_t *data_buf)
 Create/Write to binary object.
 
err_t se051plugntrust_get_applet_info (se051plugntrust_t *ctx, se051plugntrust_version_info_t *ver_info)
 Get Version info from Applet.
 

Detailed Description

This file contains API for SE051 Plug n Trust Click Driver.

Enumeration Type Documentation

◆ se051plugntrust_return_value_t

SE051 Plug n Trust Click return value data.

Predefined enum values for driver return values.

Enumerator
SE051PLUGNTRUST_OK 
SE051PLUGNTRUST_ERROR 
SE051PLUGNTRUST_ERROR_TIMEOUT 
SE051PLUGNTRUST_ERROR_DATA_OVF