globalplatform
Data Structures | Macros | Typedefs
security.h File Reference
#include "types.h"
Include dependency graph for security.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  OP201_SECURITY_INFO
 
struct  GP211_SECURITY_INFO
 
struct  OP201_DAP_BLOCK
 
struct  OP201_RECEIPT_DATA
 
struct  OP201_KEY_INFORMATION
 
struct  GP211_DAP_BLOCK
 
struct  GP211_RECEIPT_DATA
 
struct  GP211_KEY_INFORMATION
 

Macros

#define OP_201   201
 OpenPlatform specification 2.0.1' mode.
 
#define GP_211   211
 GlobalPlatform specification 2.1.1 mode.
 
#define GP211_SCP01   0x01
 Secure Channel Protocol '01'.
 
#define GP211_SCP02   0x02
 Secure Channel Protocol '02'.
 
#define GP211_SCP03   0x03
 Secure Channel Protocol '03'.
 
#define GP211_SCP01_IMPL_i05   0x05
 
#define GP211_SCP01_IMPL_i15   0x15
 
#define GP211_SCP02_IMPL_i44   0x44
 
#define GP211_SCP02_IMPL_i45   0x45
 
#define GP211_SCP02_IMPL_i54   0x54
 
#define GP211_SCP02_IMPL_i55   0x55
 
#define GP211_SCP02_IMPL_i04   0x04
 
#define GP211_SCP02_IMPL_i05   0x05
 
#define GP211_SCP02_IMPL_i0A   0x0A
 
#define GP211_SCP02_IMPL_i0B   0x0B
 
#define GP211_SCP02_IMPL_i14   0x14
 
#define GP211_SCP02_IMPL_i15   0x15
 
#define GP211_SCP02_IMPL_i1A   0x1A
 
#define GP211_SCP02_IMPL_i1B   0x1B
 
#define GP211_SCP03_IMPL_i00   0x00
 
#define GP211_SCP03_IMPL_i10   0x10
 
#define GP211_SCP03_IMPL_i30   0x30
 
#define GP211_SCP03_IMPL_i20   0x20
 
#define GP211_SCP03_IMPL_i60   0x60
 
#define GP211_SCP03_IMPL_i70   0x70
 
#define GP211_SCP01_SECURITY_LEVEL_C_DEC_C_MAC   0x03
 Secure Channel Protocol '01': C-DECRYPTION and C-MAC.
 
#define GP211_SCP01_SECURITY_LEVEL_C_MAC   0x01
 Secure Channel Protocol '01': C-MAC.
 
#define GP211_SCP01_SECURITY_LEVEL_NO_SECURE_MESSAGING   0x00
 Secure Channel Protocol '01': No secure messaging expected.
 
#define GP211_SCP02_SECURITY_LEVEL_C_DEC_C_MAC_R_MAC   0x13
 Secure Channel Protocol '02': C-DECRYPTION, C-MAC and R-MAC.
 
#define GP211_SCP02_SECURITY_LEVEL_C_MAC_R_MAC   0x11
 Secure Channel Protocol '02': C-MAC and R-MAC.
 
#define GP211_SCP02_SECURITY_LEVEL_R_MAC   0x10
 Secure Channel Protocol '02': R-MAC. Used only with BEGIN R-MAC.
 
#define GP211_SCP02_SECURITY_LEVEL_C_DEC_C_MAC   0x03
 Secure Channel Protocol '02': C-DECRYPTION and C-MAC.
 
#define GP211_SCP02_SECURITY_LEVEL_C_MAC   0x01
 Secure Channel Protocol '02': C-MAC.
 
#define GP211_SCP02_SECURITY_LEVEL_NO_SECURE_MESSAGING   0x00
 Secure Channel Protocol '02': No secure messaging expected.
 
#define GP211_SCP03_SECURITY_LEVEL_C_DEC_C_MAC   0x03
 Secure Channel Protocol '03': C-Decryption and C-MAC.
 
#define GP211_SCP03_SECURITY_LEVEL_C_MAC   0x01
 Secure Channel Protocol '03': C-MAC.
 
#define GP211_SCP03_SECURITY_LEVEL_NO_SECURE_MESSAGING   0x00
 Secure Channel Protocol '03': No secure messaging expected.
 
#define GP211_SCP03_SECURITY_LEVEL_C_DEC_R_ENC_C_MAC_R_MAC   0x33
 Secure Channel Protocol '03': C-Decryption, C-MAC, R-MAC and R-Encryption.
 
#define GP211_SCP03_SECURITY_LEVEL_C_DEC_C_MAC_R_MAC   0x13
 Secure Channel Protocol '03': C-Decryption, C-MAC and R-MAC.
 
#define GP211_SCP03_SECURITY_LEVEL_C_DEC_C_MAC_R_ENC_R_MAC   0x33
 Secure Channel Protocol '03': C-Decryption, C-MAC, R-Encryption and R-MAC.
 
#define GP211_SCP03_SECURITY_LEVEL_C_MAC_R_MAC   0x11
 Secure Channel Protocol '03': C-MAC and R-MAC.
 
#define GP211_SCP03_SECURITY_LEVEL_R_MAC   0x10
 Secure Channel Protocol '03': R-MAC. Used only with BEGIN R-MAC.
 
#define GP211_SCP03_SECURITY_LEVEL_R_ENC_R_MAC   0x30
 Secure Channel Protocol '03': R-Encryption and R-MAC. Used only with BEGIN R-MAC.
 
#define GP211_KEY_TYPE_RSA_PUB_N   0xA1
 'A1' RSA Public Key - modulus N component (clear text).
 
#define GP211_KEY_TYPE_RSA_PUB_E   0xA0
 'A0' RSA Public Key - public exponent e component (clear text)
 
#define GP211_KEY_TYPE_RSA_PRIV_N   0xA2
 ''A2' RSA Private Key - modulus N component
 
#define GP211_KEY_TYPE_RSA_PRIV_D   0xA3
 ''A3' RSA Private Key - private exponent d component
 
#define GP211_KEY_TYPE_RSA_PRIV_P   0xA4
 ''A4' RSA Private Key - Chinese Remainder P component
 
#define GP211_KEY_TYPE_RSA_PRIV_Q   0xA5
 ''A5' RSA Private Key - Chinese Remainder Q component
 
#define GP211_KEY_TYPE_RSA_PRIV_PQ   0xA6
 ''A6' RSA Private Key - Chinese Remainder PQ component
 
#define GP211_KEY_TYPE_RSA_PRIV_DP1   0xA7
 ''A7' RSA Private Key - Chinese Remainder DP1 component
 
#define GP211_KEY_TYPE_RSA_PRIV_DQ1   0xA8
 ''A8' RSA Private Key - Chinese Remainder DQ1 component
 
#define GP211_KEY_TYPE_3DES   0x81
 Reserved (triple DES).
 
#define GP211_KEY_TYPE_DES   0x80
 '80' DES mode (EBC/CBC) implicitly known.
 
#define GP211_KEY_TYPE_3DES_CBC   0x82
 '82' Triple DES in CBC mode.
 
#define GP211_KEY_TYPE_DES_ECB   0x83
 '83' DES in ECB mode.
 
#define GP211_KEY_TYPE_DES_CBC   0x84
 '84' DES in CBC mode.
 
#define GP211_KEY_TYPE_PSK_TLS   0x85
 '85' Pre-Shared Key for Transport Layer Security
 
#define GP211_KEY_TYPE_AES   0x88
 '88' AES (16, 24, or 32 long keys)
 
#define OP201_SECURITY_LEVEL_ENC_MAC   0x03
 Command messages are signed and encrypted.
 
#define OP201_SECURITY_LEVEL_MAC   0x01
 Command messages are signed.
 
#define OP201_SECURITY_LEVEL_PLAIN   0x00
 Command messages are plain text.
 
#define OP201_KEY_TYPE_RSA_PUP_N   0xA1
 'A1' RSA Public Key - modulus N component (clear text).
 
#define OP201_KEY_TYPE_RSA_PUP_E   0xA0
 'A0' RSA Public Key - public exponent e component (clear text)
 
#define OP201_KEY_TYPE_DES   0x80
 DES (ECB/CBC) key.
 
#define OP201_KEY_TYPE_DES_ECB   0x81
 DES ECB.
 
#define OP201_KEY_TYPE_DES_CBC   0x82
 DES CBC.
 

Typedefs

typedef struct OP201_DAP_BLOCK OP201_RSA_DAP_BLOCK
 
typedef struct OP201_DAP_BLOCK OP201_3DES_DAP_BLOCK
 
typedef struct GP211_DAP_BLOCK GP211_RSA_DAP_BLOCK
 
typedef struct GP211_DAP_BLOCK GP211_3DES_DAP_BLOCK
 

Detailed Description

This file contains security related definitions.

Macro Definition Documentation

◆ GP211_SCP01_IMPL_i05

#define GP211_SCP01_IMPL_i05   0x05

Secure Channel Protocol '01': "i" '05': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, no ICV encryption, 3 Secure Channel Keys

◆ GP211_SCP01_IMPL_i15

#define GP211_SCP01_IMPL_i15   0x15

Secure Channel Protocol '01': "i" '15': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, ICV encryption, 3 Secure Channel Keys

◆ GP211_SCP02_IMPL_i04

#define GP211_SCP02_IMPL_i04   0x04

Secure Channel Protocol '02': "i" '04': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, no ICV encryption, 1 Secure Channel base key, unspecified card challenge generation method

◆ GP211_SCP02_IMPL_i05

#define GP211_SCP02_IMPL_i05   0x05

Secure Channel Protocol '02': "i" '05': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, no ICV encryption, 3 Secure Channel Keys, unspecified card challenge generation method

◆ GP211_SCP02_IMPL_i0A

#define GP211_SCP02_IMPL_i0A   0x0A

Secure Channel Protocol '02': "i" '0A': Initiation mode implicit, C-MAC on unmodified APDU, ICV set to MAC over AID, no ICV encryption, 1 Secure Channel base key

◆ GP211_SCP02_IMPL_i0B

#define GP211_SCP02_IMPL_i0B   0x0B

Secure Channel Protocol '02': "i" '0B': Initiation mode implicit, C-MAC on unmodified APDU, ICV set to MAC over AID, no ICV encryption, 3 Secure Channel Keys

◆ GP211_SCP02_IMPL_i14

#define GP211_SCP02_IMPL_i14   0x14

Secure Channel Protocol '02': "i" '14': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, ICV encryption for CMAC session, 1 Secure Channel base key, unspecified card challenge generation method

◆ GP211_SCP02_IMPL_i15

#define GP211_SCP02_IMPL_i15   0x15

Secure Channel Protocol '02': "i" '15': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, ICV encryption for CMAC session, 3 Secure Channel Keys, unspecified card challenge generation method

◆ GP211_SCP02_IMPL_i1A

#define GP211_SCP02_IMPL_i1A   0x1A

Secure Channel Protocol '02': "i" '1A': Initiation mode implicit, C-MAC on unmodified APDU, ICV set to MAC over AID, ICV encryption for C-MAC session, 1 Secure Channel base key

◆ GP211_SCP02_IMPL_i1B

#define GP211_SCP02_IMPL_i1B   0x1B

Secure Channel Protocol '02': "i" '1B': Initiation mode implicit, C-MAC on unmodified APDU, ICV set to MAC over AID, ICV encryption for C-MAC session, 3 Secure Channel Keys

◆ GP211_SCP02_IMPL_i44

#define GP211_SCP02_IMPL_i44   0x44

Secure Channel Protocol '02': "i" = '44': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, no ICV encryption, 1 Secure Channel base key, well-known pseudo-random algorithm (card challenge),

◆ GP211_SCP02_IMPL_i45

#define GP211_SCP02_IMPL_i45   0x45

Secure Channel Protocol '02': "i" = '45': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, no ICV encryption, 3 Secure Channel Keys, well-known pseudo-random algorithm (card challenge),

◆ GP211_SCP02_IMPL_i54

#define GP211_SCP02_IMPL_i54   0x54

Secure Channel Protocol '02': "i" = '54': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, ICV encryption for C-MAC session, 1 Secure Channel base key, well-known pseudo-random algorithm (card challenge),

◆ GP211_SCP02_IMPL_i55

#define GP211_SCP02_IMPL_i55   0x55

Secure Channel Protocol '02': "i" = '55': Initiation mode explicit, C-MAC on modified APDU, ICV set to zero, ICV encryption for C-MAC session, 3 Secure Channel Keys, well-known pseudo-random algorithm (card challenge).�

◆ GP211_SCP03_IMPL_i00

#define GP211_SCP03_IMPL_i00   0x00

Secure Channel Protocol '03': "i" '00': Random card challenge, No R-MAC, no R-ENCRYPTION.

◆ GP211_SCP03_IMPL_i10

#define GP211_SCP03_IMPL_i10   0x10

Secure Channel Protocol '03': "i" '10': Pseudo-random card challenge, no R-MAC support, no R-ENCRYPTION support.

◆ GP211_SCP03_IMPL_i20

#define GP211_SCP03_IMPL_i20   0x20

Secure Channel Protocol '03': "i" '20': Random card challenge, R-MAC support, no R-ENCRYPTION support.

◆ GP211_SCP03_IMPL_i30

#define GP211_SCP03_IMPL_i30   0x30

Secure Channel Protocol '03': "i" '30': Pseudo-random card challenge, R-MAC support, no R-ENCRYPTION support.

◆ GP211_SCP03_IMPL_i60

#define GP211_SCP03_IMPL_i60   0x60

Secure Channel Protocol '03': "i" '60': Random card challenge, R-MAC support, R-ENCRYPTION support.

◆ GP211_SCP03_IMPL_i70

#define GP211_SCP03_IMPL_i70   0x70

Secure Channel Protocol '03': "i" '70': Pseudo-random card challenge, R_MAC, support, R-ENCRYPTION support.