SmartSnippets DA1459x SDK
sdk
interfaces
crypto
include
crypto_ecc_provider_function_map.h
Go to the documentation of this file.
1
48
#ifndef SDK_CRYPTO_INCLUDE_CRYPTO_ECC_PROVIDER_FUNCTION_MAP_H_
49
#define SDK_CRYPTO_INCLUDE_CRYPTO_ECC_PROVIDER_FUNCTION_MAP_H_
50
51
/*
52
* This set of definitions maps curve init and prototype functions depending on ecc params
53
*/
54
55
/* SECP160R1 */
56
#if dg_USE_CURVE_SECP160R1
57
#if dg_USE_UECC_LIB
58
#define CURVE_SECP160R1_UECC_LIB_INIT curve_init_secp160r1
59
#define CURVE_SECP160R1_UECC_LIB_COMPUTE_PUBLIC compute_public_key_uecc
60
#define CURVE_SECP160R1_UECC_LIB_COMPUTE_PRIVATE compute_private_key_uecc
61
#define CURVE_SECP160R1_UECC_LIB_COMPUTE_SHARED compute_shared_secret_uecc
62
#else
63
#define CURVE_SECP160R1_UECC_LIB_INIT ecc_lib_provider_error_handler
64
#define CURVE_SECP160R1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
65
#define CURVE_SECP160R1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
66
#define CURVE_SECP160R1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
67
#endif
68
69
#else
70
#define CURVE_SECP160R1_UECC_LIB_INIT ecc_lib_provider_error_handler
71
#define CURVE_SECP160R1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
72
#define CURVE_SECP160R1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
73
#define CURVE_SECP160R1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
74
#endif
75
76
/* SECP192R1 */
77
#if dg_USE_CURVE_SECP192R1
78
#if dg_USE_HW_ECC
79
#define CURVE_SECP192R1_HW_ECC_LIB_INIT curve_init_secp192r1
80
#define CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_PUBLIC compute_public_key_hw
81
#define CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_PRIVATE compute_private_key_hw
82
#define CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_SHARED compute_shared_secret_hw
83
#else
84
#define CURVE_SECP192R1_HW_ECC_LIB_INIT ecc_lib_provider_error_handler
85
#define CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
86
#define CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
87
#define CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
88
#endif
89
90
#if dg_USE_UECC_LIB
91
#define CURVE_SECP192R1_UECC_LIB_INIT curve_init_secp192r1
92
#define CURVE_SECP192R1_UECC_LIB_COMPUTE_PUBLIC compute_public_key_uecc
93
#define CURVE_SECP192R1_UECC_LIB_COMPUTE_PRIVATE compute_private_key_uecc
94
#define CURVE_SECP192R1_UECC_LIB_COMPUTE_SHARED compute_shared_secret_uecc
95
#else
96
#define CURVE_SECP192R1_UECC_LIB_INIT ecc_lib_provider_error_handler
97
#define CURVE_SECP192R1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
98
#define CURVE_SECP192R1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
99
#define CURVE_SECP192R1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
100
#endif
101
102
#else
103
#define CURVE_SECP192R1_HW_ECC_LIB_INIT ecc_lib_provider_error_handler
104
#define CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
105
#define CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
106
#define CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
107
#define CURVE_SECP192R1_UECC_LIB_INIT ecc_lib_provider_error_handler
108
#define CURVE_SECP192R1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
109
#define CURVE_SECP192R1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
110
#define CURVE_SECP192R1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
111
#endif
112
113
/* SECP224R1 */
114
#if dg_USE_CURVE_SECP224R1
115
#if dg_USE_HW_ECC
116
#define CURVE_SECP224R1_HW_ECC_LIB_INIT curve_init_secp224r1
117
#define CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_PUBLIC compute_public_key_hw
118
#define CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_PRIVATE compute_private_key_hw
119
#define CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_SHARED compute_shared_secret_hw
120
#else
121
#define CURVE_SECP224R1_HW_ECC_LIB_INIT ecc_lib_provider_error_handler
122
#define CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
123
#define CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
124
#define CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
125
#endif
126
127
#if dg_USE_UECC_LIB
128
#define CURVE_SECP224R1_UECC_LIB_INIT curve_init_secp224r1
129
#define CURVE_SECP224R1_UECC_LIB_COMPUTE_PUBLIC compute_public_key_uecc
130
#define CURVE_SECP224R1_UECC_LIB_COMPUTE_PRIVATE compute_private_key_uecc
131
#define CURVE_SECP224R1_UECC_LIB_COMPUTE_SHARED compute_shared_secret_uecc
132
#else
133
#define CURVE_SECP224R1_UECC_LIB_INIT ecc_lib_provider_error_handler
134
#define CURVE_SECP224R1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
135
#define CURVE_SECP224R1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
136
#define CURVE_SECP224R1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
137
#endif
138
139
#else
140
#define CURVE_SECP224R1_HW_ECC_LIB_INIT ecc_lib_provider_error_handler
141
#define CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
142
#define CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
143
#define CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
144
#define CURVE_SECP224R1_UECC_LIB_INIT ecc_lib_provider_error_handler
145
#define CURVE_SECP224R1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
146
#define CURVE_SECP224R1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
147
#define CURVE_SECP224R1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
148
#endif
149
150
/* SECP256R1 */
151
#if dg_USE_CURVE_SECP256R1
152
#if dg_USE_HW_ECC
153
#define CURVE_SECP256R1_HW_ECC_LIB_INIT curve_init_secp256r1
154
#define CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_PUBLIC compute_public_key_hw
155
#define CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_PRIVATE compute_private_key_hw
156
#define CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_SHARED compute_shared_secret_hw
157
#else
158
#define CURVE_SECP256R1_HW_ECC_LIB_INIT ecc_lib_provider_error_handler
159
#define CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
160
#define CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
161
#define CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
162
#endif
163
164
#if dg_USE_UECC_LIB
165
#define CURVE_SECP256R1_UECC_LIB_INIT curve_init_secp256r1
166
#define CURVE_SECP256R1_UECC_LIB_COMPUTE_PUBLIC compute_public_key_uecc
167
#define CURVE_SECP256R1_UECC_LIB_COMPUTE_PRIVATE compute_private_key_uecc
168
#define CURVE_SECP256R1_UECC_LIB_COMPUTE_SHARED compute_shared_secret_uecc
169
#else
170
#define CURVE_SECP256R1_UECC_LIB_INIT ecc_lib_provider_error_handler
171
#define CURVE_SECP256R1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
172
#define CURVE_SECP256R1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
173
#define CURVE_SECP256R1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
174
#endif
175
176
#else
177
#define CURVE_SECP256R1_HW_ECC_LIB_INIT ecc_lib_provider_error_handler
178
#define CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
179
#define CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
180
#define CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
181
#define CURVE_SECP256R1_UECC_LIB_INIT ecc_lib_provider_error_handler
182
#define CURVE_SECP256R1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
183
#define CURVE_SECP256R1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
184
#define CURVE_SECP256R1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
185
#endif
186
187
/* SECP256K1 */
188
#if dg_USE_CURVE_SECP256K1
189
#if dg_USE_UECC_LIB
190
#define CURVE_SECP256K1_UECC_LIB_INIT curve_init_secp256k1
191
#define CURVE_SECP256K1_UECC_LIB_COMPUTE_PUBLIC compute_public_key_uecc
192
#define CURVE_SECP256K1_UECC_LIB_COMPUTE_PRIVATE compute_private_key_uecc
193
#define CURVE_SECP256K1_UECC_LIB_COMPUTE_SHARED compute_shared_secret_uecc
194
#else
195
#define CURVE_SECP256K1_UECC_LIB_INIT ecc_lib_provider_error_handler
196
#define CURVE_SECP256K1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
197
#define CURVE_SECP256K1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
198
#define CURVE_SECP256K1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
199
#endif
200
201
#else
202
#define CURVE_SECP256K1_HW_ECC_LIB_INIT ecc_lib_provider_error_handler
203
#define CURVE_SECP256K1_HW_ECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
204
#define CURVE_SECP256K1_HW_ECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
205
#define CURVE_SECP256K1_HW_ECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
206
#define CURVE_SECP256K1_UECC_LIB_INIT ecc_lib_provider_error_handler
207
#define CURVE_SECP256K1_UECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
208
#define CURVE_SECP256K1_UECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
209
#define CURVE_SECP256K1_UECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
210
#endif
211
212
/* CURVE25519 */
213
#if dg_USE_CURVE_25519
214
#if dg_USE_HW_ECC
215
#define CURVE_25519_HW_ECC_LIB_INIT curve_init_25519
216
#define CURVE_25519_HW_ECC_LIB_COMPUTE_PUBLIC compute_public_key_25519_hw
217
#define CURVE_25519_HW_ECC_LIB_COMPUTE_PRIVATE compute_private_key_25519
218
#define CURVE_25519_HW_ECC_LIB_COMPUTE_SHARED compute_shared_secret_25519_hw
219
#else
220
#define CURVE_25519_HW_ECC_LIB_INIT ecc_lib_provider_error_handler
221
#define CURVE_25519_HW_ECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
222
#define CURVE_25519_HW_ECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
223
#define CURVE_25519_HW_ECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
224
#endif
225
226
#if dg_USE_SODIUM_LIB
227
#define CURVE_25519_SODIUM_LIB_INIT curve_init_25519
228
#define CURVE_25519_SODIUM_LIB_COMPUTE_PUBLIC compute_public_key_25519_sodium
229
#define CURVE_25519_SODIUM_LIB_COMPUTE_PRIVATE compute_private_key_25519
230
#define CURVE_25519_SODIUM_LIB_COMPUTE_SHARED compute_shared_secret_25519_sodium
231
#else
232
#define CURVE_25519_SODIUM_LIB_INIT ecc_lib_provider_error_handler
233
#define CURVE_25519_SODIUM_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
234
#define CURVE_25519_SODIUM_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
235
#define CURVE_25519_SODIUM_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
236
#endif
237
238
#else
239
#define CURVE_25519_HW_ECC_LIB_INIT ecc_lib_provider_error_handler
240
#define CURVE_25519_HW_ECC_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
241
#define CURVE_25519_HW_ECC_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
242
#define CURVE_25519_HW_ECC_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
243
#define CURVE_25519_SODIUM_LIB_INIT ecc_lib_provider_error_handler
244
#define CURVE_25519_SODIUM_LIB_COMPUTE_PUBLIC ecc_lib_provider_error_handler
245
#define CURVE_25519_SODIUM_LIB_COMPUTE_PRIVATE ecc_lib_provider_error_handler
246
#define CURVE_25519_SODIUM_LIB_COMPUTE_SHARED ecc_lib_provider_error_handler
247
#endif
248
249
250
251
252
253
/*
254
* This set of definitions is used to formulate the default library providers for each
255
* curve and properly map functions implementing ecc primitives.
256
*/
257
#define CURVE_SECP160R1_DEFAULT_INIT CURVE_SECP160R1_UECC_LIB_INIT
258
#define CURVE_SECP160R1_DEFAULT_COMPUTE_PRIVATE CURVE_SECP160R1_UECC_LIB_COMPUTE_PRIVATE
259
#define CURVE_SECP160R1_DEFAULT_COMPUTE_PUBLIC CURVE_SECP160R1_UECC_LIB_COMPUTE_PUBLIC
260
#define CURVE_SECP160R1_DEFAULT_COMPUTE_SHARED CURVE_SECP160R1_UECC_LIB_COMPUTE_SHARED
261
262
#if (CURVE_SECP192R1_DEFAULT_LIB_PROVIDER == HW_ECC_ID)
263
#define CURVE_SECP192R1_DEFAULT_INIT CURVE_SECP192R1_HW_ECC_LIB_INIT
264
#define CURVE_SECP192R1_DEFAULT_COMPUTE_PRIVATE CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_PRIVATE
265
#define CURVE_SECP192R1_DEFAULT_COMPUTE_PUBLIC CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_PUBLIC
266
#define CURVE_SECP192R1_DEFAULT_COMPUTE_SHARED CURVE_SECP192R1_HW_ECC_LIB_COMPUTE_SHARED
267
#elif (CURVE_SECP192R1_DEFAULT_LIB_PROVIDER == UECC_LIB_ID)
268
#define CURVE_SECP192R1_DEFAULT_INIT CURVE_SECP192R1_UECC_LIB_INIT
269
#define CURVE_SECP192R1_DEFAULT_COMPUTE_PRIVATE CURVE_SECP192R1_UECC_LIB_COMPUTE_PRIVATE
270
#define CURVE_SECP192R1_DEFAULT_COMPUTE_PUBLIC CURVE_SECP192R1_UECC_LIB_COMPUTE_PUBLIC
271
#define CURVE_SECP192R1_DEFAULT_COMPUTE_SHARED CURVE_SECP192R1_UECC_LIB_COMPUTE_SHARED
272
#else
273
#error "Requested lib provider either not valid or not currently supported."
274
#endif
275
276
277
#if (CURVE_SECP224R1_DEFAULT_LIB_PROVIDER == HW_ECC_ID)
278
#define CURVE_SECP224R1_DEFAULT_INIT CURVE_SECP224R1_HW_ECC_LIB_INIT
279
#define CURVE_SECP224R1_DEFAULT_COMPUTE_PRIVATE CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_PRIVATE
280
#define CURVE_SECP224R1_DEFAULT_COMPUTE_PUBLIC CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_PUBLIC
281
#define CURVE_SECP224R1_DEFAULT_COMPUTE_SHARED CURVE_SECP224R1_HW_ECC_LIB_COMPUTE_SHARED
282
#elif (CURVE_SECP224R1_DEFAULT_LIB_PROVIDER == UECC_LIB_ID)
283
#define CURVE_SECP224R1_DEFAULT_INIT CURVE_SECP224R1_UECC_LIB_INIT
284
#define CURVE_SECP224R1_DEFAULT_COMPUTE_PRIVATE CURVE_SECP224R1_UECC_LIB_COMPUTE_PRIVATE
285
#define CURVE_SECP224R1_DEFAULT_COMPUTE_PUBLIC CURVE_SECP224R1_UECC_LIB_COMPUTE_PUBLIC
286
#define CURVE_SECP224R1_DEFAULT_COMPUTE_SHARED CURVE_SECP224R1_UECC_LIB_COMPUTE_SHARED
287
#else
288
#error "Requested lib provider either not valid or not currently supported."
289
#endif
290
291
292
#if (CURVE_SECP256R1_DEFAULT_LIB_PROVIDER == HW_ECC_ID)
293
#define CURVE_SECP256R1_DEFAULT_INIT CURVE_SECP256R1_HW_ECC_LIB_INIT
294
#define CURVE_SECP256R1_DEFAULT_COMPUTE_PRIVATE CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_PRIVATE
295
#define CURVE_SECP256R1_DEFAULT_COMPUTE_PUBLIC CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_PUBLIC
296
#define CURVE_SECP256R1_DEFAULT_COMPUTE_SHARED CURVE_SECP256R1_HW_ECC_LIB_COMPUTE_SHARED
297
#elif (CURVE_SECP256R1_DEFAULT_LIB_PROVIDER == UECC_LIB_ID)
298
#define CURVE_SECP256R1_DEFAULT_INIT CURVE_SECP256R1_UECC_LIB_INIT
299
#define CURVE_SECP256R1_DEFAULT_COMPUTE_PRIVATE CURVE_SECP256R1_UECC_LIB_COMPUTE_PRIVATE
300
#define CURVE_SECP256R1_DEFAULT_COMPUTE_PUBLIC CURVE_SECP256R1_UECC_LIB_COMPUTE_PUBLIC
301
#define CURVE_SECP256R1_DEFAULT_COMPUTE_SHARED CURVE_SECP256R1_UECC_LIB_COMPUTE_SHARED
302
#else
303
#error "Requested lib provider either not valid or not currently supported."
304
#endif
305
306
307
#define CURVE_SECP256K1_DEFAULT_INIT CURVE_SECP256K1_UECC_LIB_INIT
308
#define CURVE_SECP256K1_DEFAULT_COMPUTE_PRIVATE CURVE_SECP256K1_UECC_LIB_COMPUTE_PRIVATE
309
#define CURVE_SECP256K1_DEFAULT_COMPUTE_PUBLIC CURVE_SECP256K1_UECC_LIB_COMPUTE_PUBLIC
310
#define CURVE_SECP256K1_DEFAULT_COMPUTE_SHARED CURVE_SECP256K1_UECC_LIB_COMPUTE_SHARED
311
312
313
#if (CURVE_25519_DEFAULT_LIB_PROVIDER == HW_ECC_ID)
314
#define CURVE_25519_DEFAULT_INIT CURVE_25519_HW_ECC_LIB_INIT
315
#define CURVE_25519_DEFAULT_COMPUTE_PRIVATE CURVE_25519_HW_ECC_LIB_COMPUTE_PRIVATE
316
#define CURVE_25519_DEFAULT_COMPUTE_PUBLIC CURVE_25519_HW_ECC_LIB_COMPUTE_PUBLIC
317
#define CURVE_25519_DEFAULT_COMPUTE_SHARED CURVE_25519_HW_ECC_LIB_COMPUTE_SHARED
318
#elif (CURVE_25519_DEFAULT_LIB_PROVIDER == SODIUM_LIB_ID)
319
#define CURVE_25519_DEFAULT_INIT CURVE_25519_SODIUM_LIB_INIT
320
#define CURVE_25519_DEFAULT_COMPUTE_PRIVATE CURVE_25519_SODIUM_LIB_COMPUTE_PRIVATE
321
#define CURVE_25519_DEFAULT_COMPUTE_PUBLIC CURVE_25519_SODIUM_LIB_COMPUTE_PUBLIC
322
#define CURVE_25519_DEFAULT_COMPUTE_SHARED CURVE_25519_SODIUM_LIB_COMPUTE_SHARED
323
#else
324
#error "Requested lib provider either not valid or not currently supported."
325
#endif
326
327
328
#endif
/* SDK_CRYPTO_INCLUDE_CRYPTO_ECC_PROVIDER_FUNCTION_MAP_H_ */
329
Generated on Tue Oct 24 2023 10:38:23 for SmartSnippets DA1459x SDK by
1.8.16