9 #ifndef __TEE_ISOCKET_TLS__ 10 #define __TEE_ISOCKET_TLS__ 52 TLS_NULL_WITH_NULL_NULL = 0x0000,
53 TLS_RSA_WITH_3DES_EDE_CBC_SHA = 0x000A,
54 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 0x0013,
55 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 0x0016,
56 TLS_RSA_WITH_AES_128_CBC_SHA = 0x002F,
57 TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 0x0032,
58 TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x0033,
59 TLS_RSA_WITH_AES_256_CBC_SHA = 0x0035,
60 TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 0x0038,
61 TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x0039,
62 TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x003C,
63 TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x003D,
64 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 0x0040,
65 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x0067,
66 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 0x006A,
67 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x006B,
69 TLS_PSK_WITH_3DES_EDE_CBC_SHA = 0x008B,
70 TLS_PSK_WITH_AES_128_CBC_SHA = 0x008C,
71 TLS_PSK_WITH_AES_256_CBC_SHA = 0x008D,
72 TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = 0x008F,
73 TLS_DHE_PSK_WITH_AES_128_CBC_SHA = 0x0090,
74 TLS_DHE_PSK_WITH_AES_256_CBC_SHA = 0x0091,
75 TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = 0x0093,
76 TLS_RSA_PSK_WITH_AES_128_CBC_SHA = 0x0094,
77 TLS_RSA_PSK_WITH_AES_256_CBC_SHA = 0x0095,
79 TLS_RSA_WITH_AES_128_GCM_SHA256 = 0x009C,
80 TLS_RSA_WITH_AES_256_GCM_SHA384 = 0x009D,
81 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 0x009E,
82 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 0x009F,
83 TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = 0x00A2,
84 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = 0x00A3,
86 TLS_PSK_WITH_AES_128_GCM_SHA256 = 0x00A8,
87 TLS_PSK_WITH_AES_256_GCM_SHA384 = 0x00A9,
88 TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 = 0x00AA,
89 TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 = 0x00AB,
90 TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 = 0x00AC,
91 TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 = 0x00AD,
92 TLS_PSK_WITH_AES_128_CBC_SHA256 = 0x00AE,
93 TLS_PSK_WITH_AES_256_CBC_SHA384 = 0x00AF,
94 TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 = 0x00B2,
95 TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 = 0x00B3,
96 TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 = 0x00B6,
97 TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 = 0x00B7,
99 TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA = 0xC008,
100 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 0xC009,
101 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 0xC00A,
102 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA = 0xC012,
103 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 0xC013,
104 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 0xC014,
106 TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA = 0xC01A,
107 TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = 0xC01B,
108 TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = 0xC01C,
109 TLS_SRP_SHA_WITH_AES_128_CBC_SHA = 0xC01D,
110 TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = 0xC01E,
111 TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = 0xC01F,
112 TLS_SRP_SHA_WITH_AES_256_CBC_SHA = 0xC020,
113 TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = 0xC021,
114 TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = 0xC022,
116 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 0xC023,
117 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 0xC024,
118 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 0xC027,
119 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 0xC028,
120 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02B,
121 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02C,
122 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 0xC02F,
123 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 0xC030,
124 TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA = 0xC034,
125 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA = 0xC035,
126 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA = 0xC036,
127 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 = 0xC037,
128 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 = 0xC038,
130 TLS_RSA_WITH_AES_128_CCM = 0xC09C,
131 TLS_RSA_WITH_AES_256_CCM = 0xC09D,
132 TLS_DHE_RSA_WITH_AES_128_CCM = 0xC09E,
133 TLS_DHE_RSA_WITH_AES_256_CCM = 0xC09F,
134 TLS_PSK_WITH_AES_128_CCM = 0xC0A4,
135 TLS_PSK_WITH_AES_256_CCM = 0xC0A5,
136 TLS_DHE_PSK_WITH_AES_128_CCM = 0xC0A6,
137 TLS_DHE_PSK_WITH_AES_256_CCM = 0xC0A7,
147 TEE_ObjectHandle pskKey;
168 TEE_ObjectHandle privateKey;
180 TEE_ObjectHandle publicKey;
244 uint32_t protocolError;
257 uint32_t *cbDataLength);
281 TEE_ISOCKET_TLS_MAX_ALPN_LIST_LENGTH = 16
362 uint32_t cb_data_size;
373 TEE_TLS_BINDING_INFO = 0x67000001,
Definition: tee_tlssocket.h:275
Definition: tee_tlssocket.h:235
Definition: tee_tlssocket.h:232
struct TEE_tlsSocket_ServerPDC_s TEE_tlsSocket_ServerPDC
If the server Root public key has been pre-distributed to the TA, this structure holds the TEE_Object...
enum TEE_tlsSocket_StatusRequestType_e TEE_tlsSocket_StatusRequestType
OCSP stapling certificate status request type.
struct TEE_tlsSocket_PSK_Info_s TEE_tlsSocket_PSK_Info
Pre-Shared Key (PSK). When PSK is used, the TA needs to provide the key and a key identity to the TLS...
Definition: tee_tlssocket.h:233
TEE_iSocket * baseSocket
Definition: tee_tlssocket.h:306
Definition: tee_tlssocket.h:33
Definition: tee_tlssocket.h:199
Definition: tee_tlssocket.h:272
char ** alpnList
Definition: tee_tlssocket.h:332
TEE_tlsSocket_ClientCredentialType clientCredType
Definition: tee_tlssocket.h:220
Definition: tee_tlssocket.h:208
enum TEE_tlsSocket_ExtensionFlags_e TEE_tlsSocket_ExtensionFlags
Certificate/OCSP validation mode and callback control flags.
This structure holds the opaque client certificate for the TA as well as the corresponding private ke...
Definition: tee_tlssocket.h:167
Structure holding server and client credentials.
Definition: tee_tlssocket.h:214
Definition: tee_tlssocket.h:18
Secure Remote Password (SRP). When SRP is used, the TA needs to provide the password and the user ide...
Definition: tee_tlssocket.h:157
Definition: tee_tlssocket.h:45
Definition: tee_tlssocket.h:274
TEE_tlsSocket_CipherSuites_e
Cryptosuite ID definitions.
Definition: tee_tlssocket.h:51
TEE_tlsSocket_tlsVersion acceptServerVersion
Definition: tee_tlssocket.h:289
TEE_tlsSocket_StatusRequestType_e
OCSP stapling certificate status request type.
Definition: tee_tlssocket.h:262
Definition: tee_tlssocket.h:25
enum TEE_tlsSocket_ClientCredentialType_e TEE_tlsSocket_ClientCredentialType
This specifies what kind of client credentials the TA has.
struct TEE_tlsSocket_Setup_s TEE_tlsSocket_Setup
TLS Setup structure.
struct __TEE_iSocketHandle * TEE_iSocketHandle
iSocket context handle
Definition: tee_isocket.h:46
uint32_t apiVersion
Definition: tee_tlssocket.h:288
TLS Setup structure.
Definition: tee_tlssocket.h:287
Definition: tee_tlssocket.h:264
Definition: tee_tlssocket.h:277
enum TEE_tlsSocket_tlsVersion_e TEE_tlsSocket_tlsVersion
TLS protocol version to use.
Definition: tee_tlssocket.h:198
TEE_Result(* TEE_tlsCallback)(TEE_iSocketHandle ctx, TEE_tlsSocket_CallbackInfo *cbInfo, void *cbData, uint32_t *cbDataLength)
Callback function. This is specification extension. Used to allow client perform custom checks of cer...
Definition: tee_tlssocket.h:253
Void type for future usage. Applications SHALL pass a NULL pointer. The intention is to have this str...
Definition: tee_tlssocket.h:191
struct TEE_tlsSocket_SRP_Info_s TEE_tlsSocket_SRP_Info
Secure Remote Password (SRP). When SRP is used, the TA needs to provide the password and the user ide...
Definition: tee_tlssocket.h:37
TEE_tlsSocket_CipherSuites * allowedCipherSuites
Definition: tee_tlssocket.h:291
enum TEE_tlsSocket_ServerCredentialType_e TEE_tlsSocket_ServerCredentialType
This specifies what kind of server credentials a remote node has.
Definition: tee_tlssocket.h:207
TEE_tlsCallback tlsCallback
Definition: tee_tlssocket.h:322
enum TEE_tlsSocket_CipherSuites_e TEE_tlsSocket_CipherSuites
Cryptosuite ID definitions.
Definition: tee_tlssocket.h:35
TEE_tlsSocket_ServerCredentialType serverCredType
Definition: tee_tlssocket.h:215
Definition: tee_tlssocket.h:34
TEE_tlsSocket_StatusRequestType ocspStatusType
Definition: tee_tlssocket.h:338
GP iSockets interface (GPD_SPE_100)
TEE_tlsSocket_ExtensionFlags extFlags
Definition: tee_tlssocket.h:309
Definition: tee_tlssocket.h:231
struct TEE_tlsSocket_CertStorageCred_s TEE_tlsSocket_CertStorageCred
Void type for future usage. Applications SHALL pass a NULL pointer. The intention is to have this str...
const TEE_iSocket *const TEE_tlsSocket
Public TLS instance pointer.
Definition: tee_tlssocket.h:273
Definition: tee_tlssocket.h:32
char * serverName
Definition: tee_tlssocket.h:310
TEE_tlsSocket_CallbackReasonType_e
Callback types.
Definition: tee_tlssocket.h:230
Pre-Shared Key (PSK). When PSK is used, the TA needs to provide the key and a key identity to the TLS...
Definition: tee_tlssocket.h:146
TEE_tlsSocket_tlsVersion_e
TLS protocol version to use.
Definition: tee_tlssocket.h:43
TEE_tlsSocket_ClientCredentialType_e
This specifies what kind of client credentials the TA has.
Definition: tee_tlssocket.h:197
Definition: tee_tlssocket.h:36
struct TEE_tlsSocket_Credentials_s TEE_tlsSocket_Credentials
Structure holding server and client credentials.
Definition: tee_tlssocket.h:44
TEE_iSocketHandle * baseContext
Definition: tee_tlssocket.h:307
TEE_tlsSocket_Credentials * credentials
Definition: tee_tlssocket.h:304
iSocket instance Please refer to GPD_SPE_100 specification for detailed description. Basic rules are following:
Definition: tee_isocket.h:63
struct TEE_tlsSocket_ClientPDC_s TEE_tlsSocket_ClientPDC
This structure holds the opaque client certificate for the TA as well as the corresponding private ke...
Definition: tee_tlssocket.h:263
struct TEE_tlsSocket_CB_Data_s TEE_tlsSocket_CB_Data
IOCTL definitions.
enum TEE_tlsSocket_CallbackReasonType_e TEE_tlsSocket_CallbackReasonType
Callback types.
IOCTL definitions.
Definition: tee_tlssocket.h:361
struct TEE_tlsSocket_CallbackInfo_s TEE_tlsSocket_CallbackInfo
Callback description structure.
Definition: tee_tlssocket.h:200
Definition: tee_tlssocket.h:276
TEE_tlsSocket_ExtensionFlags_e
Certificate/OCSP validation mode and callback control flags.
Definition: tee_tlssocket.h:271
If the server Root public key has been pre-distributed to the TA, this structure holds the TEE_Object...
Definition: tee_tlssocket.h:179
Callback description structure.
Definition: tee_tlssocket.h:241
Definition: tee_tlssocket.h:234
TEE_tlsSocket_ServerCredentialType_e
This specifies what kind of server credentials a remote node has.
Definition: tee_tlssocket.h:206