Embedded Wireless Framework
ewf_adapter_api_tls.h
Go to the documentation of this file.
1 /************************************************************************/
9 #ifndef __ewf_adapter_tls__h__included__
10 #define __ewf_adapter_tls__h__included__
11 
12 #include "ewf.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 /************************************************************************/
29 {
30  SSL_1_0 = 0x0001,
31  SSL_2_0 = 0x0002,
32  SSL_3_0 = 0x0003,
33  TLS_1_0 = 0x0100,
34  TLS_1_1 = 0x0101,
35  TLS_1_2 = 0x0102,
36  TLS_1_3 = 0x0103,
37 
39 
42 {
43  EWF_ADAPTER_TLS_KEY_AGREEMENT_ANY,
44  EWF_ADAPTER_TLS_KEY_AGREEMENT_DH_RSA,
45  EWF_ADAPTER_TLS_KEY_AGREEMENT_DHE_RSA_FS,
46  EWF_ADAPTER_TLS_KEY_AGREEMENT_ECDH_RSA,
47  EWF_ADAPTER_TLS_KEY_AGREEMENT_ECDHE_RSA_FS,
48  EWF_ADAPTER_TLS_KEY_AGREEMENT_DH_DSS,
49  EWF_ADAPTER_TLS_KEY_AGREEMENT_DHE_DSS_FS,
50  EWF_ADAPTER_TLS_KEY_AGREEMENT_ECDH_ECDSA,
51  EWF_ADAPTER_TLS_KEY_AGREEMENT_ECDHE_ECDSA_FS,
52  EWF_ADAPTER_TLS_KEY_AGREEMENT_ECDH_EDDSA,
53  EWF_ADAPTER_TLS_KEY_AGREEMENT_ECDHE_EDDSA_FS,
54  EWF_ADAPTER_TLS_KEY_AGREEMENT_PSK,
55  EWF_ADAPTER_TLS_KEY_AGREEMENT_PSK_RSA,
56  EWF_ADAPTER_TLS_KEY_AGREEMENT_DHE_PSK_FS,
57  EWF_ADAPTER_TLS_KEY_AGREEMENT_ECDHE_PSK_FS,
58  EWF_ADAPTER_TLS_KEY_AGREEMENT_SRP,
59  EWF_ADAPTER_TLS_KEY_AGREEMENT_SRP_DSS,
60  EWF_ADAPTER_TLS_KEY_AGREEMENT_SRP_RSA,
61  EWF_ADAPTER_TLS_KEY_AGREEMENT_KERBEROS,
62  EWF_ADAPTER_TLS_KEY_AGREEMENT_DH_ANON,
63  EWF_ADAPTER_TLS_KEY_AGREEMENT_ECDH_ANON,
64  EWF_ADAPTER_TLS_KEY_AGREEMENT_GOST_R_34_10_94,
65  EWF_ADAPTER_TLS_KEY_AGREEMENT_GOST_R_34_10_2001,
66 
68 
71 {
72  EWF_ADAPTER_TLS_CIPHER_ANY,
73  EWF_ADAPTER_TLS_CIPHER_NONE,
74  EWF_ADAPTER_TLS_CIPHER_AES_GCM,
75  EWF_ADAPTER_TLS_CIPHER_AES_CCM,
76  EWF_ADAPTER_TLS_CIPHER_AES_CBC,
77  EWF_ADAPTER_TLS_CIPHER_CAMELIA_GCM,
78  EWF_ADAPTER_TLS_CIPHER_CAMELIA_CBC,
79  EWF_ADAPTER_TLS_CIPHER_ARIA_GCM,
80  EWF_ADAPTER_TLS_CIPHER_ARIA_CBC,
81  EWF_ADAPTER_TLS_CIPHER_SEED_CBC,
82  EWF_ADAPTER_TLS_CIPHER_3DES_EDE_CBC,
83  EWF_ADAPTER_TLS_CIPHER_GOST_28147_89_CNT,
84  EWF_ADAPTER_TLS_CIPHER_IDEA_CBC,
85  EWF_ADAPTER_TLS_CIPHER_DES_CBC,
86  EWF_ADAPTER_TLS_CIPHER_RC2_CBC,
87  EWF_ADAPTER_TLS_CIPHER_CHACHA20_POLY1305,
88  EWF_ADAPTER_TLS_CIPHER_RC4,
89 
91 
94 {
95  EWF_ADAPTER_TLS_DATA_INTEGRITY_HMAC_MD5,
96  EWF_ADAPTER_TLS_DATA_INTEGRITY_HMAC_SHA1,
97  EWF_ADAPTER_TLS_DATA_INTEGRITY_HMAC_SHA256,
98  EWF_ADAPTER_TLS_DATA_INTEGRITY_HMAC_SHA384,
99  EWF_ADAPTER_TLS_DATA_INTEGRITY_AEAD,
100  EWF_ADAPTER_TLS_DATA_INTEGRITY_GOST_28147_89_IMIT,
101  EWF_ADAPTER_TLS_DATA_INTEGRITY_GOST_R_34_11_94,
102 
104 
110 #define EWF_TLS_CONFIGURATION_SETTING_VERSION "common_tls_version"
111 #define EWF_TLS_CONFIGURATION_SETTING_KEY_AGREEMENT "common_key_agreement"
112 #define EWF_TLS_CONFIGURATION_SETTING_CIPHER "common_cipher"
113 #define EWF_TLS_CONFIGURATION_SETTING_DATA_INTEGRITY "common_data_integrity"
114 
115 #define EWF_TLS_CONFIGURATION_SETTING_STORE_CA_CERTIFICATE "common_store_ca_certificate"
116 #define EWF_TLS_CONFIGURATION_SETTING_STORE_ROOT_CERTIFICATE "common_store_root_certificate"
117 #define EWF_TLS_CONFIGURATION_SETTING_STORE_SERVER_CERTIFICATE "common_store_server_certificate"
118 #define EWF_TLS_CONFIGURATION_SETTING_STORE_CLIENT_CERTIFICATE "common_store_client_certificate"
119 #define EWF_TLS_CONFIGURATION_SETTING_STORE_DEVICE_KEY "common_store_device_key"
120 #define EWF_TLS_CONFIGURATION_SETTING_STORE_PSK "common_store_psk"
121 
122 #define EWF_TLS_CONFIGURATION_SETTING_DELETE_CA_CERTIFICATE "common_delete_ca_certificate"
123 #define EWF_TLS_CONFIGURATION_SETTING_DELETE_ROOT_CERTIFICATE "common_delete_root_certificate"
124 #define EWF_TLS_CONFIGURATION_SETTING_DELETE_SERVER_CERTIFICATE "common_delete_server_certificate"
125 #define EWF_TLS_CONFIGURATION_SETTING_DELETE_CLIENT_CERTIFICATE "common_delete_client_certificate"
126 #define EWF_TLS_CONFIGURATION_SETTING_DELETE_DEVICE_KEY "common_delete_device_key"
127 #define EWF_TLS_CONFIGURATION_SETTING_DELETE_PSK "common_delete_psk"
128 
129 #define EWF_TLS_CONFIGURATION_SETTING_OTA_CA_CERTIFICATE "common_ota_ca_certificate"
130 #define EWF_TLS_CONFIGURATION_SETTING_OTA_ROOT_CERTIFICATE "common_ota_root_certificate"
131 #define EWF_TLS_CONFIGURATION_SETTING_OTA_SERVER_CERTIFICATE "common_ota_server_certificate"
132 #define EWF_TLS_CONFIGURATION_SETTING_OTA_CLIENT_CERTIFICATE "common_ota_client_certificate"
133 #define EWF_TLS_CONFIGURATION_SETTING_OTA_DEVICE_KEY "common_ota_device_key"
134 #define EWF_TLS_CONFIGURATION_SETTING_OTA_PSK "common_ota_psk"
135 
137 typedef struct _ewf_adapter_api_tls
138 {
139  ewf_result(*configuration_setting_set)(ewf_adapter* adapter_ptr, uint32_t configuration_id, const char* setting_str, const void* buffer_ptr, uint32_t buffer_length);
140  ewf_result(*configuration_setting_query)(ewf_adapter* adapter_ptr, uint32_t configuration_id, const char* setting_str, const void* buffer_ptr, uint32_t* buffer_length_ptr);
141 
143 
147 ewf_result ewf_adapter_tls_configuration_setting_set(ewf_adapter* adapter_ptr, uint32_t configuration_id, const char* setting_str, const void* buffer_ptr, uint32_t buffer_length);
148 
152 ewf_result ewf_adapter_tls_configuration_setting_query(ewf_adapter* adapter_ptr, uint32_t configuration_id, const char* setting_str, const void* buffer_ptr, uint32_t* buffer_length_ptr);
153 
154 /************************************************************************/
158 #ifdef __cplusplus
159 }
160 #endif
161 
162 #endif /* __ewf_adapter_tls__h__included__ */
The Embedded Wireless Framework.
enum _ewf_adapter_tls_version ewf_adapter_tls_version
the TLS version type
enum _ewf_adapter_tls_key_agreement ewf_adapter_tls_key_agreement
the TLS key agreement
struct _ewf_adapter_api_tls ewf_adapter_api_tls
the TLS configuration API
enum _ewf_adapter_tls_data_integrity ewf_adapter_tls_data_integrity
the TLS data integrity
_ewf_adapter_tls_data_integrity
the TLS data integrity
Definition: ewf_adapter_api_tls.h:94
enum _ewf_adapter_tls_cipher ewf_adapter_tls_cipher
the TLS cipher
_ewf_adapter_tls_key_agreement
the TLS key agreement
Definition: ewf_adapter_api_tls.h:42
ewf_result ewf_adapter_tls_configuration_setting_query(ewf_adapter *adapter_ptr, uint32_t configuration_id, const char *setting_str, const void *buffer_ptr, uint32_t *buffer_length_ptr)
Query a TLS configuration.
_ewf_adapter_tls_cipher
the TLS cipher
Definition: ewf_adapter_api_tls.h:71
_ewf_adapter_tls_version
the TLS version type
Definition: ewf_adapter_api_tls.h:29
ewf_result ewf_adapter_tls_configuration_setting_set(ewf_adapter *adapter_ptr, uint32_t configuration_id, const char *setting_str, const void *buffer_ptr, uint32_t buffer_length)
Set a TLS configuration setting.
enum _ewf_result ewf_result
Success and error result codes specific to the EWF API.
the TLS configuration API
Definition: ewf_adapter_api_tls.h:138
The EWF network adapter control structure definition.
Definition: ewf_adapter.h:50