Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full hybrid support #40

Merged
merged 4 commits into from
Nov 11, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion oqs-template/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,6 @@ def load_config():
populate('oqsprov/oqsprov.c', config, '/////')
populate('oqsprov/oqsprov_groups.c', config, '/////')
populate('oqsprov/oqs_kmgmt.c', config, '/////')
populate('oqsprov/oqs_sig.c', config, '/////')
populate('oqsprov/oqs_encode_key2any.c', config, '/////')
populate('oqsprov/oqs_decode_der2key.c', config, '/////')
populate('oqsprov/oqsprov_keys.c', config, '/////')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
{%- for variant in sig['variants'] %}
MAKE_DECODER("{{ variant['name'] }}", {{ variant['name'] }}, oqsx, PrivateKeyInfo);
MAKE_DECODER("{{ variant['name'] }}", {{ variant['name'] }}, oqsx, SubjectPublicKeyInfo);
{%- for classical_alg in variant['mix_with'] -%}
bhess marked this conversation as resolved.
Show resolved Hide resolved
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 -%}
{%- endfor %}
{%- endfor %}

Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
# define {{ variant['name'] }}_evp_type 0
# define {{ variant['name'] }}_input_type "{{ variant['name'] }}"
# define {{ variant['name'] }}_pem_type "{{ variant['name'] }}"
{%- for classical_alg in variant['mix_with'] %}
# define {{ classical_alg['name'] }}_{{ variant['name'] }}_evp_type 0
# define {{ classical_alg['name'] }}_{{ variant['name'] }}_input_type "{{ classical_alg['name'] }}_{{ variant['name'] }}"
# define {{ classical_alg['name'] }}_{{ variant['name'] }}_pem_type "{{ classical_alg['name'] }}_{{ variant['name'] }}"
{%- endfor -%}
{%- endfor %}
{%- endfor %}

Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ MAKE_ENCODER({{ variant['name'] }}, oqsx, PrivateKeyInfo, der);
MAKE_ENCODER({{ variant['name'] }}, oqsx, PrivateKeyInfo, pem);
MAKE_ENCODER({{ variant['name'] }}, oqsx, SubjectPublicKeyInfo, der);
MAKE_ENCODER({{ variant['name'] }}, oqsx, SubjectPublicKeyInfo, pem);
{%- for classical_alg in variant['mix_with'] -%}
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);
MAKE_ENCODER({{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, PrivateKeyInfo, pem);
MAKE_ENCODER({{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, SubjectPublicKeyInfo, der);
MAKE_ENCODER({{ classical_alg['name'] }}_{{ variant['name'] }}, oqsx, SubjectPublicKeyInfo, pem);
{%- endfor -%}
{%- endfor %}
{%- endfor %}

14 changes: 13 additions & 1 deletion oqs-template/oqsprov/oqs_kmgmt.c/keymgmt_constructors.fragment
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,26 @@
{%- for variant in sig['variants'] %}
static void *{{variant['name']}}_new_key(void *provctx)
{
return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), {{variant['oqs_meth']}}, "{{variant['name']}}", 0, NULL, {{variant['security']}});
return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), {{variant['oqs_meth']}}, "{{variant['name']}}", KEY_TYPE_SIG, NULL, {{variant['security']}});
}

static void *{{variant['name']}}_gen_init(void *provctx, int selection)
{
return oqsx_gen_init(provctx, selection, {{variant['oqs_meth']}}, "{{variant['name']}}", 0, {{variant['security']}});
}

{%- for classical_alg in variant['mix_with'] %}
static void *{{ classical_alg['name'] }}_{{variant['name']}}_new_key(void *provctx)
{
return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), {{variant['oqs_meth']}}, "{{ classical_alg['name'] }}_{{variant['name']}}", KEY_TYPE_HYB_SIG, NULL, {{variant['security']}});
}

static void *{{ classical_alg['name'] }}_{{variant['name']}}_gen_init(void *provctx, int selection)
{
return oqsx_gen_init(provctx, selection, {{variant['oqs_meth']}}, "{{ classical_alg['name'] }}_{{variant['name']}}", KEY_TYPE_HYB_SIG, {{variant['security']}});
}

{%- endfor -%}
{%- endfor %}
{% endfor %}

3 changes: 3 additions & 0 deletions oqs-template/oqsprov/oqs_kmgmt.c/keymgmt_functions.fragment
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{% for sig in config['sigs'] %}
{%- for variant in sig['variants'] %}
MAKE_SIG_KEYMGMT_FUNCTIONS({{variant['name']}})
{%- for classical_alg in variant['mix_with'] %}
MAKE_SIG_KEYMGMT_FUNCTIONS({{ classical_alg['name'] }}_{{variant['name']}})
{%- endfor -%}
{%- endfor %}
{%- endfor %}
{% for kem in config['kems'] %}
Expand Down
3 changes: 3 additions & 0 deletions oqs-template/oqsprov/oqs_prov.h/alg_functions.fragment
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{% for sig in config['sigs'] %}
{%- for variant in sig['variants'] %}
extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_keymgmt_functions[];
{%- for classical_alg in variant['mix_with'] -%}
extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_keymgmt_functions[];
{%- endfor -%}
{%- endfor %}
{%- endfor %}
{% for kem in config['kems'] %}
Expand Down
10 changes: 10 additions & 0 deletions oqs-template/oqsprov/oqs_prov.h/endecoder_functions.fragment
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_SubjectPublicKeyInfo_der
extern const OSSL_DISPATCH oqs_{{ variant['name'] }}_to_SubjectPublicKeyInfo_pem_encoder_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_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[];
extern const OSSL_DISPATCH oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
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_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 -%}
{%- endfor %}
{%- endfor %}

8 changes: 0 additions & 8 deletions oqs-template/oqsprov/oqs_sig.c/sig_oids.fragment

This file was deleted.

4 changes: 4 additions & 0 deletions oqs-template/oqsprov/oqsdecoders.inc/make.fragment
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
{%- for variant in sig['variants'] %}
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, PrivateKeyInfo, {{ classical_alg['name'] }}_{{ variant['name'] }}),
DECODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", der, SubjectPublicKeyInfo, {{ classical_alg['name'] }}_{{ variant['name'] }}),
{%- endfor -%}
{%- endfor %}
{%- endfor %}

8 changes: 8 additions & 0 deletions oqs-template/oqsprov/oqsencoders.inc/make.fragment
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, der, Encrypt
ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, pem, EncryptedPrivateKeyInfo),
ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, der, SubjectPublicKeyInfo),
ENCODER_w_structure("{{ variant['name'] }}", {{ variant['name'] }}, pem, SubjectPublicKeyInfo),
{%- for classical_alg in variant['mix_with'] -%}
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),
ENCODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, pem, EncryptedPrivateKeyInfo),
ENCODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, der, SubjectPublicKeyInfo),
ENCODER_w_structure("{{ classical_alg['name'] }}_{{ variant['name'] }}", {{ classical_alg['name'] }}_{{ variant['name'] }}, pem, SubjectPublicKeyInfo),
{%- endfor -%}
{%- endfor %}
{%- endfor %}

3 changes: 3 additions & 0 deletions oqs-template/oqsprov/oqsprov.c/keymgmt_functions.fragment
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{% for sig in config['sigs'] %}
{%- for variant in sig['variants'] %}
ALG("{{variant['name']}}", oqs_{{ variant['name'] }}_keymgmt_functions),
{%- for classical_alg in variant['mix_with'] -%}
ALG("{{ classical_alg['name'] }}_{{variant['name']}}", oqs_{{ classical_alg['name'] }}_{{ variant['name'] }}_keymgmt_functions),
{%- endfor -%}
{%- endfor %}
{%- endfor %}
{% for kem in config['kems'] %}
Expand Down
3 changes: 3 additions & 0 deletions oqs-template/oqsprov/oqsprov.c/sig_functions.fragment
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{% for sig in config['sigs'] %}
{%- for variant in sig['variants'] %}
ALG("{{variant['name']}}", oqs_signature_functions),
{%- for classical_alg in variant['mix_with'] %}
ALG("{{ classical_alg['name'] }}_{{variant['name']}}", oqs_signature_functions),
{%- endfor %}
{%- endfor %}
{%- endfor %}

4 changes: 2 additions & 2 deletions oqs-template/oqsprov/oqsprov_keys.c/oqsnames.fragment
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
static oqs_nid_name_t nid_names[NID_TABLE_LEN] = {
{%- for sig in config['sigs'] -%}
{%- for variant in sig['variants'] %}
{ 0, "{{variant['name']}}", {{variant['oqs_meth']}}, {{variant['security']}} },
{ 0, "{{variant['name']}}", {{variant['oqs_meth']}}, KEY_TYPE_SIG, {{variant['security']}} },
{%- for classical_alg in variant['mix_with'] %}
{ 0, "{{ classical_alg['name'] }}_{{variant['name']}}", {{variant['oqs_meth']}}, {{variant['security']}} },
{ 0, "{{ classical_alg['name'] }}_{{variant['name']}}", {{variant['oqs_meth']}}, KEY_TYPE_HYB_SIG, {{variant['security']}} },
{%- endfor %}
{%- endfor %}
{%- endfor %}
Expand Down
3 changes: 3 additions & 0 deletions oqs-template/scripts/runtests.sh/algs.fragment
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{% for sig in config['sigs'] %}
{%- for variant in sig['variants'] %}
interop {{ variant['name'] }}
{%- for classical_alg in variant['mix_with'] %}
interop {{ classical_alg['name'] }}_{{ variant['name'] }}
{%- endfor %}
{%- endfor %}
{%- endfor %}

4 changes: 4 additions & 0 deletions oqs-template/test/oqs_test_endecode.c/add.fragment
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
{%- for variant in sig['variants'] %}
MAKE_KEYS({{ variant['name'] }}, "{{ variant['name'] }}", NULL);
ADD_TEST_SUITE({{ variant['name'] }});
{%- for classical_alg in variant['mix_with'] %}
MAKE_KEYS({{ classical_alg['name'] }}_{{ variant['name'] }}, "{{ classical_alg['name'] }}_{{ variant['name'] }}", NULL);
ADD_TEST_SUITE({{ classical_alg['name'] }}_{{ variant['name'] }});
{%- endfor %}
{%- endfor %}
{%- endfor %}

3 changes: 3 additions & 0 deletions oqs-template/test/oqs_test_endecode.c/freekeys.fragment
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{% for sig in config['sigs'] %}
{%- for variant in sig['variants'] %}
FREE_KEYS({{ variant['name'] }});
{%- for classical_alg in variant['mix_with'] %}
FREE_KEYS({{ classical_alg['name'] }}_{{ variant['name'] }});
{%- endfor %}
{%- endfor %}
{%- endfor %}

4 changes: 4 additions & 0 deletions oqs-template/test/oqs_test_endecode.c/implement.fragment
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
{%- for variant in sig['variants'] %}
KEYS({{ variant['name'] }});
IMPLEMENT_TEST_SUITE({{ variant['name'] }}, "{{ variant['name'] }}")
{%- for classical_alg in variant['mix_with'] %}
KEYS({{ classical_alg['name'] }}_{{ variant['name'] }});
IMPLEMENT_TEST_SUITE({{ classical_alg['name'] }}_{{ variant['name'] }}, "{{ classical_alg['name'] }}_{{ variant['name'] }}")
{%- endfor %}
{%- endfor %}
{%- endfor %}

Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{% for sig in config['sigs'] %}
{%- for variant in sig['variants'] %}
"{{variant['name']}}",
{%- for classical_alg in variant['mix_with'] -%}
"{{ classical_alg['name'] }}_{{ variant['name'] }}",
{%- endfor -%}
{%- endfor -%}
{%- endfor %}

54 changes: 39 additions & 15 deletions oqsprov/oqs_decode_der2key.c
Original file line number Diff line number Diff line change
Expand Up @@ -586,34 +586,58 @@ static void oqsx_key_adjust(void *key, struct der2key_ctx_st *ctx)

///// OQS_TEMPLATE_FRAGMENT_DECODER_MAKE_START
MAKE_DECODER("dilithium2", dilithium2, oqsx, PrivateKeyInfo);
MAKE_DECODER("dilithium2", dilithium2, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium2", dilithium2, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p256_dilithium2", p256_dilithium2, oqsx, PrivateKeyInfo);
bhess marked this conversation as resolved.
Show resolved Hide resolved
MAKE_DECODER("p256_dilithium2", p256_dilithium2, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("rsa3072_dilithium2", rsa3072_dilithium2, oqsx, PrivateKeyInfo);
MAKE_DECODER("rsa3072_dilithium2", rsa3072_dilithium2, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium3", dilithium3, oqsx, PrivateKeyInfo);
MAKE_DECODER("dilithium3", dilithium3, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium3", dilithium3, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p384_dilithium3", p384_dilithium3, oqsx, PrivateKeyInfo);
MAKE_DECODER("p384_dilithium3", p384_dilithium3, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium5", dilithium5, oqsx, PrivateKeyInfo);
MAKE_DECODER("dilithium5", dilithium5, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium5", dilithium5, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p521_dilithium5", p521_dilithium5, oqsx, PrivateKeyInfo);
MAKE_DECODER("p521_dilithium5", p521_dilithium5, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium2_aes", dilithium2_aes, oqsx, PrivateKeyInfo);
MAKE_DECODER("dilithium2_aes", dilithium2_aes, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium2_aes", dilithium2_aes, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p256_dilithium2_aes", p256_dilithium2_aes, oqsx, PrivateKeyInfo);
MAKE_DECODER("p256_dilithium2_aes", p256_dilithium2_aes, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("rsa3072_dilithium2_aes", rsa3072_dilithium2_aes, oqsx, PrivateKeyInfo);
MAKE_DECODER("rsa3072_dilithium2_aes", rsa3072_dilithium2_aes, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium3_aes", dilithium3_aes, oqsx, PrivateKeyInfo);
MAKE_DECODER("dilithium3_aes", dilithium3_aes, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium3_aes", dilithium3_aes, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p384_dilithium3_aes", p384_dilithium3_aes, oqsx, PrivateKeyInfo);
MAKE_DECODER("p384_dilithium3_aes", p384_dilithium3_aes, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium5_aes", dilithium5_aes, oqsx, PrivateKeyInfo);
MAKE_DECODER("dilithium5_aes", dilithium5_aes, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("dilithium5_aes", dilithium5_aes, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p521_dilithium5_aes", p521_dilithium5_aes, oqsx, PrivateKeyInfo);
MAKE_DECODER("p521_dilithium5_aes", p521_dilithium5_aes, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("falcon512", falcon512, oqsx, PrivateKeyInfo);
MAKE_DECODER("falcon512", falcon512, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("falcon512", falcon512, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p256_falcon512", p256_falcon512, oqsx, PrivateKeyInfo);
MAKE_DECODER("p256_falcon512", p256_falcon512, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("rsa3072_falcon512", rsa3072_falcon512, oqsx, PrivateKeyInfo);
MAKE_DECODER("rsa3072_falcon512", rsa3072_falcon512, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("falcon1024", falcon1024, oqsx, PrivateKeyInfo);
MAKE_DECODER("falcon1024", falcon1024, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("falcon1024", falcon1024, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p521_falcon1024", p521_falcon1024, oqsx, PrivateKeyInfo);
MAKE_DECODER("p521_falcon1024", p521_falcon1024, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("picnicl1full", picnicl1full, oqsx, PrivateKeyInfo);
MAKE_DECODER("picnicl1full", picnicl1full, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("picnicl1full", picnicl1full, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p256_picnicl1full", p256_picnicl1full, oqsx, PrivateKeyInfo);
MAKE_DECODER("p256_picnicl1full", p256_picnicl1full, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("rsa3072_picnicl1full", rsa3072_picnicl1full, oqsx, PrivateKeyInfo);
MAKE_DECODER("rsa3072_picnicl1full", rsa3072_picnicl1full, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("picnic3l1", picnic3l1, oqsx, PrivateKeyInfo);
MAKE_DECODER("picnic3l1", picnic3l1, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("picnic3l1", picnic3l1, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p256_picnic3l1", p256_picnic3l1, oqsx, PrivateKeyInfo);
MAKE_DECODER("p256_picnic3l1", p256_picnic3l1, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("rsa3072_picnic3l1", rsa3072_picnic3l1, oqsx, PrivateKeyInfo);
MAKE_DECODER("rsa3072_picnic3l1", rsa3072_picnic3l1, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("rainbowIclassic", rainbowIclassic, oqsx, PrivateKeyInfo);
MAKE_DECODER("rainbowIclassic", rainbowIclassic, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("rainbowIclassic", rainbowIclassic, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p256_rainbowIclassic", p256_rainbowIclassic, oqsx, PrivateKeyInfo);
MAKE_DECODER("p256_rainbowIclassic", p256_rainbowIclassic, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("rsa3072_rainbowIclassic", rsa3072_rainbowIclassic, oqsx, PrivateKeyInfo);
MAKE_DECODER("rsa3072_rainbowIclassic", rsa3072_rainbowIclassic, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("rainbowVclassic", rainbowVclassic, oqsx, PrivateKeyInfo);
MAKE_DECODER("rainbowVclassic", rainbowVclassic, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("rainbowVclassic", rainbowVclassic, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p521_rainbowVclassic", p521_rainbowVclassic, oqsx, PrivateKeyInfo);
MAKE_DECODER("p521_rainbowVclassic", p521_rainbowVclassic, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("sphincsharaka128frobust", sphincsharaka128frobust, oqsx, PrivateKeyInfo);
MAKE_DECODER("sphincsharaka128frobust", sphincsharaka128frobust, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("sphincsharaka128frobust", sphincsharaka128frobust, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p256_sphincsharaka128frobust", p256_sphincsharaka128frobust, oqsx, PrivateKeyInfo);
MAKE_DECODER("p256_sphincsharaka128frobust", p256_sphincsharaka128frobust, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("rsa3072_sphincsharaka128frobust", rsa3072_sphincsharaka128frobust, oqsx, PrivateKeyInfo);
MAKE_DECODER("rsa3072_sphincsharaka128frobust", rsa3072_sphincsharaka128frobust, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("sphincssha256128frobust", sphincssha256128frobust, oqsx, PrivateKeyInfo);
MAKE_DECODER("sphincssha256128frobust", sphincssha256128frobust, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("sphincssha256128frobust", sphincssha256128frobust, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p256_sphincssha256128frobust", p256_sphincssha256128frobust, oqsx, PrivateKeyInfo);
MAKE_DECODER("p256_sphincssha256128frobust", p256_sphincssha256128frobust, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("rsa3072_sphincssha256128frobust", rsa3072_sphincssha256128frobust, oqsx, PrivateKeyInfo);
MAKE_DECODER("rsa3072_sphincssha256128frobust", rsa3072_sphincssha256128frobust, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("sphincsshake256128frobust", sphincsshake256128frobust, oqsx, PrivateKeyInfo);
MAKE_DECODER("sphincsshake256128frobust", sphincsshake256128frobust, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER("sphincsshake256128frobust", sphincsshake256128frobust, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("p256_sphincsshake256128frobust", p256_sphincsshake256128frobust, oqsx, PrivateKeyInfo);
MAKE_DECODER("p256_sphincsshake256128frobust", p256_sphincsshake256128frobust, oqsx, SubjectPublicKeyInfo);MAKE_DECODER("rsa3072_sphincsshake256128frobust", rsa3072_sphincsshake256128frobust, oqsx, PrivateKeyInfo);
MAKE_DECODER("rsa3072_sphincsshake256128frobust", rsa3072_sphincsshake256128frobust, oqsx, SubjectPublicKeyInfo);
///// OQS_TEMPLATE_FRAGMENT_DECODER_MAKE_END

Loading