From de4a1d8d970810e920778cbbf701f6ad5bb9f493 Mon Sep 17 00:00:00 2001 From: Wolfgang Beck Date: Fri, 20 Dec 2024 14:17:38 +1000 Subject: [PATCH] Add key-type specific en- / decoder Signed-off-by: Wolfgang Beck --- .../decoder_make.fragment | 3 + .../encoder_make.fragment | 3 + .../oqs_prov.h/endecoder_functions.fragment | 6 + .../oqsprov/oqsdecoders.inc/make.fragment | 3 + .../oqsprov/oqsencoders.inc/make.fragment | 3 + oqsprov/oqs_decode_der2key.c | 69 ++++++ oqsprov/oqs_encode_key2any.c | 102 ++++++-- oqsprov/oqs_prov.h | 218 ++++++++++++++++++ oqsprov/oqs_sig.c | 3 +- oqsprov/oqsdecoders.inc | 119 +++++++--- oqsprov/oqsencoders.inc | 51 ++++ oqsprov/oqsprov.c | 9 +- test/oqs_test_endecode.c | 7 +- 13 files changed, 539 insertions(+), 57 deletions(-) diff --git a/oqs-template/oqsprov/oqs_decode_der2key.c/decoder_make.fragment b/oqs-template/oqsprov/oqs_decode_der2key.c/decoder_make.fragment index de9a8feb..ee6e3180 100644 --- a/oqs-template/oqsprov/oqs_decode_der2key.c/decoder_make.fragment +++ b/oqs-template/oqsprov/oqs_decode_der2key.c/decoder_make.fragment @@ -13,13 +13,16 @@ MAKE_DECODER({% if hybrid['hybrid_group'].startswith('x') %}_ecx{% else %}_ecp{% {% for sig in config['sigs'] %} {%- for variant in sig['variants'] %} +MAKE_DECODER(, "{{ variant['name'] }}", {{ variant['name'] }}, oqsx, type_specific_keypair); MAKE_DECODER(, "{{ variant['name'] }}", {{ variant['name'] }}, oqsx, PrivateKeyInfo); MAKE_DECODER(, "{{ variant['name'] }}", {{ variant['name'] }}, oqsx, SubjectPublicKeyInfo); {%- for classical_alg in variant['mix_with'] %} +MAKE_DECODER(, "{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, type_specific_keypair); MAKE_DECODER(, "{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, PrivateKeyInfo); MAKE_DECODER(, "{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, SubjectPublicKeyInfo); {%- endfor -%} {%- for composite_alg in variant['composite'] %} +MAKE_DECODER(, "{{ variant['name'] }}_{{ composite_alg['name'] }}", {{ variant['name'] }}_{{ composite_alg['name'] }}, oqsx, type_specific_keypair); MAKE_DECODER(, "{{ variant['name'] }}_{{ composite_alg['name'] }}", {{ variant['name'] }}_{{ composite_alg['name'] }}, oqsx, PrivateKeyInfo); MAKE_DECODER(, "{{ variant['name'] }}_{{ composite_alg['name'] }}", {{ variant['name'] }}_{{ composite_alg['name'] }}, oqsx, SubjectPublicKeyInfo); {%- endfor -%} diff --git a/oqs-template/oqsprov/oqs_encode_key2any.c/encoder_make.fragment b/oqs-template/oqsprov/oqs_encode_key2any.c/encoder_make.fragment index ac02bb91..5f1dc40d 100644 --- a/oqs-template/oqsprov/oqs_encode_key2any.c/encoder_make.fragment +++ b/oqs-template/oqsprov/oqs_encode_key2any.c/encoder_make.fragment @@ -22,6 +22,7 @@ MAKE_TEXT_ENCODER({% if hybrid['hybrid_group'].startswith('x') %}_ecx{% else %}_ #endif /* OQS_KEM_ENCODERS */ {% for sig in config['sigs'] %} {%- for variant in sig['variants'] %} +MAKE_ENCODER(, {{ variant['name'] }}, oqsx, type_specific_keypair, der); MAKE_ENCODER(, {{ variant['name'] }}, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, {{ variant['name'] }}, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, {{ variant['name'] }}, oqsx, PrivateKeyInfo, der); @@ -30,6 +31,7 @@ MAKE_ENCODER(, {{ variant['name'] }}, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, {{ variant['name'] }}, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, {{ variant['name'] }}); {%- for classical_alg in variant['mix_with'] %} +MAKE_ENCODER(, {{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, type_specific_keypair, der); MAKE_ENCODER(, {{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, {{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, {{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, PrivateKeyInfo, der); @@ -39,6 +41,7 @@ MAKE_ENCODER(, {{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, SubjectP MAKE_TEXT_ENCODER(, {{ classical_alg['name'] }}_{{ variant['name'] }}); {%- endfor -%} {%- for composite_alg in variant['composite'] %} +MAKE_ENCODER(, {{ variant['name'] }}_{{ composite_alg['name'] }}, oqsx, type_specific_keypair, der); MAKE_ENCODER(, {{ variant['name'] }}_{{ composite_alg['name'] }}, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, {{ variant['name'] }}_{{ composite_alg['name'] }}, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, {{ variant['name'] }}_{{ composite_alg['name'] }}, oqsx, PrivateKeyInfo, der); diff --git a/oqs-template/oqsprov/oqs_prov.h/endecoder_functions.fragment b/oqs-template/oqsprov/oqs_prov.h/endecoder_functions.fragment index 6244ab99..433e47c9 100644 --- a/oqs-template/oqsprov/oqs_prov.h/endecoder_functions.fragment +++ b/oqs-template/oqsprov/oqs_prov.h/endecoder_functions.fragment @@ -28,6 +28,7 @@ extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_{% if 'standard_name' {% for sig in config['sigs'] %} {%- for variant in sig['variants'] %} +extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_PrivateKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; @@ -35,9 +36,11 @@ extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_EncryptedPrivateKeyInfo_ extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_SubjectPublicKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_text_encoder_functions[]; +extern const OSSL_DISPATCH oqs_type_specific_keypair_der_to_{{ variant['name'] }}_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_{{ variant['name'] }}_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_{{ variant['name'] }}_decoder_functions[]; {%- for classical_alg in variant['mix_with'] -%} +extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_to_PrivateKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; @@ -45,10 +48,12 @@ extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }} extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_to_SubjectPublicKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_to_text_encoder_functions[]; +extern const OSSL_DISPATCH oqs_type_specific_keypair_der_to_{{ classical_alg['name'] }}_{{ variant['name'] }}_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_{{ classical_alg['name'] }}_{{ variant['name'] }}_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_{{ classical_alg['name'] }}_{{ variant['name'] }}_decoder_functions[]; {%- endfor -%} {%- for composite_alg in variant['composite'] -%} +extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_{{ composite_alg['name'] }}_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_{{ composite_alg['name'] }}_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_{{ composite_alg['name'] }}_to_PrivateKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_{{ composite_alg['name'] }}_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; @@ -56,6 +61,7 @@ extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_{{ composite_alg['name'] }} extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_{{ composite_alg['name'] }}_to_SubjectPublicKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_{{ composite_alg['name'] }}_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_{{ composite_alg['name'] }}_to_text_encoder_functions[]; +extern const OSSL_DISPATCH oqs_type_specific_keypair_der_to_{{ variant['name'] }}_{{ composite_alg['name'] }}_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_{{ variant['name'] }}_{{ composite_alg['name'] }}_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_{{ variant['name'] }}_{{ composite_alg['name'] }}_decoder_functions[]; {%- endfor -%} diff --git a/oqs-template/oqsprov/oqsdecoders.inc/make.fragment b/oqs-template/oqsprov/oqsdecoders.inc/make.fragment index eb97ea54..8ef6cbeb 100644 --- a/oqs-template/oqsprov/oqsdecoders.inc/make.fragment +++ b/oqs-template/oqsprov/oqsdecoders.inc/make.fragment @@ -16,13 +16,16 @@ DECODER_w_structure({% if 'standard_name' in hybrid %}"{{hybrid['standard_name'] {% for sig in config['sigs'] %} {%- for variant in sig['variants'] %} #ifdef OQS_ENABLE_SIG_{{ variant['oqs_meth']|replace("OQS_SIG_alg_","") }} +DECODER_w_structure("{{ variant['name'] }}", der, type_specific_keypair, {{ variant['name'] }}), DECODER_w_structure("{{ variant['name'] }}", der, PrivateKeyInfo, {{ variant['name'] }}), DECODER_w_structure("{{ variant['name'] }}", der, SubjectPublicKeyInfo, {{ variant['name'] }}), {%- for classical_alg in variant['mix_with'] -%} +DECODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", der, type_specific_keypair, {{ classical_alg['name'] }}_{{ variant['name'] }}), DECODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", der, PrivateKeyInfo, {{ classical_alg['name'] }}_{{ variant['name'] }}), DECODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", der, SubjectPublicKeyInfo, {{ classical_alg['name'] }}_{{ variant['name'] }}), {%- endfor %} {%- for composite_alg in variant['composite'] -%} +DECODER_w_structure("{{ variant['name'] }}_{{ composite_alg['name'] }}", der, type_specific_keypair, {{ variant['name'] }}_{{ composite_alg['name'] }}), DECODER_w_structure("{{ variant['name'] }}_{{ composite_alg['name'] }}", der, PrivateKeyInfo, {{ variant['name'] }}_{{ composite_alg['name'] }}), DECODER_w_structure("{{ variant['name'] }}_{{ composite_alg['name'] }}", der, SubjectPublicKeyInfo, {{ variant['name'] }}_{{ composite_alg['name'] }}), {%- endfor %} diff --git a/oqs-template/oqsprov/oqsencoders.inc/make.fragment b/oqs-template/oqsprov/oqsencoders.inc/make.fragment index aa91da1b..d1583105 100644 --- a/oqs-template/oqsprov/oqsencoders.inc/make.fragment +++ b/oqs-template/oqsprov/oqsencoders.inc/make.fragment @@ -27,6 +27,7 @@ ENCODER_TEXT({% if 'standard_name' in hybrid %}"{{hybrid['standard_name']}}"{% e {% for sig in config['sigs'] %} {%- for variant in sig['variants'] %} #ifdef OQS_ENABLE_SIG_{{ variant['oqs_meth']|replace("OQS_SIG_alg_","") }} +ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, der, type_specific_keypair), ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, der, PrivateKeyInfo), ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, pem, PrivateKeyInfo), ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, der, EncryptedPrivateKeyInfo), @@ -35,6 +36,7 @@ ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, der, Subject ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, pem, SubjectPublicKeyInfo), ENCODER_TEXT("{{ variant['name'] }}", {{ variant['name'] }}), {% for classical_alg in variant['mix_with'] -%} +ENCODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, der, type_specific_keypair), ENCODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, der, PrivateKeyInfo), ENCODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, pem, PrivateKeyInfo), ENCODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, der, EncryptedPrivateKeyInfo), @@ -44,6 +46,7 @@ ENCODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ clas ENCODER_TEXT("{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}), {% endfor -%} {% for composite_alg in variant['composite'] -%} +ENCODER_w_structure("{{ variant['name'] }}_{{ composite_alg['name'] }}", {{ variant['name'] }}_{{ composite_alg['name'] }}, der, type_specific_keypair), ENCODER_w_structure("{{ variant['name'] }}_{{ composite_alg['name'] }}", {{ variant['name'] }}_{{ composite_alg['name'] }}, der, PrivateKeyInfo), ENCODER_w_structure("{{ variant['name'] }}_{{ composite_alg['name'] }}", {{ variant['name'] }}_{{ composite_alg['name'] }}, pem, PrivateKeyInfo), ENCODER_w_structure("{{ variant['name'] }}_{{ composite_alg['name'] }}", {{ variant['name'] }}_{{ composite_alg['name'] }}, der, EncryptedPrivateKeyInfo), diff --git a/oqsprov/oqs_decode_der2key.c b/oqsprov/oqs_decode_der2key.c index fb3c7116..a1c9ffa9 100644 --- a/oqsprov/oqs_decode_der2key.c +++ b/oqsprov/oqs_decode_der2key.c @@ -1,5 +1,7 @@ /* * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) [2024,] 2024, Oracle and/or its affiliates. + * All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -653,134 +655,201 @@ MAKE_DECODER(_ecp, "p521_hqc256", p521_hqc256, oqsx, PrivateKeyInfo); MAKE_DECODER(_ecp, "p521_hqc256", p521_hqc256, oqsx, SubjectPublicKeyInfo); #endif /* OQS_KEM_ENCODERS */ +MAKE_DECODER(, "mldsa44", mldsa44, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa44", mldsa44, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa44", mldsa44, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p256_mldsa44", p256_mldsa44, oqsx, type_specific_keypair); MAKE_DECODER(, "p256_mldsa44", p256_mldsa44, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p256_mldsa44", p256_mldsa44, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "rsa3072_mldsa44", rsa3072_mldsa44, oqsx, type_specific_keypair); MAKE_DECODER(, "rsa3072_mldsa44", rsa3072_mldsa44, oqsx, PrivateKeyInfo); MAKE_DECODER(, "rsa3072_mldsa44", rsa3072_mldsa44, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa44_pss2048", mldsa44_pss2048, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa44_pss2048", mldsa44_pss2048, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa44_pss2048", mldsa44_pss2048, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa44_rsa2048", mldsa44_rsa2048, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa44_rsa2048", mldsa44_rsa2048, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa44_rsa2048", mldsa44_rsa2048, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa44_ed25519", mldsa44_ed25519, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa44_ed25519", mldsa44_ed25519, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa44_ed25519", mldsa44_ed25519, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa44_p256", mldsa44_p256, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa44_p256", mldsa44_p256, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa44_p256", mldsa44_p256, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa44_bp256", mldsa44_bp256, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa44_bp256", mldsa44_bp256, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa44_bp256", mldsa44_bp256, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa65", mldsa65, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa65", mldsa65, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa65", mldsa65, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p384_mldsa65", p384_mldsa65, oqsx, type_specific_keypair); MAKE_DECODER(, "p384_mldsa65", p384_mldsa65, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p384_mldsa65", p384_mldsa65, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa65_pss3072", mldsa65_pss3072, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa65_pss3072", mldsa65_pss3072, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa65_pss3072", mldsa65_pss3072, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa65_rsa3072", mldsa65_rsa3072, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa65_rsa3072", mldsa65_rsa3072, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa65_rsa3072", mldsa65_rsa3072, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa65_p256", mldsa65_p256, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa65_p256", mldsa65_p256, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa65_p256", mldsa65_p256, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa65_bp256", mldsa65_bp256, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa65_bp256", mldsa65_bp256, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa65_bp256", mldsa65_bp256, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa65_ed25519", mldsa65_ed25519, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa65_ed25519", mldsa65_ed25519, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa65_ed25519", mldsa65_ed25519, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa87", mldsa87, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa87", mldsa87, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa87", mldsa87, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p521_mldsa87", p521_mldsa87, oqsx, type_specific_keypair); MAKE_DECODER(, "p521_mldsa87", p521_mldsa87, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p521_mldsa87", p521_mldsa87, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa87_p384", mldsa87_p384, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa87_p384", mldsa87_p384, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa87_p384", mldsa87_p384, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa87_bp384", mldsa87_bp384, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa87_bp384", mldsa87_bp384, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa87_bp384", mldsa87_bp384, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mldsa87_ed448", mldsa87_ed448, oqsx, type_specific_keypair); MAKE_DECODER(, "mldsa87_ed448", mldsa87_ed448, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mldsa87_ed448", mldsa87_ed448, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon512", falcon512, oqsx, type_specific_keypair); MAKE_DECODER(, "falcon512", falcon512, oqsx, PrivateKeyInfo); MAKE_DECODER(, "falcon512", falcon512, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p256_falcon512", p256_falcon512, oqsx, type_specific_keypair); MAKE_DECODER(, "p256_falcon512", p256_falcon512, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p256_falcon512", p256_falcon512, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "rsa3072_falcon512", rsa3072_falcon512, oqsx, + type_specific_keypair); MAKE_DECODER(, "rsa3072_falcon512", rsa3072_falcon512, oqsx, PrivateKeyInfo); MAKE_DECODER(, "rsa3072_falcon512", rsa3072_falcon512, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "falconpadded512", falconpadded512, oqsx, type_specific_keypair); MAKE_DECODER(, "falconpadded512", falconpadded512, oqsx, PrivateKeyInfo); MAKE_DECODER(, "falconpadded512", falconpadded512, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p256_falconpadded512", p256_falconpadded512, oqsx, + type_specific_keypair); MAKE_DECODER(, "p256_falconpadded512", p256_falconpadded512, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p256_falconpadded512", p256_falconpadded512, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "rsa3072_falconpadded512", rsa3072_falconpadded512, oqsx, + type_specific_keypair); MAKE_DECODER(, "rsa3072_falconpadded512", rsa3072_falconpadded512, oqsx, PrivateKeyInfo); MAKE_DECODER(, "rsa3072_falconpadded512", rsa3072_falconpadded512, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon1024", falcon1024, oqsx, type_specific_keypair); MAKE_DECODER(, "falcon1024", falcon1024, oqsx, PrivateKeyInfo); MAKE_DECODER(, "falcon1024", falcon1024, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p521_falcon1024", p521_falcon1024, oqsx, type_specific_keypair); MAKE_DECODER(, "p521_falcon1024", p521_falcon1024, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p521_falcon1024", p521_falcon1024, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "falconpadded1024", falconpadded1024, oqsx, + type_specific_keypair); MAKE_DECODER(, "falconpadded1024", falconpadded1024, oqsx, PrivateKeyInfo); MAKE_DECODER(, "falconpadded1024", falconpadded1024, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p521_falconpadded1024", p521_falconpadded1024, oqsx, + type_specific_keypair); MAKE_DECODER(, "p521_falconpadded1024", p521_falconpadded1024, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p521_falconpadded1024", p521_falconpadded1024, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "sphincssha2128fsimple", sphincssha2128fsimple, oqsx, + type_specific_keypair); MAKE_DECODER(, "sphincssha2128fsimple", sphincssha2128fsimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "sphincssha2128fsimple", sphincssha2128fsimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, oqsx, + type_specific_keypair); MAKE_DECODER(, "p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "rsa3072_sphincssha2128fsimple", rsa3072_sphincssha2128fsimple, + oqsx, type_specific_keypair); MAKE_DECODER(, "rsa3072_sphincssha2128fsimple", rsa3072_sphincssha2128fsimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "rsa3072_sphincssha2128fsimple", rsa3072_sphincssha2128fsimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "sphincssha2128ssimple", sphincssha2128ssimple, oqsx, + type_specific_keypair); MAKE_DECODER(, "sphincssha2128ssimple", sphincssha2128ssimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "sphincssha2128ssimple", sphincssha2128ssimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, oqsx, + type_specific_keypair); MAKE_DECODER(, "p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "rsa3072_sphincssha2128ssimple", rsa3072_sphincssha2128ssimple, + oqsx, type_specific_keypair); MAKE_DECODER(, "rsa3072_sphincssha2128ssimple", rsa3072_sphincssha2128ssimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "rsa3072_sphincssha2128ssimple", rsa3072_sphincssha2128ssimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "sphincssha2192fsimple", sphincssha2192fsimple, oqsx, + type_specific_keypair); MAKE_DECODER(, "sphincssha2192fsimple", sphincssha2192fsimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "sphincssha2192fsimple", sphincssha2192fsimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p384_sphincssha2192fsimple", p384_sphincssha2192fsimple, oqsx, + type_specific_keypair); MAKE_DECODER(, "p384_sphincssha2192fsimple", p384_sphincssha2192fsimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p384_sphincssha2192fsimple", p384_sphincssha2192fsimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "sphincsshake128fsimple", sphincsshake128fsimple, oqsx, + type_specific_keypair); MAKE_DECODER(, "sphincsshake128fsimple", sphincsshake128fsimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "sphincsshake128fsimple", sphincsshake128fsimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, oqsx, + type_specific_keypair); MAKE_DECODER(, "p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "rsa3072_sphincsshake128fsimple", rsa3072_sphincsshake128fsimple, + oqsx, type_specific_keypair); MAKE_DECODER(, "rsa3072_sphincsshake128fsimple", rsa3072_sphincsshake128fsimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "rsa3072_sphincsshake128fsimple", rsa3072_sphincsshake128fsimple, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mayo1", mayo1, oqsx, type_specific_keypair); MAKE_DECODER(, "mayo1", mayo1, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mayo1", mayo1, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p256_mayo1", p256_mayo1, oqsx, type_specific_keypair); MAKE_DECODER(, "p256_mayo1", p256_mayo1, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p256_mayo1", p256_mayo1, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mayo2", mayo2, oqsx, type_specific_keypair); MAKE_DECODER(, "mayo2", mayo2, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mayo2", mayo2, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p256_mayo2", p256_mayo2, oqsx, type_specific_keypair); MAKE_DECODER(, "p256_mayo2", p256_mayo2, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p256_mayo2", p256_mayo2, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mayo3", mayo3, oqsx, type_specific_keypair); MAKE_DECODER(, "mayo3", mayo3, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mayo3", mayo3, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p384_mayo3", p384_mayo3, oqsx, type_specific_keypair); MAKE_DECODER(, "p384_mayo3", p384_mayo3, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p384_mayo3", p384_mayo3, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "mayo5", mayo5, oqsx, type_specific_keypair); MAKE_DECODER(, "mayo5", mayo5, oqsx, PrivateKeyInfo); MAKE_DECODER(, "mayo5", mayo5, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "p521_mayo5", p521_mayo5, oqsx, type_specific_keypair); MAKE_DECODER(, "p521_mayo5", p521_mayo5, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p521_mayo5", p521_mayo5, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "CROSSrsdp128balanced", CROSSrsdp128balanced, oqsx, + type_specific_keypair); MAKE_DECODER(, "CROSSrsdp128balanced", CROSSrsdp128balanced, oqsx, PrivateKeyInfo); MAKE_DECODER(, "CROSSrsdp128balanced", CROSSrsdp128balanced, oqsx, diff --git a/oqsprov/oqs_encode_key2any.c b/oqsprov/oqs_encode_key2any.c index e051c842..1bda40b7 100644 --- a/oqsprov/oqs_encode_key2any.c +++ b/oqsprov/oqs_encode_key2any.c @@ -4,6 +4,8 @@ * OQS OpenSSL 3 provider * * Code strongly inspired by OpenSSL endecoder. + * Copyright (c) [2024,] 2024, Oracle and/or its affiliates. + * All Rights Reserved. * * ToDo: Adding hybrid alg support */ @@ -365,33 +367,35 @@ static int key_to_spki_pem_pub_bio(BIO *out, const void *key, int key_nid, * Note that these functions completely ignore p2s, and rather rely entirely * on k2d to do the complete work. */ -/* -static int key_to_type_specific_der_bio(BIO *out, const void *key, - int key_nid, + +static int key_to_type_specific_der_bio(BIO *out, const void *key, int key_nid, ossl_unused const char *pemname, key_to_paramstring_fn *p2s, i2d_of_void *k2d, - struct key2any_ctx_st *ctx) -{ - unsigned char *der = NULL; - int derlen; - int ret; + struct key2any_ctx_st *ctx) { + int ret = 0; + void *str = NULL; + int strtype = V_ASN1_UNDEF; + PKCS8_PRIV_KEY_INFO *p8info; OQS_ENC_PRINTF("OQS ENC provider: key_to_type_specific_der_bio called\n"); - if ((derlen = k2d(key, &der)) <= 0) { - ERR_raise(ERR_LIB_USER, ERR_R_MALLOC_FAILURE); + if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters, &str, &strtype)) return 0; - } - ret = BIO_write(out, der, derlen); - OPENSSL_free(der); + p8info = key_to_p8info(key, key_nid, str, strtype, k2d); + + if (p8info != NULL) + ret = i2d_PKCS8_PRIV_KEY_INFO_bio(out, p8info); + else + free_asn1_data(strtype, str); + + PKCS8_PRIV_KEY_INFO_free(p8info); + return ret > 0; } -#define key_to_type_specific_der_priv_bio key_to_type_specific_der_bio -#define key_to_type_specific_der_pub_bio key_to_type_specific_der_bio -#define key_to_type_specific_der_param_bio key_to_type_specific_der_bio +/* static int key_to_type_specific_pem_bio_cb(BIO *out, const void *key, int key_nid, const char *pemname, key_to_paramstring_fn *p2s, @@ -1422,6 +1426,21 @@ static int key2any_encode(struct key2any_ctx_st *ctx, OSSL_CORE_BIO *cout, return ret; } +#define oqsx_type_specific_priv_to_der oqsx_epki_priv_to_der +#define oqsx_type_specific_pub_to_der oqsx_spki_pub_to_der +static int key_to_type_specific_der_priv_bio( + BIO *out, const void *key, int key_nid, ossl_unused const char *pemname, + key_to_paramstring_fn *p2s, i2d_of_void *k2d, struct key2any_ctx_st *ctx) { + return key_to_type_specific_der_bio(out, key, key_nid, pemname, p2s, k2d, + ctx); +} + +static int key_to_type_specific_der_pub_bio( + BIO *out, const void *key, int key_nid, ossl_unused const char *pemname, + key_to_paramstring_fn *p2s, i2d_of_void *k2d, struct key2any_ctx_st *ctx) { + return key_to_spki_der_pub_bio(out, key, key_nid, pemname, p2s, k2d, ctx); +} + #define DO_PRIVATE_KEY_selection_mask OSSL_KEYMGMT_SELECT_PRIVATE_KEY #define DO_PRIVATE_KEY(impl, type, kind, output) \ if ((selection & DO_PRIVATE_KEY_selection_mask) != 0) \ @@ -2226,6 +2245,7 @@ MAKE_ENCODER(_ecp, p521_hqc256, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(_ecp, p521_hqc256); #endif /* OQS_KEM_ENCODERS */ +MAKE_ENCODER(, mldsa44, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa44, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa44, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44, oqsx, PrivateKeyInfo, der); @@ -2233,6 +2253,7 @@ MAKE_ENCODER(, mldsa44, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa44, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa44); +MAKE_ENCODER(, p256_mldsa44, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p256_mldsa44, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p256_mldsa44, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p256_mldsa44, oqsx, PrivateKeyInfo, der); @@ -2240,6 +2261,7 @@ MAKE_ENCODER(, p256_mldsa44, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p256_mldsa44, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p256_mldsa44, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p256_mldsa44); +MAKE_ENCODER(, rsa3072_mldsa44, oqsx, type_specific_keypair, der); MAKE_ENCODER(, rsa3072_mldsa44, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, rsa3072_mldsa44, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_mldsa44, oqsx, PrivateKeyInfo, der); @@ -2247,6 +2269,7 @@ MAKE_ENCODER(, rsa3072_mldsa44, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_mldsa44, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, rsa3072_mldsa44, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, rsa3072_mldsa44); +MAKE_ENCODER(, mldsa44_pss2048, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa44_pss2048, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa44_pss2048, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_pss2048, oqsx, PrivateKeyInfo, der); @@ -2254,6 +2277,7 @@ MAKE_ENCODER(, mldsa44_pss2048, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_pss2048, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa44_pss2048, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa44_pss2048); +MAKE_ENCODER(, mldsa44_rsa2048, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa44_rsa2048, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa44_rsa2048, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_rsa2048, oqsx, PrivateKeyInfo, der); @@ -2261,6 +2285,7 @@ MAKE_ENCODER(, mldsa44_rsa2048, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_rsa2048, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa44_rsa2048, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa44_rsa2048); +MAKE_ENCODER(, mldsa44_ed25519, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa44_ed25519, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa44_ed25519, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_ed25519, oqsx, PrivateKeyInfo, der); @@ -2268,6 +2293,7 @@ MAKE_ENCODER(, mldsa44_ed25519, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_ed25519, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa44_ed25519, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa44_ed25519); +MAKE_ENCODER(, mldsa44_p256, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa44_p256, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa44_p256, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_p256, oqsx, PrivateKeyInfo, der); @@ -2275,6 +2301,7 @@ MAKE_ENCODER(, mldsa44_p256, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_p256, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa44_p256, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa44_p256); +MAKE_ENCODER(, mldsa44_bp256, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa44_bp256, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa44_bp256, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_bp256, oqsx, PrivateKeyInfo, der); @@ -2282,6 +2309,7 @@ MAKE_ENCODER(, mldsa44_bp256, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa44_bp256, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa44_bp256, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa44_bp256); +MAKE_ENCODER(, mldsa65, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa65, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa65, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65, oqsx, PrivateKeyInfo, der); @@ -2289,6 +2317,7 @@ MAKE_ENCODER(, mldsa65, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa65, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa65); +MAKE_ENCODER(, p384_mldsa65, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p384_mldsa65, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p384_mldsa65, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p384_mldsa65, oqsx, PrivateKeyInfo, der); @@ -2296,6 +2325,7 @@ MAKE_ENCODER(, p384_mldsa65, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p384_mldsa65, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p384_mldsa65, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p384_mldsa65); +MAKE_ENCODER(, mldsa65_pss3072, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa65_pss3072, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa65_pss3072, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_pss3072, oqsx, PrivateKeyInfo, der); @@ -2303,6 +2333,7 @@ MAKE_ENCODER(, mldsa65_pss3072, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_pss3072, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa65_pss3072, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa65_pss3072); +MAKE_ENCODER(, mldsa65_rsa3072, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa65_rsa3072, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa65_rsa3072, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_rsa3072, oqsx, PrivateKeyInfo, der); @@ -2310,6 +2341,7 @@ MAKE_ENCODER(, mldsa65_rsa3072, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_rsa3072, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa65_rsa3072, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa65_rsa3072); +MAKE_ENCODER(, mldsa65_p256, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa65_p256, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa65_p256, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_p256, oqsx, PrivateKeyInfo, der); @@ -2317,6 +2349,7 @@ MAKE_ENCODER(, mldsa65_p256, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_p256, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa65_p256, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa65_p256); +MAKE_ENCODER(, mldsa65_bp256, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa65_bp256, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa65_bp256, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_bp256, oqsx, PrivateKeyInfo, der); @@ -2324,6 +2357,7 @@ MAKE_ENCODER(, mldsa65_bp256, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_bp256, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa65_bp256, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa65_bp256); +MAKE_ENCODER(, mldsa65_ed25519, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa65_ed25519, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa65_ed25519, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_ed25519, oqsx, PrivateKeyInfo, der); @@ -2331,6 +2365,7 @@ MAKE_ENCODER(, mldsa65_ed25519, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa65_ed25519, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa65_ed25519, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa65_ed25519); +MAKE_ENCODER(, mldsa87, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa87, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa87, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa87, oqsx, PrivateKeyInfo, der); @@ -2338,6 +2373,7 @@ MAKE_ENCODER(, mldsa87, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa87, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa87, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa87); +MAKE_ENCODER(, p521_mldsa87, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p521_mldsa87, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p521_mldsa87, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p521_mldsa87, oqsx, PrivateKeyInfo, der); @@ -2345,6 +2381,7 @@ MAKE_ENCODER(, p521_mldsa87, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p521_mldsa87, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p521_mldsa87, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p521_mldsa87); +MAKE_ENCODER(, mldsa87_p384, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa87_p384, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa87_p384, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa87_p384, oqsx, PrivateKeyInfo, der); @@ -2352,6 +2389,7 @@ MAKE_ENCODER(, mldsa87_p384, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa87_p384, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa87_p384, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa87_p384); +MAKE_ENCODER(, mldsa87_bp384, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa87_bp384, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa87_bp384, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa87_bp384, oqsx, PrivateKeyInfo, der); @@ -2359,6 +2397,7 @@ MAKE_ENCODER(, mldsa87_bp384, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa87_bp384, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa87_bp384, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa87_bp384); +MAKE_ENCODER(, mldsa87_ed448, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mldsa87_ed448, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mldsa87_ed448, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mldsa87_ed448, oqsx, PrivateKeyInfo, der); @@ -2366,6 +2405,7 @@ MAKE_ENCODER(, mldsa87_ed448, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mldsa87_ed448, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mldsa87_ed448, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mldsa87_ed448); +MAKE_ENCODER(, falcon512, oqsx, type_specific_keypair, der); MAKE_ENCODER(, falcon512, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, falcon512, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, falcon512, oqsx, PrivateKeyInfo, der); @@ -2373,6 +2413,7 @@ MAKE_ENCODER(, falcon512, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, falcon512, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, falcon512, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, falcon512); +MAKE_ENCODER(, p256_falcon512, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p256_falcon512, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p256_falcon512, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p256_falcon512, oqsx, PrivateKeyInfo, der); @@ -2380,6 +2421,7 @@ MAKE_ENCODER(, p256_falcon512, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p256_falcon512, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p256_falcon512, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p256_falcon512); +MAKE_ENCODER(, rsa3072_falcon512, oqsx, type_specific_keypair, der); MAKE_ENCODER(, rsa3072_falcon512, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, rsa3072_falcon512, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_falcon512, oqsx, PrivateKeyInfo, der); @@ -2387,6 +2429,7 @@ MAKE_ENCODER(, rsa3072_falcon512, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_falcon512, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, rsa3072_falcon512, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, rsa3072_falcon512); +MAKE_ENCODER(, falconpadded512, oqsx, type_specific_keypair, der); MAKE_ENCODER(, falconpadded512, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, falconpadded512, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, falconpadded512, oqsx, PrivateKeyInfo, der); @@ -2394,6 +2437,7 @@ MAKE_ENCODER(, falconpadded512, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, falconpadded512, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, falconpadded512, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, falconpadded512); +MAKE_ENCODER(, p256_falconpadded512, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p256_falconpadded512, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p256_falconpadded512, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p256_falconpadded512, oqsx, PrivateKeyInfo, der); @@ -2401,6 +2445,7 @@ MAKE_ENCODER(, p256_falconpadded512, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p256_falconpadded512, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p256_falconpadded512, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p256_falconpadded512); +MAKE_ENCODER(, rsa3072_falconpadded512, oqsx, type_specific_keypair, der); MAKE_ENCODER(, rsa3072_falconpadded512, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, rsa3072_falconpadded512, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_falconpadded512, oqsx, PrivateKeyInfo, der); @@ -2408,6 +2453,7 @@ MAKE_ENCODER(, rsa3072_falconpadded512, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_falconpadded512, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, rsa3072_falconpadded512, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, rsa3072_falconpadded512); +MAKE_ENCODER(, falcon1024, oqsx, type_specific_keypair, der); MAKE_ENCODER(, falcon1024, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, falcon1024, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, falcon1024, oqsx, PrivateKeyInfo, der); @@ -2415,6 +2461,7 @@ MAKE_ENCODER(, falcon1024, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, falcon1024, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, falcon1024, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, falcon1024); +MAKE_ENCODER(, p521_falcon1024, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p521_falcon1024, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p521_falcon1024, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p521_falcon1024, oqsx, PrivateKeyInfo, der); @@ -2422,6 +2469,7 @@ MAKE_ENCODER(, p521_falcon1024, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p521_falcon1024, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p521_falcon1024, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p521_falcon1024); +MAKE_ENCODER(, falconpadded1024, oqsx, type_specific_keypair, der); MAKE_ENCODER(, falconpadded1024, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, falconpadded1024, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, falconpadded1024, oqsx, PrivateKeyInfo, der); @@ -2429,6 +2477,7 @@ MAKE_ENCODER(, falconpadded1024, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, falconpadded1024, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, falconpadded1024, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, falconpadded1024); +MAKE_ENCODER(, p521_falconpadded1024, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p521_falconpadded1024, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p521_falconpadded1024, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p521_falconpadded1024, oqsx, PrivateKeyInfo, der); @@ -2436,6 +2485,7 @@ MAKE_ENCODER(, p521_falconpadded1024, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p521_falconpadded1024, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p521_falconpadded1024, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p521_falconpadded1024); +MAKE_ENCODER(, sphincssha2128fsimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, sphincssha2128fsimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, sphincssha2128fsimple, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, sphincssha2128fsimple, oqsx, PrivateKeyInfo, der); @@ -2443,6 +2493,7 @@ MAKE_ENCODER(, sphincssha2128fsimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, sphincssha2128fsimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, sphincssha2128fsimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, sphincssha2128fsimple); +MAKE_ENCODER(, p256_sphincssha2128fsimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p256_sphincssha2128fsimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p256_sphincssha2128fsimple, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p256_sphincssha2128fsimple, oqsx, PrivateKeyInfo, der); @@ -2450,6 +2501,7 @@ MAKE_ENCODER(, p256_sphincssha2128fsimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p256_sphincssha2128fsimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p256_sphincssha2128fsimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p256_sphincssha2128fsimple); +MAKE_ENCODER(, rsa3072_sphincssha2128fsimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, rsa3072_sphincssha2128fsimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, rsa3072_sphincssha2128fsimple, oqsx, EncryptedPrivateKeyInfo, @@ -2459,6 +2511,7 @@ MAKE_ENCODER(, rsa3072_sphincssha2128fsimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_sphincssha2128fsimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, rsa3072_sphincssha2128fsimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, rsa3072_sphincssha2128fsimple); +MAKE_ENCODER(, sphincssha2128ssimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, sphincssha2128ssimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, sphincssha2128ssimple, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, sphincssha2128ssimple, oqsx, PrivateKeyInfo, der); @@ -2466,6 +2519,7 @@ MAKE_ENCODER(, sphincssha2128ssimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, sphincssha2128ssimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, sphincssha2128ssimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, sphincssha2128ssimple); +MAKE_ENCODER(, p256_sphincssha2128ssimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p256_sphincssha2128ssimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p256_sphincssha2128ssimple, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p256_sphincssha2128ssimple, oqsx, PrivateKeyInfo, der); @@ -2473,6 +2527,7 @@ MAKE_ENCODER(, p256_sphincssha2128ssimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p256_sphincssha2128ssimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p256_sphincssha2128ssimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p256_sphincssha2128ssimple); +MAKE_ENCODER(, rsa3072_sphincssha2128ssimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, rsa3072_sphincssha2128ssimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, rsa3072_sphincssha2128ssimple, oqsx, EncryptedPrivateKeyInfo, @@ -2482,6 +2537,7 @@ MAKE_ENCODER(, rsa3072_sphincssha2128ssimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_sphincssha2128ssimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, rsa3072_sphincssha2128ssimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, rsa3072_sphincssha2128ssimple); +MAKE_ENCODER(, sphincssha2192fsimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, sphincssha2192fsimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, sphincssha2192fsimple, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, sphincssha2192fsimple, oqsx, PrivateKeyInfo, der); @@ -2489,6 +2545,7 @@ MAKE_ENCODER(, sphincssha2192fsimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, sphincssha2192fsimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, sphincssha2192fsimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, sphincssha2192fsimple); +MAKE_ENCODER(, p384_sphincssha2192fsimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p384_sphincssha2192fsimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p384_sphincssha2192fsimple, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p384_sphincssha2192fsimple, oqsx, PrivateKeyInfo, der); @@ -2496,6 +2553,7 @@ MAKE_ENCODER(, p384_sphincssha2192fsimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p384_sphincssha2192fsimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p384_sphincssha2192fsimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p384_sphincssha2192fsimple); +MAKE_ENCODER(, sphincsshake128fsimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, sphincsshake128fsimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, sphincsshake128fsimple, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, sphincsshake128fsimple, oqsx, PrivateKeyInfo, der); @@ -2503,6 +2561,7 @@ MAKE_ENCODER(, sphincsshake128fsimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, sphincsshake128fsimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, sphincsshake128fsimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, sphincsshake128fsimple); +MAKE_ENCODER(, p256_sphincsshake128fsimple, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p256_sphincsshake128fsimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p256_sphincsshake128fsimple, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p256_sphincsshake128fsimple, oqsx, PrivateKeyInfo, der); @@ -2510,6 +2569,8 @@ MAKE_ENCODER(, p256_sphincsshake128fsimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p256_sphincsshake128fsimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p256_sphincsshake128fsimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p256_sphincsshake128fsimple); +MAKE_ENCODER(, rsa3072_sphincsshake128fsimple, oqsx, type_specific_keypair, + der); MAKE_ENCODER(, rsa3072_sphincsshake128fsimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, rsa3072_sphincsshake128fsimple, oqsx, EncryptedPrivateKeyInfo, @@ -2519,6 +2580,7 @@ MAKE_ENCODER(, rsa3072_sphincsshake128fsimple, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_sphincsshake128fsimple, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, rsa3072_sphincsshake128fsimple, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, rsa3072_sphincsshake128fsimple); +MAKE_ENCODER(, mayo1, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mayo1, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mayo1, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mayo1, oqsx, PrivateKeyInfo, der); @@ -2526,6 +2588,7 @@ MAKE_ENCODER(, mayo1, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mayo1, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mayo1, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mayo1); +MAKE_ENCODER(, p256_mayo1, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p256_mayo1, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p256_mayo1, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p256_mayo1, oqsx, PrivateKeyInfo, der); @@ -2533,6 +2596,7 @@ MAKE_ENCODER(, p256_mayo1, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p256_mayo1, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p256_mayo1, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p256_mayo1); +MAKE_ENCODER(, mayo2, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mayo2, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mayo2, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mayo2, oqsx, PrivateKeyInfo, der); @@ -2540,6 +2604,7 @@ MAKE_ENCODER(, mayo2, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mayo2, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mayo2, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mayo2); +MAKE_ENCODER(, p256_mayo2, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p256_mayo2, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p256_mayo2, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p256_mayo2, oqsx, PrivateKeyInfo, der); @@ -2547,6 +2612,7 @@ MAKE_ENCODER(, p256_mayo2, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p256_mayo2, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p256_mayo2, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p256_mayo2); +MAKE_ENCODER(, mayo3, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mayo3, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mayo3, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mayo3, oqsx, PrivateKeyInfo, der); @@ -2554,6 +2620,7 @@ MAKE_ENCODER(, mayo3, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mayo3, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mayo3, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mayo3); +MAKE_ENCODER(, p384_mayo3, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p384_mayo3, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p384_mayo3, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p384_mayo3, oqsx, PrivateKeyInfo, der); @@ -2561,6 +2628,7 @@ MAKE_ENCODER(, p384_mayo3, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p384_mayo3, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p384_mayo3, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p384_mayo3); +MAKE_ENCODER(, mayo5, oqsx, type_specific_keypair, der); MAKE_ENCODER(, mayo5, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, mayo5, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, mayo5, oqsx, PrivateKeyInfo, der); @@ -2568,6 +2636,7 @@ MAKE_ENCODER(, mayo5, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, mayo5, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, mayo5, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, mayo5); +MAKE_ENCODER(, p521_mayo5, oqsx, type_specific_keypair, der); MAKE_ENCODER(, p521_mayo5, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, p521_mayo5, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, p521_mayo5, oqsx, PrivateKeyInfo, der); @@ -2575,6 +2644,7 @@ MAKE_ENCODER(, p521_mayo5, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p521_mayo5, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p521_mayo5, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p521_mayo5); +MAKE_ENCODER(, CROSSrsdp128balanced, oqsx, type_specific_keypair, der); MAKE_ENCODER(, CROSSrsdp128balanced, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, CROSSrsdp128balanced, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, CROSSrsdp128balanced, oqsx, PrivateKeyInfo, der); diff --git a/oqsprov/oqs_prov.h b/oqsprov/oqs_prov.h index 79effe6d..8c7b3fd4 100644 --- a/oqsprov/oqs_prov.h +++ b/oqsprov/oqs_prov.h @@ -4,6 +4,8 @@ * Main oqsprovider header file * * Code strongly inspired by OpenSSL crypto/ecx key handler. + * Copyright (c) [2024,] 2024, Oracle and/or its affiliates. + * All Rights Reserved. * */ @@ -978,6 +980,8 @@ extern const OSSL_DISPATCH #endif /* OQS_KEM_ENCODERS */ +extern const OSSL_DISPATCH + oqs_mldsa44_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -991,10 +995,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa44_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa44_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa44_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa44_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p256_mldsa44_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_mldsa44_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1008,10 +1016,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p256_mldsa44_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_mldsa44_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p256_mldsa44_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p256_mldsa44_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p256_mldsa44_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_rsa3072_mldsa44_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_rsa3072_mldsa44_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1025,10 +1037,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_rsa3072_mldsa44_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_rsa3072_mldsa44_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_rsa3072_mldsa44_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_rsa3072_mldsa44_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_rsa3072_mldsa44_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa44_pss2048_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_pss2048_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1042,10 +1058,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa44_pss2048_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_pss2048_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa44_pss2048_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa44_pss2048_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa44_pss2048_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa44_rsa2048_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_rsa2048_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1059,10 +1079,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa44_rsa2048_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_rsa2048_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa44_rsa2048_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa44_rsa2048_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa44_rsa2048_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa44_ed25519_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_ed25519_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1076,10 +1100,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa44_ed25519_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_ed25519_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa44_ed25519_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa44_ed25519_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa44_ed25519_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa44_p256_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_p256_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1093,10 +1121,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa44_p256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_p256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa44_p256_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa44_p256_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa44_p256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa44_bp256_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_bp256_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1110,10 +1142,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa44_bp256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa44_bp256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa44_bp256_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa44_bp256_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa44_bp256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa65_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1127,10 +1163,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa65_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa65_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa65_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa65_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p384_mldsa65_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p384_mldsa65_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1144,10 +1184,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p384_mldsa65_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p384_mldsa65_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p384_mldsa65_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p384_mldsa65_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p384_mldsa65_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa65_pss3072_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_pss3072_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1161,10 +1205,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa65_pss3072_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_pss3072_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa65_pss3072_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa65_pss3072_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa65_pss3072_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa65_rsa3072_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_rsa3072_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1178,10 +1226,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa65_rsa3072_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_rsa3072_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa65_rsa3072_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa65_rsa3072_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa65_rsa3072_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa65_p256_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_p256_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1195,10 +1247,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa65_p256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_p256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa65_p256_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa65_p256_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa65_p256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa65_bp256_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_bp256_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1212,10 +1268,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa65_bp256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_bp256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa65_bp256_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa65_bp256_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa65_bp256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa65_ed25519_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_ed25519_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1229,10 +1289,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa65_ed25519_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa65_ed25519_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa65_ed25519_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa65_ed25519_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa65_ed25519_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa87_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa87_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1246,10 +1310,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa87_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa87_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa87_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa87_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa87_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p521_mldsa87_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p521_mldsa87_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1263,10 +1331,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p521_mldsa87_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p521_mldsa87_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p521_mldsa87_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p521_mldsa87_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p521_mldsa87_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa87_p384_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa87_p384_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1280,10 +1352,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa87_p384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa87_p384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa87_p384_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa87_p384_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa87_p384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa87_bp384_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa87_bp384_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1297,10 +1373,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa87_bp384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa87_bp384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa87_bp384_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa87_bp384_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa87_bp384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mldsa87_ed448_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa87_ed448_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1314,10 +1394,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mldsa87_ed448_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mldsa87_ed448_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mldsa87_ed448_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mldsa87_ed448_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mldsa87_ed448_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_falcon512_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1331,10 +1415,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_falcon512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_falcon512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_falcon512_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_falcon512_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_falcon512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p256_falcon512_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_falcon512_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1348,10 +1436,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p256_falcon512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_falcon512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p256_falcon512_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p256_falcon512_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p256_falcon512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_rsa3072_falcon512_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_rsa3072_falcon512_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1365,10 +1457,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_rsa3072_falcon512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_rsa3072_falcon512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_rsa3072_falcon512_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_rsa3072_falcon512_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_rsa3072_falcon512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falconpadded512_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_falconpadded512_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1382,10 +1478,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_falconpadded512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_falconpadded512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_falconpadded512_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_falconpadded512_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_falconpadded512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p256_falconpadded512_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_falconpadded512_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1399,10 +1499,15 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p256_falconpadded512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_falconpadded512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p256_falconpadded512_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p256_falconpadded512_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p256_falconpadded512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_rsa3072_falconpadded512_to_type_specific_keypair_der_encoder_functions + []; extern const OSSL_DISPATCH oqs_rsa3072_falconpadded512_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1419,10 +1524,15 @@ extern const OSSL_DISPATCH oqs_rsa3072_falconpadded512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_rsa3072_falconpadded512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_rsa3072_falconpadded512_decoder_functions + []; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_rsa3072_falconpadded512_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_rsa3072_falconpadded512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_falcon1024_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1436,10 +1546,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_falcon1024_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_falcon1024_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_falcon1024_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_falcon1024_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_falcon1024_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p521_falcon1024_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p521_falcon1024_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1453,10 +1567,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p521_falcon1024_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p521_falcon1024_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p521_falcon1024_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p521_falcon1024_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p521_falcon1024_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falconpadded1024_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_falconpadded1024_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1470,10 +1588,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_falconpadded1024_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_falconpadded1024_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_falconpadded1024_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_falconpadded1024_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_falconpadded1024_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p521_falconpadded1024_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p521_falconpadded1024_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1490,10 +1612,14 @@ extern const OSSL_DISPATCH oqs_p521_falconpadded1024_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p521_falconpadded1024_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p521_falconpadded1024_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p521_falconpadded1024_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p521_falconpadded1024_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_sphincssha2128fsimple_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_sphincssha2128fsimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1510,10 +1636,15 @@ extern const OSSL_DISPATCH oqs_sphincssha2128fsimple_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_sphincssha2128fsimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_sphincssha2128fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_sphincssha2128fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_sphincssha2128fsimple_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p256_sphincssha2128fsimple_to_type_specific_keypair_der_encoder_functions + []; extern const OSSL_DISPATCH oqs_p256_sphincssha2128fsimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1532,11 +1663,17 @@ extern const OSSL_DISPATCH []; extern const OSSL_DISPATCH oqs_p256_sphincssha2128fsimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p256_sphincssha2128fsimple_decoder_functions + []; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p256_sphincssha2128fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p256_sphincssha2128fsimple_decoder_functions []; +extern const OSSL_DISPATCH + oqs_rsa3072_sphincssha2128fsimple_to_type_specific_keypair_der_encoder_functions + []; extern const OSSL_DISPATCH oqs_rsa3072_sphincssha2128fsimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1555,11 +1692,16 @@ extern const OSSL_DISPATCH []; extern const OSSL_DISPATCH oqs_rsa3072_sphincssha2128fsimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_rsa3072_sphincssha2128fsimple_decoder_functions + []; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_rsa3072_sphincssha2128fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_rsa3072_sphincssha2128fsimple_decoder_functions []; +extern const OSSL_DISPATCH + oqs_sphincssha2128ssimple_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_sphincssha2128ssimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1576,10 +1718,15 @@ extern const OSSL_DISPATCH oqs_sphincssha2128ssimple_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_sphincssha2128ssimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_sphincssha2128ssimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_sphincssha2128ssimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_sphincssha2128ssimple_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p256_sphincssha2128ssimple_to_type_specific_keypair_der_encoder_functions + []; extern const OSSL_DISPATCH oqs_p256_sphincssha2128ssimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1598,11 +1745,17 @@ extern const OSSL_DISPATCH []; extern const OSSL_DISPATCH oqs_p256_sphincssha2128ssimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p256_sphincssha2128ssimple_decoder_functions + []; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p256_sphincssha2128ssimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p256_sphincssha2128ssimple_decoder_functions []; +extern const OSSL_DISPATCH + oqs_rsa3072_sphincssha2128ssimple_to_type_specific_keypair_der_encoder_functions + []; extern const OSSL_DISPATCH oqs_rsa3072_sphincssha2128ssimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1621,11 +1774,16 @@ extern const OSSL_DISPATCH []; extern const OSSL_DISPATCH oqs_rsa3072_sphincssha2128ssimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_rsa3072_sphincssha2128ssimple_decoder_functions + []; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_rsa3072_sphincssha2128ssimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_rsa3072_sphincssha2128ssimple_decoder_functions []; +extern const OSSL_DISPATCH + oqs_sphincssha2192fsimple_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_sphincssha2192fsimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1642,10 +1800,15 @@ extern const OSSL_DISPATCH oqs_sphincssha2192fsimple_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_sphincssha2192fsimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_sphincssha2192fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_sphincssha2192fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_sphincssha2192fsimple_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p384_sphincssha2192fsimple_to_type_specific_keypair_der_encoder_functions + []; extern const OSSL_DISPATCH oqs_p384_sphincssha2192fsimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1664,11 +1827,16 @@ extern const OSSL_DISPATCH []; extern const OSSL_DISPATCH oqs_p384_sphincssha2192fsimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p384_sphincssha2192fsimple_decoder_functions + []; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p384_sphincssha2192fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p384_sphincssha2192fsimple_decoder_functions []; +extern const OSSL_DISPATCH + oqs_sphincsshake128fsimple_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_sphincsshake128fsimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1685,10 +1853,15 @@ extern const OSSL_DISPATCH oqs_sphincsshake128fsimple_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_sphincsshake128fsimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_sphincsshake128fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_sphincsshake128fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_sphincsshake128fsimple_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p256_sphincsshake128fsimple_to_type_specific_keypair_der_encoder_functions + []; extern const OSSL_DISPATCH oqs_p256_sphincsshake128fsimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1707,11 +1880,17 @@ extern const OSSL_DISPATCH []; extern const OSSL_DISPATCH oqs_p256_sphincsshake128fsimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p256_sphincsshake128fsimple_decoder_functions + []; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p256_sphincsshake128fsimple_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p256_sphincsshake128fsimple_decoder_functions []; +extern const OSSL_DISPATCH + oqs_rsa3072_sphincsshake128fsimple_to_type_specific_keypair_der_encoder_functions + []; extern const OSSL_DISPATCH oqs_rsa3072_sphincsshake128fsimple_to_PrivateKeyInfo_der_encoder_functions []; @@ -1732,12 +1911,17 @@ extern const OSSL_DISPATCH []; extern const OSSL_DISPATCH oqs_rsa3072_sphincsshake128fsimple_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_rsa3072_sphincsshake128fsimple_decoder_functions + []; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_rsa3072_sphincsshake128fsimple_decoder_functions []; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_rsa3072_sphincsshake128fsimple_decoder_functions []; +extern const OSSL_DISPATCH + oqs_mayo1_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo1_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo1_to_PrivateKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH @@ -1749,9 +1933,13 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mayo1_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo1_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mayo1_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mayo1_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mayo1_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p256_mayo1_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_mayo1_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1765,10 +1953,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p256_mayo1_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_mayo1_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p256_mayo1_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p256_mayo1_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p256_mayo1_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mayo2_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo2_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo2_to_PrivateKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH @@ -1780,9 +1972,13 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mayo2_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo2_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mayo2_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mayo2_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mayo2_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p256_mayo2_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_mayo2_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1796,10 +1992,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p256_mayo2_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p256_mayo2_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p256_mayo2_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p256_mayo2_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p256_mayo2_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mayo3_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo3_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo3_to_PrivateKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH @@ -1811,9 +2011,13 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mayo3_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo3_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mayo3_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mayo3_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mayo3_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p384_mayo3_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p384_mayo3_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1827,10 +2031,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p384_mayo3_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p384_mayo3_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p384_mayo3_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p384_mayo3_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p384_mayo3_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_mayo5_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo5_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo5_to_PrivateKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH @@ -1842,9 +2050,13 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_mayo5_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_mayo5_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_mayo5_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_mayo5_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_mayo5_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_p521_mayo5_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_p521_mayo5_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1858,10 +2070,14 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_p521_mayo5_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_p521_mayo5_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_p521_mayo5_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p521_mayo5_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p521_mayo5_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_CROSSrsdp128balanced_to_type_specific_keypair_der_encoder_functions[]; extern const OSSL_DISPATCH oqs_CROSSrsdp128balanced_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1875,6 +2091,8 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_CROSSrsdp128balanced_to_SubjectPublicKeyInfo_pem_encoder_functions[]; extern const OSSL_DISPATCH oqs_CROSSrsdp128balanced_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_type_specific_keypair_der_to_CROSSrsdp128balanced_decoder_functions[]; extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_CROSSrsdp128balanced_decoder_functions[]; extern const OSSL_DISPATCH diff --git a/oqsprov/oqs_sig.c b/oqsprov/oqs_sig.c index 8f3371ca..05e4eaa8 100644 --- a/oqsprov/oqs_sig.c +++ b/oqsprov/oqs_sig.c @@ -1366,7 +1366,8 @@ static const OSSL_PARAM known_settable_ctx_params[] = { #if (OPENSSL_VERSION_PREREQ(3, 2)) OSSL_PARAM_octet_string(OSSL_SIGNATURE_PARAM_CONTEXT_STRING, NULL, 0), #endif - OSSL_PARAM_END}; + OSSL_PARAM_END +}; static const OSSL_PARAM * oqs_sig_settable_ctx_params(ossl_unused void *vpsm2ctx, diff --git a/oqsprov/oqsdecoders.inc b/oqsprov/oqsdecoders.inc index 32f83f86..80eaaa92 100644 --- a/oqsprov/oqsdecoders.inc +++ b/oqsprov/oqsdecoders.inc @@ -4,6 +4,7 @@ * OQS OpenSSL 3 provider decoders * * Code strongly inspired by OpenSSL default provider. + * Copyright (c) [2024,] 2024, Oracle and/or its affiliates. All rights reserved. * */ @@ -144,100 +145,150 @@ DECODER_w_structure("p521_hqc256", der, SubjectPublicKeyInfo, p521_hqc256), #ifdef OQS_ENABLE_SIG_ml_dsa_44 +DECODER_w_structure("mldsa44", der, type_specific_keypair, mldsa44), DECODER_w_structure("mldsa44", der, PrivateKeyInfo, mldsa44), -DECODER_w_structure("mldsa44", der, SubjectPublicKeyInfo, mldsa44),DECODER_w_structure("p256_mldsa44", der, PrivateKeyInfo, p256_mldsa44), -DECODER_w_structure("p256_mldsa44", der, SubjectPublicKeyInfo, p256_mldsa44),DECODER_w_structure("rsa3072_mldsa44", der, PrivateKeyInfo, rsa3072_mldsa44), -DECODER_w_structure("rsa3072_mldsa44", der, SubjectPublicKeyInfo, rsa3072_mldsa44),DECODER_w_structure("mldsa44_pss2048", der, PrivateKeyInfo, mldsa44_pss2048), -DECODER_w_structure("mldsa44_pss2048", der, SubjectPublicKeyInfo, mldsa44_pss2048),DECODER_w_structure("mldsa44_rsa2048", der, PrivateKeyInfo, mldsa44_rsa2048), -DECODER_w_structure("mldsa44_rsa2048", der, SubjectPublicKeyInfo, mldsa44_rsa2048),DECODER_w_structure("mldsa44_ed25519", der, PrivateKeyInfo, mldsa44_ed25519), -DECODER_w_structure("mldsa44_ed25519", der, SubjectPublicKeyInfo, mldsa44_ed25519),DECODER_w_structure("mldsa44_p256", der, PrivateKeyInfo, mldsa44_p256), -DECODER_w_structure("mldsa44_p256", der, SubjectPublicKeyInfo, mldsa44_p256),DECODER_w_structure("mldsa44_bp256", der, PrivateKeyInfo, mldsa44_bp256), +DECODER_w_structure("mldsa44", der, SubjectPublicKeyInfo, mldsa44),DECODER_w_structure("p256_mldsa44", der, type_specific_keypair, p256_mldsa44), +DECODER_w_structure("p256_mldsa44", der, PrivateKeyInfo, p256_mldsa44), +DECODER_w_structure("p256_mldsa44", der, SubjectPublicKeyInfo, p256_mldsa44),DECODER_w_structure("rsa3072_mldsa44", der, type_specific_keypair, rsa3072_mldsa44), +DECODER_w_structure("rsa3072_mldsa44", der, PrivateKeyInfo, rsa3072_mldsa44), +DECODER_w_structure("rsa3072_mldsa44", der, SubjectPublicKeyInfo, rsa3072_mldsa44),DECODER_w_structure("mldsa44_pss2048", der, type_specific_keypair, mldsa44_pss2048), +DECODER_w_structure("mldsa44_pss2048", der, PrivateKeyInfo, mldsa44_pss2048), +DECODER_w_structure("mldsa44_pss2048", der, SubjectPublicKeyInfo, mldsa44_pss2048),DECODER_w_structure("mldsa44_rsa2048", der, type_specific_keypair, mldsa44_rsa2048), +DECODER_w_structure("mldsa44_rsa2048", der, PrivateKeyInfo, mldsa44_rsa2048), +DECODER_w_structure("mldsa44_rsa2048", der, SubjectPublicKeyInfo, mldsa44_rsa2048),DECODER_w_structure("mldsa44_ed25519", der, type_specific_keypair, mldsa44_ed25519), +DECODER_w_structure("mldsa44_ed25519", der, PrivateKeyInfo, mldsa44_ed25519), +DECODER_w_structure("mldsa44_ed25519", der, SubjectPublicKeyInfo, mldsa44_ed25519),DECODER_w_structure("mldsa44_p256", der, type_specific_keypair, mldsa44_p256), +DECODER_w_structure("mldsa44_p256", der, PrivateKeyInfo, mldsa44_p256), +DECODER_w_structure("mldsa44_p256", der, SubjectPublicKeyInfo, mldsa44_p256),DECODER_w_structure("mldsa44_bp256", der, type_specific_keypair, mldsa44_bp256), +DECODER_w_structure("mldsa44_bp256", der, PrivateKeyInfo, mldsa44_bp256), DECODER_w_structure("mldsa44_bp256", der, SubjectPublicKeyInfo, mldsa44_bp256), #endif #ifdef OQS_ENABLE_SIG_ml_dsa_65 +DECODER_w_structure("mldsa65", der, type_specific_keypair, mldsa65), DECODER_w_structure("mldsa65", der, PrivateKeyInfo, mldsa65), -DECODER_w_structure("mldsa65", der, SubjectPublicKeyInfo, mldsa65),DECODER_w_structure("p384_mldsa65", der, PrivateKeyInfo, p384_mldsa65), -DECODER_w_structure("p384_mldsa65", der, SubjectPublicKeyInfo, p384_mldsa65),DECODER_w_structure("mldsa65_pss3072", der, PrivateKeyInfo, mldsa65_pss3072), -DECODER_w_structure("mldsa65_pss3072", der, SubjectPublicKeyInfo, mldsa65_pss3072),DECODER_w_structure("mldsa65_rsa3072", der, PrivateKeyInfo, mldsa65_rsa3072), -DECODER_w_structure("mldsa65_rsa3072", der, SubjectPublicKeyInfo, mldsa65_rsa3072),DECODER_w_structure("mldsa65_p256", der, PrivateKeyInfo, mldsa65_p256), -DECODER_w_structure("mldsa65_p256", der, SubjectPublicKeyInfo, mldsa65_p256),DECODER_w_structure("mldsa65_bp256", der, PrivateKeyInfo, mldsa65_bp256), -DECODER_w_structure("mldsa65_bp256", der, SubjectPublicKeyInfo, mldsa65_bp256),DECODER_w_structure("mldsa65_ed25519", der, PrivateKeyInfo, mldsa65_ed25519), +DECODER_w_structure("mldsa65", der, SubjectPublicKeyInfo, mldsa65),DECODER_w_structure("p384_mldsa65", der, type_specific_keypair, p384_mldsa65), +DECODER_w_structure("p384_mldsa65", der, PrivateKeyInfo, p384_mldsa65), +DECODER_w_structure("p384_mldsa65", der, SubjectPublicKeyInfo, p384_mldsa65),DECODER_w_structure("mldsa65_pss3072", der, type_specific_keypair, mldsa65_pss3072), +DECODER_w_structure("mldsa65_pss3072", der, PrivateKeyInfo, mldsa65_pss3072), +DECODER_w_structure("mldsa65_pss3072", der, SubjectPublicKeyInfo, mldsa65_pss3072),DECODER_w_structure("mldsa65_rsa3072", der, type_specific_keypair, mldsa65_rsa3072), +DECODER_w_structure("mldsa65_rsa3072", der, PrivateKeyInfo, mldsa65_rsa3072), +DECODER_w_structure("mldsa65_rsa3072", der, SubjectPublicKeyInfo, mldsa65_rsa3072),DECODER_w_structure("mldsa65_p256", der, type_specific_keypair, mldsa65_p256), +DECODER_w_structure("mldsa65_p256", der, PrivateKeyInfo, mldsa65_p256), +DECODER_w_structure("mldsa65_p256", der, SubjectPublicKeyInfo, mldsa65_p256),DECODER_w_structure("mldsa65_bp256", der, type_specific_keypair, mldsa65_bp256), +DECODER_w_structure("mldsa65_bp256", der, PrivateKeyInfo, mldsa65_bp256), +DECODER_w_structure("mldsa65_bp256", der, SubjectPublicKeyInfo, mldsa65_bp256),DECODER_w_structure("mldsa65_ed25519", der, type_specific_keypair, mldsa65_ed25519), +DECODER_w_structure("mldsa65_ed25519", der, PrivateKeyInfo, mldsa65_ed25519), DECODER_w_structure("mldsa65_ed25519", der, SubjectPublicKeyInfo, mldsa65_ed25519), #endif #ifdef OQS_ENABLE_SIG_ml_dsa_87 +DECODER_w_structure("mldsa87", der, type_specific_keypair, mldsa87), DECODER_w_structure("mldsa87", der, PrivateKeyInfo, mldsa87), -DECODER_w_structure("mldsa87", der, SubjectPublicKeyInfo, mldsa87),DECODER_w_structure("p521_mldsa87", der, PrivateKeyInfo, p521_mldsa87), -DECODER_w_structure("p521_mldsa87", der, SubjectPublicKeyInfo, p521_mldsa87),DECODER_w_structure("mldsa87_p384", der, PrivateKeyInfo, mldsa87_p384), -DECODER_w_structure("mldsa87_p384", der, SubjectPublicKeyInfo, mldsa87_p384),DECODER_w_structure("mldsa87_bp384", der, PrivateKeyInfo, mldsa87_bp384), -DECODER_w_structure("mldsa87_bp384", der, SubjectPublicKeyInfo, mldsa87_bp384),DECODER_w_structure("mldsa87_ed448", der, PrivateKeyInfo, mldsa87_ed448), +DECODER_w_structure("mldsa87", der, SubjectPublicKeyInfo, mldsa87),DECODER_w_structure("p521_mldsa87", der, type_specific_keypair, p521_mldsa87), +DECODER_w_structure("p521_mldsa87", der, PrivateKeyInfo, p521_mldsa87), +DECODER_w_structure("p521_mldsa87", der, SubjectPublicKeyInfo, p521_mldsa87),DECODER_w_structure("mldsa87_p384", der, type_specific_keypair, mldsa87_p384), +DECODER_w_structure("mldsa87_p384", der, PrivateKeyInfo, mldsa87_p384), +DECODER_w_structure("mldsa87_p384", der, SubjectPublicKeyInfo, mldsa87_p384),DECODER_w_structure("mldsa87_bp384", der, type_specific_keypair, mldsa87_bp384), +DECODER_w_structure("mldsa87_bp384", der, PrivateKeyInfo, mldsa87_bp384), +DECODER_w_structure("mldsa87_bp384", der, SubjectPublicKeyInfo, mldsa87_bp384),DECODER_w_structure("mldsa87_ed448", der, type_specific_keypair, mldsa87_ed448), +DECODER_w_structure("mldsa87_ed448", der, PrivateKeyInfo, mldsa87_ed448), DECODER_w_structure("mldsa87_ed448", der, SubjectPublicKeyInfo, mldsa87_ed448), #endif #ifdef OQS_ENABLE_SIG_falcon_512 +DECODER_w_structure("falcon512", der, type_specific_keypair, falcon512), DECODER_w_structure("falcon512", der, PrivateKeyInfo, falcon512), -DECODER_w_structure("falcon512", der, SubjectPublicKeyInfo, falcon512),DECODER_w_structure("p256_falcon512", der, PrivateKeyInfo, p256_falcon512), -DECODER_w_structure("p256_falcon512", der, SubjectPublicKeyInfo, p256_falcon512),DECODER_w_structure("rsa3072_falcon512", der, PrivateKeyInfo, rsa3072_falcon512), +DECODER_w_structure("falcon512", der, SubjectPublicKeyInfo, falcon512),DECODER_w_structure("p256_falcon512", der, type_specific_keypair, p256_falcon512), +DECODER_w_structure("p256_falcon512", der, PrivateKeyInfo, p256_falcon512), +DECODER_w_structure("p256_falcon512", der, SubjectPublicKeyInfo, p256_falcon512),DECODER_w_structure("rsa3072_falcon512", der, type_specific_keypair, rsa3072_falcon512), +DECODER_w_structure("rsa3072_falcon512", der, PrivateKeyInfo, rsa3072_falcon512), DECODER_w_structure("rsa3072_falcon512", der, SubjectPublicKeyInfo, rsa3072_falcon512), #endif #ifdef OQS_ENABLE_SIG_falcon_padded_512 +DECODER_w_structure("falconpadded512", der, type_specific_keypair, falconpadded512), DECODER_w_structure("falconpadded512", der, PrivateKeyInfo, falconpadded512), -DECODER_w_structure("falconpadded512", der, SubjectPublicKeyInfo, falconpadded512),DECODER_w_structure("p256_falconpadded512", der, PrivateKeyInfo, p256_falconpadded512), -DECODER_w_structure("p256_falconpadded512", der, SubjectPublicKeyInfo, p256_falconpadded512),DECODER_w_structure("rsa3072_falconpadded512", der, PrivateKeyInfo, rsa3072_falconpadded512), +DECODER_w_structure("falconpadded512", der, SubjectPublicKeyInfo, falconpadded512),DECODER_w_structure("p256_falconpadded512", der, type_specific_keypair, p256_falconpadded512), +DECODER_w_structure("p256_falconpadded512", der, PrivateKeyInfo, p256_falconpadded512), +DECODER_w_structure("p256_falconpadded512", der, SubjectPublicKeyInfo, p256_falconpadded512),DECODER_w_structure("rsa3072_falconpadded512", der, type_specific_keypair, rsa3072_falconpadded512), +DECODER_w_structure("rsa3072_falconpadded512", der, PrivateKeyInfo, rsa3072_falconpadded512), DECODER_w_structure("rsa3072_falconpadded512", der, SubjectPublicKeyInfo, rsa3072_falconpadded512), #endif #ifdef OQS_ENABLE_SIG_falcon_1024 +DECODER_w_structure("falcon1024", der, type_specific_keypair, falcon1024), DECODER_w_structure("falcon1024", der, PrivateKeyInfo, falcon1024), -DECODER_w_structure("falcon1024", der, SubjectPublicKeyInfo, falcon1024),DECODER_w_structure("p521_falcon1024", der, PrivateKeyInfo, p521_falcon1024), +DECODER_w_structure("falcon1024", der, SubjectPublicKeyInfo, falcon1024),DECODER_w_structure("p521_falcon1024", der, type_specific_keypair, p521_falcon1024), +DECODER_w_structure("p521_falcon1024", der, PrivateKeyInfo, p521_falcon1024), DECODER_w_structure("p521_falcon1024", der, SubjectPublicKeyInfo, p521_falcon1024), #endif #ifdef OQS_ENABLE_SIG_falcon_padded_1024 +DECODER_w_structure("falconpadded1024", der, type_specific_keypair, falconpadded1024), DECODER_w_structure("falconpadded1024", der, PrivateKeyInfo, falconpadded1024), -DECODER_w_structure("falconpadded1024", der, SubjectPublicKeyInfo, falconpadded1024),DECODER_w_structure("p521_falconpadded1024", der, PrivateKeyInfo, p521_falconpadded1024), +DECODER_w_structure("falconpadded1024", der, SubjectPublicKeyInfo, falconpadded1024),DECODER_w_structure("p521_falconpadded1024", der, type_specific_keypair, p521_falconpadded1024), +DECODER_w_structure("p521_falconpadded1024", der, PrivateKeyInfo, p521_falconpadded1024), DECODER_w_structure("p521_falconpadded1024", der, SubjectPublicKeyInfo, p521_falconpadded1024), #endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_128f_simple +DECODER_w_structure("sphincssha2128fsimple", der, type_specific_keypair, sphincssha2128fsimple), DECODER_w_structure("sphincssha2128fsimple", der, PrivateKeyInfo, sphincssha2128fsimple), -DECODER_w_structure("sphincssha2128fsimple", der, SubjectPublicKeyInfo, sphincssha2128fsimple),DECODER_w_structure("p256_sphincssha2128fsimple", der, PrivateKeyInfo, p256_sphincssha2128fsimple), -DECODER_w_structure("p256_sphincssha2128fsimple", der, SubjectPublicKeyInfo, p256_sphincssha2128fsimple),DECODER_w_structure("rsa3072_sphincssha2128fsimple", der, PrivateKeyInfo, rsa3072_sphincssha2128fsimple), +DECODER_w_structure("sphincssha2128fsimple", der, SubjectPublicKeyInfo, sphincssha2128fsimple),DECODER_w_structure("p256_sphincssha2128fsimple", der, type_specific_keypair, p256_sphincssha2128fsimple), +DECODER_w_structure("p256_sphincssha2128fsimple", der, PrivateKeyInfo, p256_sphincssha2128fsimple), +DECODER_w_structure("p256_sphincssha2128fsimple", der, SubjectPublicKeyInfo, p256_sphincssha2128fsimple),DECODER_w_structure("rsa3072_sphincssha2128fsimple", der, type_specific_keypair, rsa3072_sphincssha2128fsimple), +DECODER_w_structure("rsa3072_sphincssha2128fsimple", der, PrivateKeyInfo, rsa3072_sphincssha2128fsimple), DECODER_w_structure("rsa3072_sphincssha2128fsimple", der, SubjectPublicKeyInfo, rsa3072_sphincssha2128fsimple), #endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_128s_simple +DECODER_w_structure("sphincssha2128ssimple", der, type_specific_keypair, sphincssha2128ssimple), DECODER_w_structure("sphincssha2128ssimple", der, PrivateKeyInfo, sphincssha2128ssimple), -DECODER_w_structure("sphincssha2128ssimple", der, SubjectPublicKeyInfo, sphincssha2128ssimple),DECODER_w_structure("p256_sphincssha2128ssimple", der, PrivateKeyInfo, p256_sphincssha2128ssimple), -DECODER_w_structure("p256_sphincssha2128ssimple", der, SubjectPublicKeyInfo, p256_sphincssha2128ssimple),DECODER_w_structure("rsa3072_sphincssha2128ssimple", der, PrivateKeyInfo, rsa3072_sphincssha2128ssimple), +DECODER_w_structure("sphincssha2128ssimple", der, SubjectPublicKeyInfo, sphincssha2128ssimple),DECODER_w_structure("p256_sphincssha2128ssimple", der, type_specific_keypair, p256_sphincssha2128ssimple), +DECODER_w_structure("p256_sphincssha2128ssimple", der, PrivateKeyInfo, p256_sphincssha2128ssimple), +DECODER_w_structure("p256_sphincssha2128ssimple", der, SubjectPublicKeyInfo, p256_sphincssha2128ssimple),DECODER_w_structure("rsa3072_sphincssha2128ssimple", der, type_specific_keypair, rsa3072_sphincssha2128ssimple), +DECODER_w_structure("rsa3072_sphincssha2128ssimple", der, PrivateKeyInfo, rsa3072_sphincssha2128ssimple), DECODER_w_structure("rsa3072_sphincssha2128ssimple", der, SubjectPublicKeyInfo, rsa3072_sphincssha2128ssimple), #endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_192f_simple +DECODER_w_structure("sphincssha2192fsimple", der, type_specific_keypair, sphincssha2192fsimple), DECODER_w_structure("sphincssha2192fsimple", der, PrivateKeyInfo, sphincssha2192fsimple), -DECODER_w_structure("sphincssha2192fsimple", der, SubjectPublicKeyInfo, sphincssha2192fsimple),DECODER_w_structure("p384_sphincssha2192fsimple", der, PrivateKeyInfo, p384_sphincssha2192fsimple), +DECODER_w_structure("sphincssha2192fsimple", der, SubjectPublicKeyInfo, sphincssha2192fsimple),DECODER_w_structure("p384_sphincssha2192fsimple", der, type_specific_keypair, p384_sphincssha2192fsimple), +DECODER_w_structure("p384_sphincssha2192fsimple", der, PrivateKeyInfo, p384_sphincssha2192fsimple), DECODER_w_structure("p384_sphincssha2192fsimple", der, SubjectPublicKeyInfo, p384_sphincssha2192fsimple), #endif #ifdef OQS_ENABLE_SIG_sphincs_shake_128f_simple +DECODER_w_structure("sphincsshake128fsimple", der, type_specific_keypair, sphincsshake128fsimple), DECODER_w_structure("sphincsshake128fsimple", der, PrivateKeyInfo, sphincsshake128fsimple), -DECODER_w_structure("sphincsshake128fsimple", der, SubjectPublicKeyInfo, sphincsshake128fsimple),DECODER_w_structure("p256_sphincsshake128fsimple", der, PrivateKeyInfo, p256_sphincsshake128fsimple), -DECODER_w_structure("p256_sphincsshake128fsimple", der, SubjectPublicKeyInfo, p256_sphincsshake128fsimple),DECODER_w_structure("rsa3072_sphincsshake128fsimple", der, PrivateKeyInfo, rsa3072_sphincsshake128fsimple), +DECODER_w_structure("sphincsshake128fsimple", der, SubjectPublicKeyInfo, sphincsshake128fsimple),DECODER_w_structure("p256_sphincsshake128fsimple", der, type_specific_keypair, p256_sphincsshake128fsimple), +DECODER_w_structure("p256_sphincsshake128fsimple", der, PrivateKeyInfo, p256_sphincsshake128fsimple), +DECODER_w_structure("p256_sphincsshake128fsimple", der, SubjectPublicKeyInfo, p256_sphincsshake128fsimple),DECODER_w_structure("rsa3072_sphincsshake128fsimple", der, type_specific_keypair, rsa3072_sphincsshake128fsimple), +DECODER_w_structure("rsa3072_sphincsshake128fsimple", der, PrivateKeyInfo, rsa3072_sphincsshake128fsimple), DECODER_w_structure("rsa3072_sphincsshake128fsimple", der, SubjectPublicKeyInfo, rsa3072_sphincsshake128fsimple), #endif #ifdef OQS_ENABLE_SIG_mayo_1 +DECODER_w_structure("mayo1", der, type_specific_keypair, mayo1), DECODER_w_structure("mayo1", der, PrivateKeyInfo, mayo1), -DECODER_w_structure("mayo1", der, SubjectPublicKeyInfo, mayo1),DECODER_w_structure("p256_mayo1", der, PrivateKeyInfo, p256_mayo1), +DECODER_w_structure("mayo1", der, SubjectPublicKeyInfo, mayo1),DECODER_w_structure("p256_mayo1", der, type_specific_keypair, p256_mayo1), +DECODER_w_structure("p256_mayo1", der, PrivateKeyInfo, p256_mayo1), DECODER_w_structure("p256_mayo1", der, SubjectPublicKeyInfo, p256_mayo1), #endif #ifdef OQS_ENABLE_SIG_mayo_2 +DECODER_w_structure("mayo2", der, type_specific_keypair, mayo2), DECODER_w_structure("mayo2", der, PrivateKeyInfo, mayo2), -DECODER_w_structure("mayo2", der, SubjectPublicKeyInfo, mayo2),DECODER_w_structure("p256_mayo2", der, PrivateKeyInfo, p256_mayo2), +DECODER_w_structure("mayo2", der, SubjectPublicKeyInfo, mayo2),DECODER_w_structure("p256_mayo2", der, type_specific_keypair, p256_mayo2), +DECODER_w_structure("p256_mayo2", der, PrivateKeyInfo, p256_mayo2), DECODER_w_structure("p256_mayo2", der, SubjectPublicKeyInfo, p256_mayo2), #endif #ifdef OQS_ENABLE_SIG_mayo_3 +DECODER_w_structure("mayo3", der, type_specific_keypair, mayo3), DECODER_w_structure("mayo3", der, PrivateKeyInfo, mayo3), -DECODER_w_structure("mayo3", der, SubjectPublicKeyInfo, mayo3),DECODER_w_structure("p384_mayo3", der, PrivateKeyInfo, p384_mayo3), +DECODER_w_structure("mayo3", der, SubjectPublicKeyInfo, mayo3),DECODER_w_structure("p384_mayo3", der, type_specific_keypair, p384_mayo3), +DECODER_w_structure("p384_mayo3", der, PrivateKeyInfo, p384_mayo3), DECODER_w_structure("p384_mayo3", der, SubjectPublicKeyInfo, p384_mayo3), #endif #ifdef OQS_ENABLE_SIG_mayo_5 +DECODER_w_structure("mayo5", der, type_specific_keypair, mayo5), DECODER_w_structure("mayo5", der, PrivateKeyInfo, mayo5), -DECODER_w_structure("mayo5", der, SubjectPublicKeyInfo, mayo5),DECODER_w_structure("p521_mayo5", der, PrivateKeyInfo, p521_mayo5), +DECODER_w_structure("mayo5", der, SubjectPublicKeyInfo, mayo5),DECODER_w_structure("p521_mayo5", der, type_specific_keypair, p521_mayo5), +DECODER_w_structure("p521_mayo5", der, PrivateKeyInfo, p521_mayo5), DECODER_w_structure("p521_mayo5", der, SubjectPublicKeyInfo, p521_mayo5), #endif #ifdef OQS_ENABLE_SIG_cross_rsdp_128_balanced +DECODER_w_structure("CROSSrsdp128balanced", der, type_specific_keypair, CROSSrsdp128balanced), DECODER_w_structure("CROSSrsdp128balanced", der, PrivateKeyInfo, CROSSrsdp128balanced), DECODER_w_structure("CROSSrsdp128balanced", der, SubjectPublicKeyInfo, CROSSrsdp128balanced), #endif diff --git a/oqsprov/oqsencoders.inc b/oqsprov/oqsencoders.inc index 5f1b0d6d..8aa2eaf1 100644 --- a/oqsprov/oqsencoders.inc +++ b/oqsprov/oqsencoders.inc @@ -4,6 +4,7 @@ * OQS OpenSSL 3 provider encoders * * Code strongly inspired by OpenSSL default provider. + * Copyright (c) [2024,] 2024, Oracle and/or its affiliates. All rights reserved. * */ @@ -418,6 +419,7 @@ ENCODER_TEXT("p521_hqc256", p521_hqc256), #ifdef OQS_ENABLE_SIG_ml_dsa_44 +ENCODER_w_structure("mldsa44", mldsa44, der, type_specific_keypair), ENCODER_w_structure("mldsa44", mldsa44, der, PrivateKeyInfo), ENCODER_w_structure("mldsa44", mldsa44, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa44", mldsa44, der, EncryptedPrivateKeyInfo), @@ -425,6 +427,7 @@ ENCODER_w_structure("mldsa44", mldsa44, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mldsa44", mldsa44, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa44", mldsa44, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa44", mldsa44), +ENCODER_w_structure("p256_mldsa44", p256_mldsa44, der, type_specific_keypair), ENCODER_w_structure("p256_mldsa44", p256_mldsa44, der, PrivateKeyInfo), ENCODER_w_structure("p256_mldsa44", p256_mldsa44, pem, PrivateKeyInfo), ENCODER_w_structure("p256_mldsa44", p256_mldsa44, der, EncryptedPrivateKeyInfo), @@ -432,6 +435,7 @@ ENCODER_w_structure("p256_mldsa44", p256_mldsa44, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("p256_mldsa44", p256_mldsa44, der, SubjectPublicKeyInfo), ENCODER_w_structure("p256_mldsa44", p256_mldsa44, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p256_mldsa44", p256_mldsa44), +ENCODER_w_structure("rsa3072_mldsa44", rsa3072_mldsa44, der, type_specific_keypair), ENCODER_w_structure("rsa3072_mldsa44", rsa3072_mldsa44, der, PrivateKeyInfo), ENCODER_w_structure("rsa3072_mldsa44", rsa3072_mldsa44, pem, PrivateKeyInfo), ENCODER_w_structure("rsa3072_mldsa44", rsa3072_mldsa44, der, EncryptedPrivateKeyInfo), @@ -439,6 +443,7 @@ ENCODER_w_structure("rsa3072_mldsa44", rsa3072_mldsa44, pem, EncryptedPrivateKey ENCODER_w_structure("rsa3072_mldsa44", rsa3072_mldsa44, der, SubjectPublicKeyInfo), ENCODER_w_structure("rsa3072_mldsa44", rsa3072_mldsa44, pem, SubjectPublicKeyInfo), ENCODER_TEXT("rsa3072_mldsa44", rsa3072_mldsa44), +ENCODER_w_structure("mldsa44_pss2048", mldsa44_pss2048, der, type_specific_keypair), ENCODER_w_structure("mldsa44_pss2048", mldsa44_pss2048, der, PrivateKeyInfo), ENCODER_w_structure("mldsa44_pss2048", mldsa44_pss2048, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa44_pss2048", mldsa44_pss2048, der, EncryptedPrivateKeyInfo), @@ -446,6 +451,7 @@ ENCODER_w_structure("mldsa44_pss2048", mldsa44_pss2048, pem, EncryptedPrivateKey ENCODER_w_structure("mldsa44_pss2048", mldsa44_pss2048, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa44_pss2048", mldsa44_pss2048, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa44_pss2048", mldsa44_pss2048), +ENCODER_w_structure("mldsa44_rsa2048", mldsa44_rsa2048, der, type_specific_keypair), ENCODER_w_structure("mldsa44_rsa2048", mldsa44_rsa2048, der, PrivateKeyInfo), ENCODER_w_structure("mldsa44_rsa2048", mldsa44_rsa2048, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa44_rsa2048", mldsa44_rsa2048, der, EncryptedPrivateKeyInfo), @@ -453,6 +459,7 @@ ENCODER_w_structure("mldsa44_rsa2048", mldsa44_rsa2048, pem, EncryptedPrivateKey ENCODER_w_structure("mldsa44_rsa2048", mldsa44_rsa2048, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa44_rsa2048", mldsa44_rsa2048, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa44_rsa2048", mldsa44_rsa2048), +ENCODER_w_structure("mldsa44_ed25519", mldsa44_ed25519, der, type_specific_keypair), ENCODER_w_structure("mldsa44_ed25519", mldsa44_ed25519, der, PrivateKeyInfo), ENCODER_w_structure("mldsa44_ed25519", mldsa44_ed25519, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa44_ed25519", mldsa44_ed25519, der, EncryptedPrivateKeyInfo), @@ -460,6 +467,7 @@ ENCODER_w_structure("mldsa44_ed25519", mldsa44_ed25519, pem, EncryptedPrivateKey ENCODER_w_structure("mldsa44_ed25519", mldsa44_ed25519, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa44_ed25519", mldsa44_ed25519, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa44_ed25519", mldsa44_ed25519), +ENCODER_w_structure("mldsa44_p256", mldsa44_p256, der, type_specific_keypair), ENCODER_w_structure("mldsa44_p256", mldsa44_p256, der, PrivateKeyInfo), ENCODER_w_structure("mldsa44_p256", mldsa44_p256, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa44_p256", mldsa44_p256, der, EncryptedPrivateKeyInfo), @@ -467,6 +475,7 @@ ENCODER_w_structure("mldsa44_p256", mldsa44_p256, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mldsa44_p256", mldsa44_p256, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa44_p256", mldsa44_p256, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa44_p256", mldsa44_p256), +ENCODER_w_structure("mldsa44_bp256", mldsa44_bp256, der, type_specific_keypair), ENCODER_w_structure("mldsa44_bp256", mldsa44_bp256, der, PrivateKeyInfo), ENCODER_w_structure("mldsa44_bp256", mldsa44_bp256, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa44_bp256", mldsa44_bp256, der, EncryptedPrivateKeyInfo), @@ -476,6 +485,7 @@ ENCODER_w_structure("mldsa44_bp256", mldsa44_bp256, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa44_bp256", mldsa44_bp256), #endif #ifdef OQS_ENABLE_SIG_ml_dsa_65 +ENCODER_w_structure("mldsa65", mldsa65, der, type_specific_keypair), ENCODER_w_structure("mldsa65", mldsa65, der, PrivateKeyInfo), ENCODER_w_structure("mldsa65", mldsa65, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa65", mldsa65, der, EncryptedPrivateKeyInfo), @@ -483,6 +493,7 @@ ENCODER_w_structure("mldsa65", mldsa65, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mldsa65", mldsa65, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa65", mldsa65, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa65", mldsa65), +ENCODER_w_structure("p384_mldsa65", p384_mldsa65, der, type_specific_keypair), ENCODER_w_structure("p384_mldsa65", p384_mldsa65, der, PrivateKeyInfo), ENCODER_w_structure("p384_mldsa65", p384_mldsa65, pem, PrivateKeyInfo), ENCODER_w_structure("p384_mldsa65", p384_mldsa65, der, EncryptedPrivateKeyInfo), @@ -490,6 +501,7 @@ ENCODER_w_structure("p384_mldsa65", p384_mldsa65, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("p384_mldsa65", p384_mldsa65, der, SubjectPublicKeyInfo), ENCODER_w_structure("p384_mldsa65", p384_mldsa65, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p384_mldsa65", p384_mldsa65), +ENCODER_w_structure("mldsa65_pss3072", mldsa65_pss3072, der, type_specific_keypair), ENCODER_w_structure("mldsa65_pss3072", mldsa65_pss3072, der, PrivateKeyInfo), ENCODER_w_structure("mldsa65_pss3072", mldsa65_pss3072, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa65_pss3072", mldsa65_pss3072, der, EncryptedPrivateKeyInfo), @@ -497,6 +509,7 @@ ENCODER_w_structure("mldsa65_pss3072", mldsa65_pss3072, pem, EncryptedPrivateKey ENCODER_w_structure("mldsa65_pss3072", mldsa65_pss3072, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa65_pss3072", mldsa65_pss3072, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa65_pss3072", mldsa65_pss3072), +ENCODER_w_structure("mldsa65_rsa3072", mldsa65_rsa3072, der, type_specific_keypair), ENCODER_w_structure("mldsa65_rsa3072", mldsa65_rsa3072, der, PrivateKeyInfo), ENCODER_w_structure("mldsa65_rsa3072", mldsa65_rsa3072, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa65_rsa3072", mldsa65_rsa3072, der, EncryptedPrivateKeyInfo), @@ -504,6 +517,7 @@ ENCODER_w_structure("mldsa65_rsa3072", mldsa65_rsa3072, pem, EncryptedPrivateKey ENCODER_w_structure("mldsa65_rsa3072", mldsa65_rsa3072, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa65_rsa3072", mldsa65_rsa3072, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa65_rsa3072", mldsa65_rsa3072), +ENCODER_w_structure("mldsa65_p256", mldsa65_p256, der, type_specific_keypair), ENCODER_w_structure("mldsa65_p256", mldsa65_p256, der, PrivateKeyInfo), ENCODER_w_structure("mldsa65_p256", mldsa65_p256, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa65_p256", mldsa65_p256, der, EncryptedPrivateKeyInfo), @@ -511,6 +525,7 @@ ENCODER_w_structure("mldsa65_p256", mldsa65_p256, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mldsa65_p256", mldsa65_p256, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa65_p256", mldsa65_p256, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa65_p256", mldsa65_p256), +ENCODER_w_structure("mldsa65_bp256", mldsa65_bp256, der, type_specific_keypair), ENCODER_w_structure("mldsa65_bp256", mldsa65_bp256, der, PrivateKeyInfo), ENCODER_w_structure("mldsa65_bp256", mldsa65_bp256, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa65_bp256", mldsa65_bp256, der, EncryptedPrivateKeyInfo), @@ -518,6 +533,7 @@ ENCODER_w_structure("mldsa65_bp256", mldsa65_bp256, pem, EncryptedPrivateKeyInfo ENCODER_w_structure("mldsa65_bp256", mldsa65_bp256, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa65_bp256", mldsa65_bp256, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa65_bp256", mldsa65_bp256), +ENCODER_w_structure("mldsa65_ed25519", mldsa65_ed25519, der, type_specific_keypair), ENCODER_w_structure("mldsa65_ed25519", mldsa65_ed25519, der, PrivateKeyInfo), ENCODER_w_structure("mldsa65_ed25519", mldsa65_ed25519, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa65_ed25519", mldsa65_ed25519, der, EncryptedPrivateKeyInfo), @@ -527,6 +543,7 @@ ENCODER_w_structure("mldsa65_ed25519", mldsa65_ed25519, pem, SubjectPublicKeyInf ENCODER_TEXT("mldsa65_ed25519", mldsa65_ed25519), #endif #ifdef OQS_ENABLE_SIG_ml_dsa_87 +ENCODER_w_structure("mldsa87", mldsa87, der, type_specific_keypair), ENCODER_w_structure("mldsa87", mldsa87, der, PrivateKeyInfo), ENCODER_w_structure("mldsa87", mldsa87, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa87", mldsa87, der, EncryptedPrivateKeyInfo), @@ -534,6 +551,7 @@ ENCODER_w_structure("mldsa87", mldsa87, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mldsa87", mldsa87, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa87", mldsa87, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa87", mldsa87), +ENCODER_w_structure("p521_mldsa87", p521_mldsa87, der, type_specific_keypair), ENCODER_w_structure("p521_mldsa87", p521_mldsa87, der, PrivateKeyInfo), ENCODER_w_structure("p521_mldsa87", p521_mldsa87, pem, PrivateKeyInfo), ENCODER_w_structure("p521_mldsa87", p521_mldsa87, der, EncryptedPrivateKeyInfo), @@ -541,6 +559,7 @@ ENCODER_w_structure("p521_mldsa87", p521_mldsa87, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("p521_mldsa87", p521_mldsa87, der, SubjectPublicKeyInfo), ENCODER_w_structure("p521_mldsa87", p521_mldsa87, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p521_mldsa87", p521_mldsa87), +ENCODER_w_structure("mldsa87_p384", mldsa87_p384, der, type_specific_keypair), ENCODER_w_structure("mldsa87_p384", mldsa87_p384, der, PrivateKeyInfo), ENCODER_w_structure("mldsa87_p384", mldsa87_p384, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa87_p384", mldsa87_p384, der, EncryptedPrivateKeyInfo), @@ -548,6 +567,7 @@ ENCODER_w_structure("mldsa87_p384", mldsa87_p384, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mldsa87_p384", mldsa87_p384, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa87_p384", mldsa87_p384, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa87_p384", mldsa87_p384), +ENCODER_w_structure("mldsa87_bp384", mldsa87_bp384, der, type_specific_keypair), ENCODER_w_structure("mldsa87_bp384", mldsa87_bp384, der, PrivateKeyInfo), ENCODER_w_structure("mldsa87_bp384", mldsa87_bp384, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa87_bp384", mldsa87_bp384, der, EncryptedPrivateKeyInfo), @@ -555,6 +575,7 @@ ENCODER_w_structure("mldsa87_bp384", mldsa87_bp384, pem, EncryptedPrivateKeyInfo ENCODER_w_structure("mldsa87_bp384", mldsa87_bp384, der, SubjectPublicKeyInfo), ENCODER_w_structure("mldsa87_bp384", mldsa87_bp384, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa87_bp384", mldsa87_bp384), +ENCODER_w_structure("mldsa87_ed448", mldsa87_ed448, der, type_specific_keypair), ENCODER_w_structure("mldsa87_ed448", mldsa87_ed448, der, PrivateKeyInfo), ENCODER_w_structure("mldsa87_ed448", mldsa87_ed448, pem, PrivateKeyInfo), ENCODER_w_structure("mldsa87_ed448", mldsa87_ed448, der, EncryptedPrivateKeyInfo), @@ -564,6 +585,7 @@ ENCODER_w_structure("mldsa87_ed448", mldsa87_ed448, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mldsa87_ed448", mldsa87_ed448), #endif #ifdef OQS_ENABLE_SIG_falcon_512 +ENCODER_w_structure("falcon512", falcon512, der, type_specific_keypair), ENCODER_w_structure("falcon512", falcon512, der, PrivateKeyInfo), ENCODER_w_structure("falcon512", falcon512, pem, PrivateKeyInfo), ENCODER_w_structure("falcon512", falcon512, der, EncryptedPrivateKeyInfo), @@ -571,6 +593,7 @@ ENCODER_w_structure("falcon512", falcon512, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("falcon512", falcon512, der, SubjectPublicKeyInfo), ENCODER_w_structure("falcon512", falcon512, pem, SubjectPublicKeyInfo), ENCODER_TEXT("falcon512", falcon512), +ENCODER_w_structure("p256_falcon512", p256_falcon512, der, type_specific_keypair), ENCODER_w_structure("p256_falcon512", p256_falcon512, der, PrivateKeyInfo), ENCODER_w_structure("p256_falcon512", p256_falcon512, pem, PrivateKeyInfo), ENCODER_w_structure("p256_falcon512", p256_falcon512, der, EncryptedPrivateKeyInfo), @@ -578,6 +601,7 @@ ENCODER_w_structure("p256_falcon512", p256_falcon512, pem, EncryptedPrivateKeyIn ENCODER_w_structure("p256_falcon512", p256_falcon512, der, SubjectPublicKeyInfo), ENCODER_w_structure("p256_falcon512", p256_falcon512, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p256_falcon512", p256_falcon512), +ENCODER_w_structure("rsa3072_falcon512", rsa3072_falcon512, der, type_specific_keypair), ENCODER_w_structure("rsa3072_falcon512", rsa3072_falcon512, der, PrivateKeyInfo), ENCODER_w_structure("rsa3072_falcon512", rsa3072_falcon512, pem, PrivateKeyInfo), ENCODER_w_structure("rsa3072_falcon512", rsa3072_falcon512, der, EncryptedPrivateKeyInfo), @@ -587,6 +611,7 @@ ENCODER_w_structure("rsa3072_falcon512", rsa3072_falcon512, pem, SubjectPublicKe ENCODER_TEXT("rsa3072_falcon512", rsa3072_falcon512), #endif #ifdef OQS_ENABLE_SIG_falcon_padded_512 +ENCODER_w_structure("falconpadded512", falconpadded512, der, type_specific_keypair), ENCODER_w_structure("falconpadded512", falconpadded512, der, PrivateKeyInfo), ENCODER_w_structure("falconpadded512", falconpadded512, pem, PrivateKeyInfo), ENCODER_w_structure("falconpadded512", falconpadded512, der, EncryptedPrivateKeyInfo), @@ -594,6 +619,7 @@ ENCODER_w_structure("falconpadded512", falconpadded512, pem, EncryptedPrivateKey ENCODER_w_structure("falconpadded512", falconpadded512, der, SubjectPublicKeyInfo), ENCODER_w_structure("falconpadded512", falconpadded512, pem, SubjectPublicKeyInfo), ENCODER_TEXT("falconpadded512", falconpadded512), +ENCODER_w_structure("p256_falconpadded512", p256_falconpadded512, der, type_specific_keypair), ENCODER_w_structure("p256_falconpadded512", p256_falconpadded512, der, PrivateKeyInfo), ENCODER_w_structure("p256_falconpadded512", p256_falconpadded512, pem, PrivateKeyInfo), ENCODER_w_structure("p256_falconpadded512", p256_falconpadded512, der, EncryptedPrivateKeyInfo), @@ -601,6 +627,7 @@ ENCODER_w_structure("p256_falconpadded512", p256_falconpadded512, pem, Encrypted ENCODER_w_structure("p256_falconpadded512", p256_falconpadded512, der, SubjectPublicKeyInfo), ENCODER_w_structure("p256_falconpadded512", p256_falconpadded512, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p256_falconpadded512", p256_falconpadded512), +ENCODER_w_structure("rsa3072_falconpadded512", rsa3072_falconpadded512, der, type_specific_keypair), ENCODER_w_structure("rsa3072_falconpadded512", rsa3072_falconpadded512, der, PrivateKeyInfo), ENCODER_w_structure("rsa3072_falconpadded512", rsa3072_falconpadded512, pem, PrivateKeyInfo), ENCODER_w_structure("rsa3072_falconpadded512", rsa3072_falconpadded512, der, EncryptedPrivateKeyInfo), @@ -610,6 +637,7 @@ ENCODER_w_structure("rsa3072_falconpadded512", rsa3072_falconpadded512, pem, Sub ENCODER_TEXT("rsa3072_falconpadded512", rsa3072_falconpadded512), #endif #ifdef OQS_ENABLE_SIG_falcon_1024 +ENCODER_w_structure("falcon1024", falcon1024, der, type_specific_keypair), ENCODER_w_structure("falcon1024", falcon1024, der, PrivateKeyInfo), ENCODER_w_structure("falcon1024", falcon1024, pem, PrivateKeyInfo), ENCODER_w_structure("falcon1024", falcon1024, der, EncryptedPrivateKeyInfo), @@ -617,6 +645,7 @@ ENCODER_w_structure("falcon1024", falcon1024, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("falcon1024", falcon1024, der, SubjectPublicKeyInfo), ENCODER_w_structure("falcon1024", falcon1024, pem, SubjectPublicKeyInfo), ENCODER_TEXT("falcon1024", falcon1024), +ENCODER_w_structure("p521_falcon1024", p521_falcon1024, der, type_specific_keypair), ENCODER_w_structure("p521_falcon1024", p521_falcon1024, der, PrivateKeyInfo), ENCODER_w_structure("p521_falcon1024", p521_falcon1024, pem, PrivateKeyInfo), ENCODER_w_structure("p521_falcon1024", p521_falcon1024, der, EncryptedPrivateKeyInfo), @@ -626,6 +655,7 @@ ENCODER_w_structure("p521_falcon1024", p521_falcon1024, pem, SubjectPublicKeyInf ENCODER_TEXT("p521_falcon1024", p521_falcon1024), #endif #ifdef OQS_ENABLE_SIG_falcon_padded_1024 +ENCODER_w_structure("falconpadded1024", falconpadded1024, der, type_specific_keypair), ENCODER_w_structure("falconpadded1024", falconpadded1024, der, PrivateKeyInfo), ENCODER_w_structure("falconpadded1024", falconpadded1024, pem, PrivateKeyInfo), ENCODER_w_structure("falconpadded1024", falconpadded1024, der, EncryptedPrivateKeyInfo), @@ -633,6 +663,7 @@ ENCODER_w_structure("falconpadded1024", falconpadded1024, pem, EncryptedPrivateK ENCODER_w_structure("falconpadded1024", falconpadded1024, der, SubjectPublicKeyInfo), ENCODER_w_structure("falconpadded1024", falconpadded1024, pem, SubjectPublicKeyInfo), ENCODER_TEXT("falconpadded1024", falconpadded1024), +ENCODER_w_structure("p521_falconpadded1024", p521_falconpadded1024, der, type_specific_keypair), ENCODER_w_structure("p521_falconpadded1024", p521_falconpadded1024, der, PrivateKeyInfo), ENCODER_w_structure("p521_falconpadded1024", p521_falconpadded1024, pem, PrivateKeyInfo), ENCODER_w_structure("p521_falconpadded1024", p521_falconpadded1024, der, EncryptedPrivateKeyInfo), @@ -642,6 +673,7 @@ ENCODER_w_structure("p521_falconpadded1024", p521_falconpadded1024, pem, Subject ENCODER_TEXT("p521_falconpadded1024", p521_falconpadded1024), #endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_128f_simple +ENCODER_w_structure("sphincssha2128fsimple", sphincssha2128fsimple, der, type_specific_keypair), ENCODER_w_structure("sphincssha2128fsimple", sphincssha2128fsimple, der, PrivateKeyInfo), ENCODER_w_structure("sphincssha2128fsimple", sphincssha2128fsimple, pem, PrivateKeyInfo), ENCODER_w_structure("sphincssha2128fsimple", sphincssha2128fsimple, der, EncryptedPrivateKeyInfo), @@ -649,6 +681,7 @@ ENCODER_w_structure("sphincssha2128fsimple", sphincssha2128fsimple, pem, Encrypt ENCODER_w_structure("sphincssha2128fsimple", sphincssha2128fsimple, der, SubjectPublicKeyInfo), ENCODER_w_structure("sphincssha2128fsimple", sphincssha2128fsimple, pem, SubjectPublicKeyInfo), ENCODER_TEXT("sphincssha2128fsimple", sphincssha2128fsimple), +ENCODER_w_structure("p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, der, type_specific_keypair), ENCODER_w_structure("p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, der, PrivateKeyInfo), ENCODER_w_structure("p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, pem, PrivateKeyInfo), ENCODER_w_structure("p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, der, EncryptedPrivateKeyInfo), @@ -656,6 +689,7 @@ ENCODER_w_structure("p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, pe ENCODER_w_structure("p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, der, SubjectPublicKeyInfo), ENCODER_w_structure("p256_sphincssha2128fsimple", p256_sphincssha2128fsimple, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p256_sphincssha2128fsimple", p256_sphincssha2128fsimple), +ENCODER_w_structure("rsa3072_sphincssha2128fsimple", rsa3072_sphincssha2128fsimple, der, type_specific_keypair), ENCODER_w_structure("rsa3072_sphincssha2128fsimple", rsa3072_sphincssha2128fsimple, der, PrivateKeyInfo), ENCODER_w_structure("rsa3072_sphincssha2128fsimple", rsa3072_sphincssha2128fsimple, pem, PrivateKeyInfo), ENCODER_w_structure("rsa3072_sphincssha2128fsimple", rsa3072_sphincssha2128fsimple, der, EncryptedPrivateKeyInfo), @@ -665,6 +699,7 @@ ENCODER_w_structure("rsa3072_sphincssha2128fsimple", rsa3072_sphincssha2128fsimp ENCODER_TEXT("rsa3072_sphincssha2128fsimple", rsa3072_sphincssha2128fsimple), #endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_128s_simple +ENCODER_w_structure("sphincssha2128ssimple", sphincssha2128ssimple, der, type_specific_keypair), ENCODER_w_structure("sphincssha2128ssimple", sphincssha2128ssimple, der, PrivateKeyInfo), ENCODER_w_structure("sphincssha2128ssimple", sphincssha2128ssimple, pem, PrivateKeyInfo), ENCODER_w_structure("sphincssha2128ssimple", sphincssha2128ssimple, der, EncryptedPrivateKeyInfo), @@ -672,6 +707,7 @@ ENCODER_w_structure("sphincssha2128ssimple", sphincssha2128ssimple, pem, Encrypt ENCODER_w_structure("sphincssha2128ssimple", sphincssha2128ssimple, der, SubjectPublicKeyInfo), ENCODER_w_structure("sphincssha2128ssimple", sphincssha2128ssimple, pem, SubjectPublicKeyInfo), ENCODER_TEXT("sphincssha2128ssimple", sphincssha2128ssimple), +ENCODER_w_structure("p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, der, type_specific_keypair), ENCODER_w_structure("p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, der, PrivateKeyInfo), ENCODER_w_structure("p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, pem, PrivateKeyInfo), ENCODER_w_structure("p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, der, EncryptedPrivateKeyInfo), @@ -679,6 +715,7 @@ ENCODER_w_structure("p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, pe ENCODER_w_structure("p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, der, SubjectPublicKeyInfo), ENCODER_w_structure("p256_sphincssha2128ssimple", p256_sphincssha2128ssimple, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p256_sphincssha2128ssimple", p256_sphincssha2128ssimple), +ENCODER_w_structure("rsa3072_sphincssha2128ssimple", rsa3072_sphincssha2128ssimple, der, type_specific_keypair), ENCODER_w_structure("rsa3072_sphincssha2128ssimple", rsa3072_sphincssha2128ssimple, der, PrivateKeyInfo), ENCODER_w_structure("rsa3072_sphincssha2128ssimple", rsa3072_sphincssha2128ssimple, pem, PrivateKeyInfo), ENCODER_w_structure("rsa3072_sphincssha2128ssimple", rsa3072_sphincssha2128ssimple, der, EncryptedPrivateKeyInfo), @@ -688,6 +725,7 @@ ENCODER_w_structure("rsa3072_sphincssha2128ssimple", rsa3072_sphincssha2128ssimp ENCODER_TEXT("rsa3072_sphincssha2128ssimple", rsa3072_sphincssha2128ssimple), #endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_192f_simple +ENCODER_w_structure("sphincssha2192fsimple", sphincssha2192fsimple, der, type_specific_keypair), ENCODER_w_structure("sphincssha2192fsimple", sphincssha2192fsimple, der, PrivateKeyInfo), ENCODER_w_structure("sphincssha2192fsimple", sphincssha2192fsimple, pem, PrivateKeyInfo), ENCODER_w_structure("sphincssha2192fsimple", sphincssha2192fsimple, der, EncryptedPrivateKeyInfo), @@ -695,6 +733,7 @@ ENCODER_w_structure("sphincssha2192fsimple", sphincssha2192fsimple, pem, Encrypt ENCODER_w_structure("sphincssha2192fsimple", sphincssha2192fsimple, der, SubjectPublicKeyInfo), ENCODER_w_structure("sphincssha2192fsimple", sphincssha2192fsimple, pem, SubjectPublicKeyInfo), ENCODER_TEXT("sphincssha2192fsimple", sphincssha2192fsimple), +ENCODER_w_structure("p384_sphincssha2192fsimple", p384_sphincssha2192fsimple, der, type_specific_keypair), ENCODER_w_structure("p384_sphincssha2192fsimple", p384_sphincssha2192fsimple, der, PrivateKeyInfo), ENCODER_w_structure("p384_sphincssha2192fsimple", p384_sphincssha2192fsimple, pem, PrivateKeyInfo), ENCODER_w_structure("p384_sphincssha2192fsimple", p384_sphincssha2192fsimple, der, EncryptedPrivateKeyInfo), @@ -704,6 +743,7 @@ ENCODER_w_structure("p384_sphincssha2192fsimple", p384_sphincssha2192fsimple, pe ENCODER_TEXT("p384_sphincssha2192fsimple", p384_sphincssha2192fsimple), #endif #ifdef OQS_ENABLE_SIG_sphincs_shake_128f_simple +ENCODER_w_structure("sphincsshake128fsimple", sphincsshake128fsimple, der, type_specific_keypair), ENCODER_w_structure("sphincsshake128fsimple", sphincsshake128fsimple, der, PrivateKeyInfo), ENCODER_w_structure("sphincsshake128fsimple", sphincsshake128fsimple, pem, PrivateKeyInfo), ENCODER_w_structure("sphincsshake128fsimple", sphincsshake128fsimple, der, EncryptedPrivateKeyInfo), @@ -711,6 +751,7 @@ ENCODER_w_structure("sphincsshake128fsimple", sphincsshake128fsimple, pem, Encry ENCODER_w_structure("sphincsshake128fsimple", sphincsshake128fsimple, der, SubjectPublicKeyInfo), ENCODER_w_structure("sphincsshake128fsimple", sphincsshake128fsimple, pem, SubjectPublicKeyInfo), ENCODER_TEXT("sphincsshake128fsimple", sphincsshake128fsimple), +ENCODER_w_structure("p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, der, type_specific_keypair), ENCODER_w_structure("p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, der, PrivateKeyInfo), ENCODER_w_structure("p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, pem, PrivateKeyInfo), ENCODER_w_structure("p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, der, EncryptedPrivateKeyInfo), @@ -718,6 +759,7 @@ ENCODER_w_structure("p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, ENCODER_w_structure("p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, der, SubjectPublicKeyInfo), ENCODER_w_structure("p256_sphincsshake128fsimple", p256_sphincsshake128fsimple, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p256_sphincsshake128fsimple", p256_sphincsshake128fsimple), +ENCODER_w_structure("rsa3072_sphincsshake128fsimple", rsa3072_sphincsshake128fsimple, der, type_specific_keypair), ENCODER_w_structure("rsa3072_sphincsshake128fsimple", rsa3072_sphincsshake128fsimple, der, PrivateKeyInfo), ENCODER_w_structure("rsa3072_sphincsshake128fsimple", rsa3072_sphincsshake128fsimple, pem, PrivateKeyInfo), ENCODER_w_structure("rsa3072_sphincsshake128fsimple", rsa3072_sphincsshake128fsimple, der, EncryptedPrivateKeyInfo), @@ -727,6 +769,7 @@ ENCODER_w_structure("rsa3072_sphincsshake128fsimple", rsa3072_sphincsshake128fsi ENCODER_TEXT("rsa3072_sphincsshake128fsimple", rsa3072_sphincsshake128fsimple), #endif #ifdef OQS_ENABLE_SIG_mayo_1 +ENCODER_w_structure("mayo1", mayo1, der, type_specific_keypair), ENCODER_w_structure("mayo1", mayo1, der, PrivateKeyInfo), ENCODER_w_structure("mayo1", mayo1, pem, PrivateKeyInfo), ENCODER_w_structure("mayo1", mayo1, der, EncryptedPrivateKeyInfo), @@ -734,6 +777,7 @@ ENCODER_w_structure("mayo1", mayo1, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mayo1", mayo1, der, SubjectPublicKeyInfo), ENCODER_w_structure("mayo1", mayo1, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mayo1", mayo1), +ENCODER_w_structure("p256_mayo1", p256_mayo1, der, type_specific_keypair), ENCODER_w_structure("p256_mayo1", p256_mayo1, der, PrivateKeyInfo), ENCODER_w_structure("p256_mayo1", p256_mayo1, pem, PrivateKeyInfo), ENCODER_w_structure("p256_mayo1", p256_mayo1, der, EncryptedPrivateKeyInfo), @@ -743,6 +787,7 @@ ENCODER_w_structure("p256_mayo1", p256_mayo1, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p256_mayo1", p256_mayo1), #endif #ifdef OQS_ENABLE_SIG_mayo_2 +ENCODER_w_structure("mayo2", mayo2, der, type_specific_keypair), ENCODER_w_structure("mayo2", mayo2, der, PrivateKeyInfo), ENCODER_w_structure("mayo2", mayo2, pem, PrivateKeyInfo), ENCODER_w_structure("mayo2", mayo2, der, EncryptedPrivateKeyInfo), @@ -750,6 +795,7 @@ ENCODER_w_structure("mayo2", mayo2, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mayo2", mayo2, der, SubjectPublicKeyInfo), ENCODER_w_structure("mayo2", mayo2, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mayo2", mayo2), +ENCODER_w_structure("p256_mayo2", p256_mayo2, der, type_specific_keypair), ENCODER_w_structure("p256_mayo2", p256_mayo2, der, PrivateKeyInfo), ENCODER_w_structure("p256_mayo2", p256_mayo2, pem, PrivateKeyInfo), ENCODER_w_structure("p256_mayo2", p256_mayo2, der, EncryptedPrivateKeyInfo), @@ -759,6 +805,7 @@ ENCODER_w_structure("p256_mayo2", p256_mayo2, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p256_mayo2", p256_mayo2), #endif #ifdef OQS_ENABLE_SIG_mayo_3 +ENCODER_w_structure("mayo3", mayo3, der, type_specific_keypair), ENCODER_w_structure("mayo3", mayo3, der, PrivateKeyInfo), ENCODER_w_structure("mayo3", mayo3, pem, PrivateKeyInfo), ENCODER_w_structure("mayo3", mayo3, der, EncryptedPrivateKeyInfo), @@ -766,6 +813,7 @@ ENCODER_w_structure("mayo3", mayo3, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mayo3", mayo3, der, SubjectPublicKeyInfo), ENCODER_w_structure("mayo3", mayo3, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mayo3", mayo3), +ENCODER_w_structure("p384_mayo3", p384_mayo3, der, type_specific_keypair), ENCODER_w_structure("p384_mayo3", p384_mayo3, der, PrivateKeyInfo), ENCODER_w_structure("p384_mayo3", p384_mayo3, pem, PrivateKeyInfo), ENCODER_w_structure("p384_mayo3", p384_mayo3, der, EncryptedPrivateKeyInfo), @@ -775,6 +823,7 @@ ENCODER_w_structure("p384_mayo3", p384_mayo3, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p384_mayo3", p384_mayo3), #endif #ifdef OQS_ENABLE_SIG_mayo_5 +ENCODER_w_structure("mayo5", mayo5, der, type_specific_keypair), ENCODER_w_structure("mayo5", mayo5, der, PrivateKeyInfo), ENCODER_w_structure("mayo5", mayo5, pem, PrivateKeyInfo), ENCODER_w_structure("mayo5", mayo5, der, EncryptedPrivateKeyInfo), @@ -782,6 +831,7 @@ ENCODER_w_structure("mayo5", mayo5, pem, EncryptedPrivateKeyInfo), ENCODER_w_structure("mayo5", mayo5, der, SubjectPublicKeyInfo), ENCODER_w_structure("mayo5", mayo5, pem, SubjectPublicKeyInfo), ENCODER_TEXT("mayo5", mayo5), +ENCODER_w_structure("p521_mayo5", p521_mayo5, der, type_specific_keypair), ENCODER_w_structure("p521_mayo5", p521_mayo5, der, PrivateKeyInfo), ENCODER_w_structure("p521_mayo5", p521_mayo5, pem, PrivateKeyInfo), ENCODER_w_structure("p521_mayo5", p521_mayo5, der, EncryptedPrivateKeyInfo), @@ -791,6 +841,7 @@ ENCODER_w_structure("p521_mayo5", p521_mayo5, pem, SubjectPublicKeyInfo), ENCODER_TEXT("p521_mayo5", p521_mayo5), #endif #ifdef OQS_ENABLE_SIG_cross_rsdp_128_balanced +ENCODER_w_structure("CROSSrsdp128balanced", CROSSrsdp128balanced, der, type_specific_keypair), ENCODER_w_structure("CROSSrsdp128balanced", CROSSrsdp128balanced, der, PrivateKeyInfo), ENCODER_w_structure("CROSSrsdp128balanced", CROSSrsdp128balanced, pem, PrivateKeyInfo), ENCODER_w_structure("CROSSrsdp128balanced", CROSSrsdp128balanced, der, EncryptedPrivateKeyInfo), diff --git a/oqsprov/oqsprov.c b/oqsprov/oqsprov.c index 4f6d1bc5..6f4965b1 100644 --- a/oqsprov/oqsprov.c +++ b/oqsprov/oqsprov.c @@ -671,8 +671,7 @@ static const OSSL_ALGORITHM oqsprovider_asym_kems[] = { ///// OQS_TEMPLATE_FRAGMENT_KEM_FUNCTIONS_END {NULL, NULL, NULL}}; -static const OSSL_ALGORITHM oqsprovider_keymgmt[] = - { +static const OSSL_ALGORITHM oqsprovider_keymgmt[] = { ///// OQS_TEMPLATE_FRAGMENT_KEYMGMT_FUNCTIONS_START // clang-format off @@ -847,9 +846,9 @@ static const OSSL_ALGORITHM oqsprovider_keymgmt[] = KEMKMHYBALG(p521_hqc256, 256, ecp) #endif - // clang-format on - ///// OQS_TEMPLATE_FRAGMENT_KEYMGMT_FUNCTIONS_END - {NULL, NULL, NULL}}; + // clang-format on + ///// OQS_TEMPLATE_FRAGMENT_KEYMGMT_FUNCTIONS_END + {NULL, NULL, NULL}}; static const OSSL_ALGORITHM oqsprovider_encoder[] = { #define ENCODER_PROVIDER "oqsprovider" diff --git a/test/oqs_test_endecode.c b/test/oqs_test_endecode.c index a5af1059..30c040b3 100644 --- a/test/oqs_test_endecode.c +++ b/test/oqs_test_endecode.c @@ -1,4 +1,7 @@ -// SPDX-License-Identifier: Apache-2.0 AND MIT +/* SPDX-License-Identifier: Apache-2.0 AND MIT + * Copyright (c) [2024,] 2024, Oracle and/or its affiliates. + * All Rights Reserved. + */ #include #include @@ -37,6 +40,8 @@ typedef struct endecode_params_st { } ENDECODE_PARAMS; static ENDECODE_PARAMS test_params_list[] = { + {"DER", "type-specific", NULL, NULL, + OSSL_KEYMGMT_SELECT_KEYPAIR | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS}, {"PEM", "PrivateKeyInfo", NULL, NULL, OSSL_KEYMGMT_SELECT_KEYPAIR | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS}, {"PEM", "EncryptedPrivateKeyInfo", NULL,