@@ -220,16 +220,39 @@ unsafe extern "C" fn parsec_provider_signature_settable_params(
220
220
_provkey : VOID_PTR ,
221
221
) -> * const OSSL_PARAM {
222
222
static ONCE_INIT : std:: sync:: Once = std:: sync:: Once :: new ( ) ;
223
- static mut SIGCTX_GETTABLE_TABLE : [ OSSL_PARAM ; 3 ] = [ ossl_param ! ( ) ; 3 ] ;
223
+ static mut SIGCTX_SETTABLE_TABLE : [ OSSL_PARAM ; 3 ] = [ ossl_param ! ( ) ; 3 ] ;
224
224
225
225
ONCE_INIT . call_once ( || {
226
- SIGCTX_GETTABLE_TABLE = [
226
+ SIGCTX_SETTABLE_TABLE = [
227
227
ossl_param ! ( OSSL_SIGNATURE_PARAM_PAD_MODE , OSSL_PARAM_UTF8_STRING ) ,
228
228
ossl_param ! ( OSSL_SIGNATURE_PARAM_PSS_SALTLEN , OSSL_PARAM_UTF8_STRING ) ,
229
229
ossl_param ! ( ) ,
230
230
] ;
231
231
} ) ;
232
- SIGCTX_GETTABLE_TABLE . as_ptr ( ) as _
232
+ SIGCTX_SETTABLE_TABLE . as_ptr ( ) as _
233
+ }
234
+
235
+ unsafe extern "C" fn parsec_provider_signature_ecdsa_settable_params (
236
+ _ctx : VOID_PTR ,
237
+ _provkey : VOID_PTR ,
238
+ ) -> * const OSSL_PARAM {
239
+ static ONCE_INIT : std:: sync:: Once = std:: sync:: Once :: new ( ) ;
240
+ static mut SIGCTX_SETTABLE_TABLE : [ OSSL_PARAM ; 1 ] = [ ossl_param ! ( ) ; 1 ] ;
241
+
242
+ ONCE_INIT . call_once ( || {
243
+ SIGCTX_SETTABLE_TABLE = [ ossl_param ! ( ) ] ;
244
+ } ) ;
245
+ SIGCTX_SETTABLE_TABLE . as_ptr ( ) as _
246
+ }
247
+
248
+ /*
249
+ Sets the context parameters for ECDSA signature
250
+ */
251
+ pub unsafe extern "C" fn parsec_provider_signature_ecdsa_set_params (
252
+ _keydata : VOID_PTR ,
253
+ _params : * const OSSL_PARAM ,
254
+ ) -> std:: os:: raw:: c_int {
255
+ OPENSSL_SUCCESS
233
256
}
234
257
235
258
/*
@@ -309,9 +332,12 @@ pub type SignatureDigestSignInitPtr = unsafe extern "C" fn(
309
332
310
333
const OSSL_FUNC_SIGNATURE_SETTABLE_PARAMS_PTR : SignatureSettableParamsPtr =
311
334
parsec_provider_signature_settable_params;
312
-
335
+ const OSSL_FUNC_SIGNATURE_ECDSA_SETTABLE_PARAMS_PTR : SignatureSettableParamsPtr =
336
+ parsec_provider_signature_ecdsa_settable_params;
313
337
const OSSL_FUNC_SIGNATURE_SET_PARAMS_PTR : SignatureSetParamsPtr =
314
338
parsec_provider_signature_set_params;
339
+ const OSSL_FUNC_SIGNATURE_ECDSA_SET_PARAMS_PTR : SignatureSetParamsPtr =
340
+ parsec_provider_signature_ecdsa_set_params;
315
341
pub type SignatureSettableParamsPtr = unsafe extern "C" fn ( VOID_PTR , VOID_PTR ) -> * const OSSL_PARAM ;
316
342
317
343
pub type SignatureSetParamsPtr =
@@ -355,11 +381,41 @@ const PARSEC_PROVIDER_SIGN_IMPL: [OSSL_DISPATCH; 7] = [
355
381
ossl_dispatch ! ( ) ,
356
382
] ;
357
383
384
+ const PARSEC_PROVIDER_SIGN_ECDSA_IMPL : [ OSSL_DISPATCH ; 7 ] = [
385
+ unsafe { ossl_dispatch ! ( OSSL_FUNC_SIGNATURE_NEWCTX , OSSL_FUNC_SIGNATURE_NEWCTX_PTR ) } ,
386
+ unsafe { ossl_dispatch ! ( OSSL_FUNC_SIGNATURE_FREECTX , OSSL_FUNC_SIGNATURE_FREECTX_PTR ) } ,
387
+ unsafe {
388
+ ossl_dispatch ! (
389
+ OSSL_FUNC_SIGNATURE_DIGEST_SIGN ,
390
+ OSSL_FUNC_SIGNATURE_DIGEST_SIGN_PTR
391
+ )
392
+ } ,
393
+ unsafe {
394
+ ossl_dispatch ! (
395
+ OSSL_FUNC_SIGNATURE_DIGEST_SIGN_INIT ,
396
+ OSSL_FUNC_SIGNATURE_DIGEST_SIGN_INIT_PTR
397
+ )
398
+ } ,
399
+ unsafe {
400
+ ossl_dispatch ! (
401
+ OSSL_FUNC_SIGNATURE_SETTABLE_CTX_PARAMS ,
402
+ OSSL_FUNC_SIGNATURE_ECDSA_SETTABLE_PARAMS_PTR
403
+ )
404
+ } ,
405
+ unsafe {
406
+ ossl_dispatch ! (
407
+ OSSL_FUNC_SIGNATURE_SET_CTX_PARAMS ,
408
+ OSSL_FUNC_SIGNATURE_ECDSA_SET_PARAMS_PTR
409
+ )
410
+ } ,
411
+ ossl_dispatch ! ( ) ,
412
+ ] ;
413
+
358
414
pub const PARSEC_PROVIDER_SIGNATURE : [ OSSL_ALGORITHM ; 3 ] = [
359
415
ossl_algorithm ! (
360
416
PARSEC_PROVIDER_ECDSA_NAME ,
361
417
PARSEC_PROVIDER_DFLT_PROPERTIES ,
362
- PARSEC_PROVIDER_SIGN_IMPL ,
418
+ PARSEC_PROVIDER_SIGN_ECDSA_IMPL ,
363
419
PARSEC_PROVIDER_DESCRIPTION_ECDSA
364
420
) ,
365
421
ossl_algorithm ! (
0 commit comments