diff --git a/.gitignore b/.gitignore index 003421d7..58143ab0 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,8 @@ liboqs # installed SW .local # build directory -_build +/_build +/build # generated from openssl src: test/ssltestlib.c test/ssltestlib.h diff --git a/ALGORITHMS.md b/ALGORITHMS.md index 9ec32f93..b0bb5f44 100644 --- a/ALGORITHMS.md +++ b/ALGORITHMS.md @@ -54,46 +54,86 @@ As standardization for these algorithms within TLS is not done, all TLS code poi | x448_hqc192 | 0x2FB1 | Yes | OQS_CODEPOINT_X448_HQC192 | | hqc256 | 0x0246 | Yes | OQS_CODEPOINT_HQC256 | | p521_hqc256 | 0x2F46 | Yes | OQS_CODEPOINT_P521_HQC256 | -| dilithium2 | 0xfea0 |Yes| OQS_CODEPOINT_DILITHIUM2 -| p256_dilithium2 | 0xfea1 |Yes| OQS_CODEPOINT_P256_DILITHIUM2 -| rsa3072_dilithium2 | 0xfea2 |Yes| OQS_CODEPOINT_RSA3072_DILITHIUM2 +| dilithium2 | 0xfe98 |Yes| OQS_CODEPOINT_DILITHIUM2 +| p256_dilithium2 | 0xfe99 |Yes| OQS_CODEPOINT_P256_DILITHIUM2 +| rsa3072_dilithium2 | 0xfe9a |Yes| OQS_CODEPOINT_RSA3072_DILITHIUM2 +| dilithium2WithSha256 | 0xfe9b |Yes| OQS_CODEPOINT_DILITHIUM2WITHSHA256 +| dilithium2WithSha384 | 0xfe9c |Yes| OQS_CODEPOINT_DILITHIUM2WITHSHA384 +| dilithium2WithSha512 | 0xfe9d |Yes| OQS_CODEPOINT_DILITHIUM2WITHSHA512 +| dilithium2WithSha3At256 | 0xfe9e |Yes| OQS_CODEPOINT_DILITHIUM2WITHSHA3AT256 +| dilithium2WithSha3At384 | 0xfe9f |Yes| OQS_CODEPOINT_DILITHIUM2WITHSHA3AT384 +| dilithium2WithSha3At512 | 0xfea0 |Yes| OQS_CODEPOINT_DILITHIUM2WITHSHA3AT512 +| dilithium2WithShake128 | 0xfea1 |Yes| OQS_CODEPOINT_DILITHIUM2WITHSHAKE128 +| dilithium2WithShake256 | 0xfea2 |Yes| OQS_CODEPOINT_DILITHIUM2WITHSHAKE256 | dilithium3 | 0xfea3 |Yes| OQS_CODEPOINT_DILITHIUM3 | p384_dilithium3 | 0xfea4 |Yes| OQS_CODEPOINT_P384_DILITHIUM3 -| dilithium5 | 0xfea5 |Yes| OQS_CODEPOINT_DILITHIUM5 -| p521_dilithium5 | 0xfea6 |Yes| OQS_CODEPOINT_P521_DILITHIUM5 -| falcon512 | 0xfeae |Yes| OQS_CODEPOINT_FALCON512 -| p256_falcon512 | 0xfeaf |Yes| OQS_CODEPOINT_P256_FALCON512 -| rsa3072_falcon512 | 0xfeb0 |Yes| OQS_CODEPOINT_RSA3072_FALCON512 -| falcon1024 | 0xfeb1 |Yes| OQS_CODEPOINT_FALCON1024 -| p521_falcon1024 | 0xfeb2 |Yes| OQS_CODEPOINT_P521_FALCON1024 -| sphincssha2128fsimple | 0xfeb3 |Yes| OQS_CODEPOINT_SPHINCSSHA2128FSIMPLE -| p256_sphincssha2128fsimple | 0xfeb4 |Yes| OQS_CODEPOINT_P256_SPHINCSSHA2128FSIMPLE -| rsa3072_sphincssha2128fsimple | 0xfeb5 |Yes| OQS_CODEPOINT_RSA3072_SPHINCSSHA2128FSIMPLE -| sphincssha2128ssimple | 0xfeb6 |Yes| OQS_CODEPOINT_SPHINCSSHA2128SSIMPLE -| p256_sphincssha2128ssimple | 0xfeb7 |Yes| OQS_CODEPOINT_P256_SPHINCSSHA2128SSIMPLE -| rsa3072_sphincssha2128ssimple | 0xfeb8 |Yes| OQS_CODEPOINT_RSA3072_SPHINCSSHA2128SSIMPLE -| sphincssha2192fsimple | 0xfeb9 |Yes| OQS_CODEPOINT_SPHINCSSHA2192FSIMPLE -| p384_sphincssha2192fsimple | 0xfeba |Yes| OQS_CODEPOINT_P384_SPHINCSSHA2192FSIMPLE -| sphincssha2192ssimple | 0xfebb |No| OQS_CODEPOINT_SPHINCSSHA2192SSIMPLE -| p384_sphincssha2192ssimple | 0xfebc |No| OQS_CODEPOINT_P384_SPHINCSSHA2192SSIMPLE -| sphincssha2256fsimple | 0xfebd |No| OQS_CODEPOINT_SPHINCSSHA2256FSIMPLE -| p521_sphincssha2256fsimple | 0xfebe |No| OQS_CODEPOINT_P521_SPHINCSSHA2256FSIMPLE -| sphincssha2256ssimple | 0xfec0 |No| OQS_CODEPOINT_SPHINCSSHA2256SSIMPLE -| p521_sphincssha2256ssimple | 0xfec1 |No| OQS_CODEPOINT_P521_SPHINCSSHA2256SSIMPLE -| sphincsshake128fsimple | 0xfec2 |Yes| OQS_CODEPOINT_SPHINCSSHAKE128FSIMPLE -| p256_sphincsshake128fsimple | 0xfec3 |Yes| OQS_CODEPOINT_P256_SPHINCSSHAKE128FSIMPLE -| rsa3072_sphincsshake128fsimple | 0xfec4 |Yes| OQS_CODEPOINT_RSA3072_SPHINCSSHAKE128FSIMPLE -| sphincsshake128ssimple | 0xfec5 |No| OQS_CODEPOINT_SPHINCSSHAKE128SSIMPLE -| p256_sphincsshake128ssimple | 0xfec6 |No| OQS_CODEPOINT_P256_SPHINCSSHAKE128SSIMPLE -| rsa3072_sphincsshake128ssimple | 0xfec7 |No| OQS_CODEPOINT_RSA3072_SPHINCSSHAKE128SSIMPLE -| sphincsshake192fsimple | 0xfec8 |No| OQS_CODEPOINT_SPHINCSSHAKE192FSIMPLE -| p384_sphincsshake192fsimple | 0xfec9 |No| OQS_CODEPOINT_P384_SPHINCSSHAKE192FSIMPLE -| sphincsshake192ssimple | 0xfeca |No| OQS_CODEPOINT_SPHINCSSHAKE192SSIMPLE -| p384_sphincsshake192ssimple | 0xfecb |No| OQS_CODEPOINT_P384_SPHINCSSHAKE192SSIMPLE -| sphincsshake256fsimple | 0xfecc |No| OQS_CODEPOINT_SPHINCSSHAKE256FSIMPLE -| p521_sphincsshake256fsimple | 0xfecd |No| OQS_CODEPOINT_P521_SPHINCSSHAKE256FSIMPLE -| sphincsshake256ssimple | 0xfece |No| OQS_CODEPOINT_SPHINCSSHAKE256SSIMPLE -| p521_sphincsshake256ssimple | 0xfecf |No| OQS_CODEPOINT_P521_SPHINCSSHAKE256SSIMPLE +| dilithium3WithSha256 | 0xfea5 |Yes| OQS_CODEPOINT_DILITHIUM3WITHSHA256 +| dilithium3WithSha384 | 0xfea6 |Yes| OQS_CODEPOINT_DILITHIUM3WITHSHA384 +| dilithium3WithSha512 | 0xfea7 |Yes| OQS_CODEPOINT_DILITHIUM3WITHSHA512 +| dilithium3WithSha3At256 | 0xfea8 |Yes| OQS_CODEPOINT_DILITHIUM3WITHSHA3AT256 +| dilithium3WithSha3At384 | 0xfea9 |Yes| OQS_CODEPOINT_DILITHIUM3WITHSHA3AT384 +| dilithium3WithSha3At512 | 0xfeaa |Yes| OQS_CODEPOINT_DILITHIUM3WITHSHA3AT512 +| dilithium3WithShake128 | 0xfeab |Yes| OQS_CODEPOINT_DILITHIUM3WITHSHAKE128 +| dilithium3WithShake256 | 0xfeac |Yes| OQS_CODEPOINT_DILITHIUM3WITHSHAKE256 +| dilithium5 | 0xfead |Yes| OQS_CODEPOINT_DILITHIUM5 +| p521_dilithium5 | 0xfeae |Yes| OQS_CODEPOINT_P521_DILITHIUM5 +| dilithium5WithSha256 | 0xfeaf |Yes| OQS_CODEPOINT_DILITHIUM5WITHSHA256 +| dilithium5WithSha384 | 0xfeb0 |Yes| OQS_CODEPOINT_DILITHIUM5WITHSHA384 +| dilithium5WithSha512 | 0xfeb1 |Yes| OQS_CODEPOINT_DILITHIUM5WITHSHA512 +| dilithium5WithSha3At256 | 0xfeb2 |Yes| OQS_CODEPOINT_DILITHIUM5WITHSHA3AT256 +| dilithium5WithSha3At384 | 0xfeb3 |Yes| OQS_CODEPOINT_DILITHIUM5WITHSHA3AT384 +| dilithium5WithSha3At512 | 0xfeb4 |Yes| OQS_CODEPOINT_DILITHIUM5WITHSHA3AT512 +| dilithium5WithShake128 | 0xfeb5 |Yes| OQS_CODEPOINT_DILITHIUM5WITHSHAKE128 +| dilithium5WithShake256 | 0xfeb6 |Yes| OQS_CODEPOINT_DILITHIUM5WITHSHAKE256 +| falcon512 | 0xfebe |Yes| OQS_CODEPOINT_FALCON512 +| p256_falcon512 | 0xfebf |Yes| OQS_CODEPOINT_P256_FALCON512 +| rsa3072_falcon512 | 0xfec0 |Yes| OQS_CODEPOINT_RSA3072_FALCON512 +| falcon512WithSha256 | 0xfec1 |Yes| OQS_CODEPOINT_FALCON512WITHSHA256 +| falcon512WithSha384 | 0xfec2 |Yes| OQS_CODEPOINT_FALCON512WITHSHA384 +| falcon512WithSha512 | 0xfec3 |Yes| OQS_CODEPOINT_FALCON512WITHSHA512 +| falcon512WithSha3At256 | 0xfec4 |Yes| OQS_CODEPOINT_FALCON512WITHSHA3AT256 +| falcon512WithSha3At384 | 0xfec5 |Yes| OQS_CODEPOINT_FALCON512WITHSHA3AT384 +| falcon512WithSha3At512 | 0xfec6 |Yes| OQS_CODEPOINT_FALCON512WITHSHA3AT512 +| falcon512WithShake128 | 0xfec7 |Yes| OQS_CODEPOINT_FALCON512WITHSHAKE128 +| falcon512WithShake256 | 0xfec8 |Yes| OQS_CODEPOINT_FALCON512WITHSHAKE256 +| falcon1024 | 0xfec9 |Yes| OQS_CODEPOINT_FALCON1024 +| p521_falcon1024 | 0xfeca |Yes| OQS_CODEPOINT_P521_FALCON1024 +| falcon1024WithSha256 | 0xfecb |Yes| OQS_CODEPOINT_FALCON1024WITHSHA256 +| falcon1024WithSha384 | 0xfecc |Yes| OQS_CODEPOINT_FALCON1024WITHSHA384 +| falcon1024WithSha512 | 0xfecd |Yes| OQS_CODEPOINT_FALCON1024WITHSHA512 +| falcon1024WithSha3At256 | 0xfece |Yes| OQS_CODEPOINT_FALCON1024WITHSHA3AT256 +| falcon1024WithSha3At384 | 0xfecf |Yes| OQS_CODEPOINT_FALCON1024WITHSHA3AT384 +| falcon1024WithSha3At512 | 0xfed0 |Yes| OQS_CODEPOINT_FALCON1024WITHSHA3AT512 +| falcon1024WithShake128 | 0xfed1 |Yes| OQS_CODEPOINT_FALCON1024WITHSHAKE128 +| falcon1024WithShake256 | 0xfed2 |Yes| OQS_CODEPOINT_FALCON1024WITHSHAKE256 +| sphincssha2128fsimple | 0xfe61 |Yes| OQS_CODEPOINT_SPHINCSSHA2128FSIMPLE +| p256_sphincssha2128fsimple | 0xfe62 |Yes| OQS_CODEPOINT_P256_SPHINCSSHA2128FSIMPLE +| rsa3072_sphincssha2128fsimple | 0xfe63 |Yes| OQS_CODEPOINT_RSA3072_SPHINCSSHA2128FSIMPLE +| sphincssha2128ssimple | 0xfe6a |Yes| OQS_CODEPOINT_SPHINCSSHA2128SSIMPLE +| p256_sphincssha2128ssimple | 0xfe6b |Yes| OQS_CODEPOINT_P256_SPHINCSSHA2128SSIMPLE +| rsa3072_sphincssha2128ssimple | 0xfe6c |Yes| OQS_CODEPOINT_RSA3072_SPHINCSSHA2128SSIMPLE +| sphincssha2192fsimple | 0xfe72 |Yes| OQS_CODEPOINT_SPHINCSSHA2192FSIMPLE +| p384_sphincssha2192fsimple | 0xfe73 |Yes| OQS_CODEPOINT_P384_SPHINCSSHA2192FSIMPLE +| sphincssha2192ssimple | 0xfe78 |No| OQS_CODEPOINT_SPHINCSSHA2192SSIMPLE +| p384_sphincssha2192ssimple | 0xfe79 |No| OQS_CODEPOINT_P384_SPHINCSSHA2192SSIMPLE +| sphincssha2256fsimple | 0xfe7e |No| OQS_CODEPOINT_SPHINCSSHA2256FSIMPLE +| p521_sphincssha2256fsimple | 0xfe7f |No| OQS_CODEPOINT_P521_SPHINCSSHA2256FSIMPLE +| sphincssha2256ssimple | 0xfe84 |No| OQS_CODEPOINT_SPHINCSSHA2256SSIMPLE +| p521_sphincssha2256ssimple | 0xfe85 |No| OQS_CODEPOINT_P521_SPHINCSSHA2256SSIMPLE +| sphincsshake128fsimple | 0xff03 |Yes| OQS_CODEPOINT_SPHINCSSHAKE128FSIMPLE +| p256_sphincsshake128fsimple | 0xff04 |Yes| OQS_CODEPOINT_P256_SPHINCSSHAKE128FSIMPLE +| rsa3072_sphincsshake128fsimple | 0xff05 |Yes| OQS_CODEPOINT_RSA3072_SPHINCSSHAKE128FSIMPLE +| sphincsshake128ssimple | 0xff0c |No| OQS_CODEPOINT_SPHINCSSHAKE128SSIMPLE +| p256_sphincsshake128ssimple | 0xff0d |No| OQS_CODEPOINT_P256_SPHINCSSHAKE128SSIMPLE +| rsa3072_sphincsshake128ssimple | 0xff0e |No| OQS_CODEPOINT_RSA3072_SPHINCSSHAKE128SSIMPLE +| sphincsshake192fsimple | 0xff14 |No| OQS_CODEPOINT_SPHINCSSHAKE192FSIMPLE +| p384_sphincsshake192fsimple | 0xff15 |No| OQS_CODEPOINT_P384_SPHINCSSHAKE192FSIMPLE +| sphincsshake192ssimple | 0xff1a |No| OQS_CODEPOINT_SPHINCSSHAKE192SSIMPLE +| p384_sphincsshake192ssimple | 0xff1b |No| OQS_CODEPOINT_P384_SPHINCSSHAKE192SSIMPLE +| sphincsshake256fsimple | 0xff20 |No| OQS_CODEPOINT_SPHINCSSHAKE256FSIMPLE +| p521_sphincsshake256fsimple | 0xff21 |No| OQS_CODEPOINT_P521_SPHINCSSHAKE256FSIMPLE +| sphincsshake256ssimple | 0xff26 |No| OQS_CODEPOINT_SPHINCSSHAKE256SSIMPLE +| p521_sphincsshake256ssimple | 0xff27 |No| OQS_CODEPOINT_P521_SPHINCSSHAKE256SSIMPLE Changing code points @@ -122,15 +162,55 @@ adapting the OIDs of all supported signature algorithms as per the table below. | dilithium2 | 1.3.6.1.4.1.2.267.7.4.4 |Yes| OQS_OID_DILITHIUM2 | p256_dilithium2 | 1.3.9999.2.7.1 |Yes| OQS_OID_P256_DILITHIUM2 | rsa3072_dilithium2 | 1.3.9999.2.7.2 |Yes| OQS_OID_RSA3072_DILITHIUM2 +| dilithium2WithSha256 | 1.3.6.1.4.1.18227.999.1.1.1 |Yes| OQS_OID_DILITHIUM2WITHSHA256 +| dilithium2WithSha384 | 1.3.6.1.4.1.18227.999.1.1.2 |Yes| OQS_OID_DILITHIUM2WITHSHA384 +| dilithium2WithSha512 | 1.3.6.1.4.1.18227.999.1.1.3 |Yes| OQS_OID_DILITHIUM2WITHSHA512 +| dilithium2WithSha3At256 | 1.3.6.1.4.1.18227.999.1.1.4 |Yes| OQS_OID_DILITHIUM2WITHSHA3AT256 +| dilithium2WithSha3At384 | 1.3.6.1.4.1.18227.999.1.1.5 |Yes| OQS_OID_DILITHIUM2WITHSHA3AT384 +| dilithium2WithSha3At512 | 1.3.6.1.4.1.18227.999.1.1.6 |Yes| OQS_OID_DILITHIUM2WITHSHA3AT512 +| dilithium2WithShake128 | 1.3.6.1.4.1.18227.999.1.1.7 |Yes| OQS_OID_DILITHIUM2WITHSHAKE128 +| dilithium2WithShake256 | 1.3.6.1.4.1.18227.999.1.1.8 |Yes| OQS_OID_DILITHIUM2WITHSHAKE256 | dilithium3 | 1.3.6.1.4.1.2.267.7.6.5 |Yes| OQS_OID_DILITHIUM3 | p384_dilithium3 | 1.3.9999.2.7.3 |Yes| OQS_OID_P384_DILITHIUM3 +| dilithium3WithSha256 | 1.3.6.1.4.1.18227.999.1.2.1 |Yes| OQS_OID_DILITHIUM3WITHSHA256 +| dilithium3WithSha384 | 1.3.6.1.4.1.18227.999.1.2.2 |Yes| OQS_OID_DILITHIUM3WITHSHA384 +| dilithium3WithSha512 | 1.3.6.1.4.1.18227.999.1.2.3 |Yes| OQS_OID_DILITHIUM3WITHSHA512 +| dilithium3WithSha3At256 | 1.3.6.1.4.1.18227.999.1.2.4 |Yes| OQS_OID_DILITHIUM3WITHSHA3AT256 +| dilithium3WithSha3At384 | 1.3.6.1.4.1.18227.999.1.2.5 |Yes| OQS_OID_DILITHIUM3WITHSHA3AT384 +| dilithium3WithSha3At512 | 1.3.6.1.4.1.18227.999.1.2.6 |Yes| OQS_OID_DILITHIUM3WITHSHA3AT512 +| dilithium3WithShake128 | 1.3.6.1.4.1.18227.999.1.2.7 |Yes| OQS_OID_DILITHIUM3WITHSHAKE128 +| dilithium3WithShake256 | 1.3.6.1.4.1.18227.999.1.2.8 |Yes| OQS_OID_DILITHIUM3WITHSHAKE256 | dilithium5 | 1.3.6.1.4.1.2.267.7.8.7 |Yes| OQS_OID_DILITHIUM5 | p521_dilithium5 | 1.3.9999.2.7.4 |Yes| OQS_OID_P521_DILITHIUM5 +| dilithium5WithSha256 | 1.3.6.1.4.1.18227.999.1.3.1 |Yes| OQS_OID_DILITHIUM5WITHSHA256 +| dilithium5WithSha384 | 1.3.6.1.4.1.18227.999.1.3.2 |Yes| OQS_OID_DILITHIUM5WITHSHA384 +| dilithium5WithSha512 | 1.3.6.1.4.1.18227.999.1.3.3 |Yes| OQS_OID_DILITHIUM5WITHSHA512 +| dilithium5WithSha3At256 | 1.3.6.1.4.1.18227.999.1.3.4 |Yes| OQS_OID_DILITHIUM5WITHSHA3AT256 +| dilithium5WithSha3At384 | 1.3.6.1.4.1.18227.999.1.3.5 |Yes| OQS_OID_DILITHIUM5WITHSHA3AT384 +| dilithium5WithSha3At512 | 1.3.6.1.4.1.18227.999.1.3.6 |Yes| OQS_OID_DILITHIUM5WITHSHA3AT512 +| dilithium5WithShake128 | 1.3.6.1.4.1.18227.999.1.3.7 |Yes| OQS_OID_DILITHIUM5WITHSHAKE128 +| dilithium5WithShake256 | 1.3.6.1.4.1.18227.999.1.3.8 |Yes| OQS_OID_DILITHIUM5WITHSHAKE256 | falcon512 | 1.3.9999.3.6 |Yes| OQS_OID_FALCON512 | p256_falcon512 | 1.3.9999.3.7 |Yes| OQS_OID_P256_FALCON512 | rsa3072_falcon512 | 1.3.9999.3.8 |Yes| OQS_OID_RSA3072_FALCON512 +| falcon512WithSha256 | 1.3.6.1.4.1.18227.999.2.3.1.1 |Yes| OQS_OID_FALCON512WITHSHA256 +| falcon512WithSha384 | 1.3.6.1.4.1.18227.999.2.3.2.1 |Yes| OQS_OID_FALCON512WITHSHA384 +| falcon512WithSha512 | 1.3.6.1.4.1.18227.999.2.3.3.1 |Yes| OQS_OID_FALCON512WITHSHA512 +| falcon512WithSha3At256 | 1.3.6.1.4.1.18227.999.2.3.4.1 |Yes| OQS_OID_FALCON512WITHSHA3AT256 +| falcon512WithSha3At384 | 1.3.6.1.4.1.18227.999.2.3.5.1 |Yes| OQS_OID_FALCON512WITHSHA3AT384 +| falcon512WithSha3At512 | 1.3.6.1.4.1.18227.999.2.3.6.1 |Yes| OQS_OID_FALCON512WITHSHA3AT512 +| falcon512WithShake128 | 1.3.6.1.4.1.18227.999.2.3.7.1 |Yes| OQS_OID_FALCON512WITHSHAKE128 +| falcon512WithShake256 | 1.3.6.1.4.1.18227.999.2.3.8.1 |Yes| OQS_OID_FALCON512WITHSHAKE256 | falcon1024 | 1.3.9999.3.9 |Yes| OQS_OID_FALCON1024 | p521_falcon1024 | 1.3.9999.3.10 |Yes| OQS_OID_P521_FALCON1024 +| falcon1024WithSha256 | 1.3.6.1.4.1.18227.999.2.2.1.1 |Yes| OQS_OID_FALCON1024WITHSHA256 +| falcon1024WithSha384 | 1.3.6.1.4.1.18227.999.2.2.2.1 |Yes| OQS_OID_FALCON1024WITHSHA384 +| falcon1024WithSha512 | 1.3.6.1.4.1.18227.999.2.2.3.1 |Yes| OQS_OID_FALCON1024WITHSHA512 +| falcon1024WithSha3At256 | 1.3.6.1.4.1.18227.999.2.2.4.1 |Yes| OQS_OID_FALCON1024WITHSHA3AT256 +| falcon1024WithSha3At384 | 1.3.6.1.4.1.18227.999.2.2.5.1 |Yes| OQS_OID_FALCON1024WITHSHA3AT384 +| falcon1024WithSha3At512 | 1.3.6.1.4.1.18227.999.2.2.6.1 |Yes| OQS_OID_FALCON1024WITHSHA3AT512 +| falcon1024WithShake128 | 1.3.6.1.4.1.18227.999.2.2.7.1 |Yes| OQS_OID_FALCON1024WITHSHAKE128 +| falcon1024WithShake256 | 1.3.6.1.4.1.18227.999.2.2.8.1 |Yes| OQS_OID_FALCON1024WITHSHAKE256 | sphincssha2128fsimple | 1.3.9999.6.4.13 |Yes| OQS_OID_SPHINCSSHA2128FSIMPLE | p256_sphincssha2128fsimple | 1.3.9999.6.4.14 |Yes| OQS_OID_P256_SPHINCSSHA2128FSIMPLE | rsa3072_sphincssha2128fsimple | 1.3.9999.6.4.15 |Yes| OQS_OID_RSA3072_SPHINCSSHA2128FSIMPLE @@ -220,10 +300,50 @@ By setting environment variables, oqs-provider can be configured to encode keys |Environment Variable | Permissible Values | | --- | --- | |`OQS_ENCODING_DILITHIUM2`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM2WITHSHA256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM2WITHSHA384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM2WITHSHA512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM2WITHSHA3AT256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM2WITHSHA3AT384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM2WITHSHA3AT512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM2WITHSHAKE128`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM2WITHSHAKE256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| |`OQS_ENCODING_DILITHIUM3`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM3WITHSHA256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM3WITHSHA384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM3WITHSHA512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM3WITHSHA3AT256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM3WITHSHA3AT384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM3WITHSHA3AT512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM3WITHSHAKE128`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM3WITHSHAKE256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| |`OQS_ENCODING_DILITHIUM5`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM5WITHSHA256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM5WITHSHA384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM5WITHSHA512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM5WITHSHA3AT256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM5WITHSHA3AT384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM5WITHSHA3AT512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM5WITHSHAKE128`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_DILITHIUM5WITHSHAKE256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| |`OQS_ENCODING_FALCON512`|`draft-uni-qsckeys-falcon-00/sk-pk`| +|`OQS_ENCODING_FALCON512WITHSHA256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON512WITHSHA384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON512WITHSHA512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON512WITHSHA3AT256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON512WITHSHA3AT384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON512WITHSHA3AT512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON512WITHSHAKE128`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON512WITHSHAKE256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| |`OQS_ENCODING_FALCON1024`|`draft-uni-qsckeys-falcon-00/sk-pk`| +|`OQS_ENCODING_FALCON1024WITHSHA256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON1024WITHSHA384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON1024WITHSHA512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON1024WITHSHA3AT256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON1024WITHSHA3AT384`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON1024WITHSHA3AT512`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON1024WITHSHAKE128`|`draft-uni-qsckeys-dilithium-00/sk-pk`| +|`OQS_ENCODING_FALCON1024WITHSHAKE256`|`draft-uni-qsckeys-dilithium-00/sk-pk`| |`OQS_ENCODING_SPHINCSSHA2128FSIMPLE`|`draft-uni-qsckeys-sphincsplus-00/sk-pk`| |`OQS_ENCODING_SPHINCSSHA2128SSIMPLE`|`draft-uni-qsckeys-sphincsplus-00/sk-pk`| |`OQS_ENCODING_SPHINCSSHA2192FSIMPLE`|`draft-uni-qsckeys-sphincsplus-00/sk-pk`| diff --git a/README.md b/README.md index 23d07b70..e839d46a 100644 --- a/README.md +++ b/README.md @@ -43,8 +43,8 @@ This implementation makes available the following quantum safe algorithms: ### Signature algorithms -- **CRYSTALS-Dilithium**:`dilithium2`\*, `p256_dilithium2`\*, `rsa3072_dilithium2`\*, `dilithium3`\*, `p384_dilithium3`\*, `dilithium5`\*, `p521_dilithium5`\* -- **Falcon**:`falcon512`\*, `p256_falcon512`\*, `rsa3072_falcon512`\*, `falcon1024`\*, `p521_falcon1024`\* +- **CRYSTALS-Dilithium**:`dilithium2`\*, `p256_dilithium2`\*, `rsa3072_dilithium2`\*, `dilithium2WithSha256`\*, `dilithium2WithSha384`\*, `dilithium2WithSha512`\*, `dilithium2WithSha3At256`\*, `dilithium2WithSha3At384`\*, `dilithium2WithSha3At512`\*, `dilithium2WithShake128`\*, `dilithium2WithShake256`\*, `dilithium3`\*, `p384_dilithium3`\*, `dilithium3WithSha256`\*, `dilithium3WithSha384`\*, `dilithium3WithSha512`\*, `dilithium3WithSha3At256`\*, `dilithium3WithSha3At384`\*, `dilithium3WithSha3At512`\*, `dilithium3WithShake128`\*, `dilithium3WithShake256`\*, `dilithium5`\*, `p521_dilithium5`\*, `dilithium5WithSha256`\*, `dilithium5WithSha384`\*, `dilithium5WithSha512`\*, `dilithium5WithSha3At256`\*, `dilithium5WithSha3At384`\*, `dilithium5WithSha3At512`\*, `dilithium5WithShake128`\*, `dilithium5WithShake256`\* +- **Falcon**:`falcon512`\*, `p256_falcon512`\*, `rsa3072_falcon512`\*, `falcon512WithSha256`\*, `falcon512WithSha384`\*, `falcon512WithSha512`\*, `falcon512WithSha3At256`\*, `falcon512WithSha3At384`\*, `falcon512WithSha3At512`\*, `falcon512WithShake128`\*, `falcon512WithShake256`\*, `falcon1024`\*, `p521_falcon1024`\*, `falcon1024WithSha256`\*, `falcon1024WithSha384`\*, `falcon1024WithSha512`\*, `falcon1024WithSha3At256`\*, `falcon1024WithSha3At384`\*, `falcon1024WithSha3At512`\*, `falcon1024WithShake128`\*, `falcon1024WithShake256`\* - **SPHINCS-SHA2**:`sphincssha2128fsimple`\*, `p256_sphincssha2128fsimple`\*, `rsa3072_sphincssha2128fsimple`\*, `sphincssha2128ssimple`\*, `p256_sphincssha2128ssimple`\*, `rsa3072_sphincssha2128ssimple`\*, `sphincssha2192fsimple`\*, `p384_sphincssha2192fsimple`\*, `sphincssha2192ssimple`, `p384_sphincssha2192ssimple`, `sphincssha2256fsimple`, `p521_sphincssha2256fsimple`, `sphincssha2256ssimple`, `p521_sphincssha2256ssimple` - **SPHINCS-SHAKE**:`sphincsshake128fsimple`\*, `p256_sphincsshake128fsimple`\*, `rsa3072_sphincsshake128fsimple`\*, `sphincsshake128ssimple`, `p256_sphincsshake128ssimple`, `rsa3072_sphincsshake128ssimple`, `sphincsshake192fsimple`, `p384_sphincsshake192fsimple`, `sphincsshake192ssimple`, `p384_sphincsshake192ssimple`, `sphincsshake256fsimple`, `p521_sphincsshake256fsimple`, `sphincsshake256ssimple`, `p521_sphincsshake256ssimple` diff --git a/oqs-template/generate.py b/oqs-template/generate.py index 03271e8f..83555d83 100644 --- a/oqs-template/generate.py +++ b/oqs-template/generate.py @@ -73,7 +73,12 @@ def get_sig_nistlevel(family, alg): # hacks to match names def matches(name, alg): def simplify(s): - return s.lower().replace('_', '').replace('-', '').replace('+', '') + s = s.lower().replace('_', '').replace('-', '').replace('+', '') + with_index = s.find("with") # Find the index of the "with" sequence + if with_index != -1: # If "with" is found + return s[:with_index] # Return the substring before "with" + else: + return s # Return the original string if "with" is not found if simplify(name) == simplify(alg['name']): return True return False # find the variant that matches diff --git a/oqs-template/generate.yml b/oqs-template/generate.yml index 099d36ed..a5e75e52 100644 --- a/oqs-template/generate.yml +++ b/oqs-template/generate.yml @@ -405,17 +405,98 @@ sigs: pretty_name: 'Dilithium2' oqs_meth: 'OQS_SIG_alg_dilithium_2' oid: '1.3.6.1.4.1.2.267.7.4.4' - code_point: '0xfea0' + code_point: '0xfe98' supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] enable: true mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.2.7.1', - 'code_point': '0xfea1'}, + 'code_point': '0xfe99'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.2.7.2', - 'code_point': '0xfea2'}] + 'code_point': '0xfe9a'}] + + - + name: 'dilithium2WithSha256' + pretty_name: 'DILITHIUM2-SHA256' + oqs_meth: 'OQS_SIG_alg_dilithium_2' + oid: '1.3.6.1.4.1.18227.999.1.1.1' + digest: SHA256 + code_point: '0xfe9b' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium2WithSha384' + pretty_name: 'DILITHIUM2-SHA384' + oqs_meth: 'OQS_SIG_alg_dilithium_2' + oid: '1.3.6.1.4.1.18227.999.1.1.2' + digest: SHA384 + code_point: '0xfe9c' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium2WithSha512' + pretty_name: 'DILITHIUM2-SHA512' + oqs_meth: 'OQS_SIG_alg_dilithium_2' + oid: '1.3.6.1.4.1.18227.999.1.1.3' + digest: SHA512 + code_point: '0xfe9d' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium2WithSha3At256' + pretty_name: 'DILITHIUM2-SHA3-256' + oqs_meth: 'OQS_SIG_alg_dilithium_2' + oid: '1.3.6.1.4.1.18227.999.1.1.4' + digest: SHA3-256 + code_point: '0xfe9e' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium2WithSha3At384' + pretty_name: 'DILITHIUM2-SHA3-384' + oqs_meth: 'OQS_SIG_alg_dilithium_2' + oid: '1.3.6.1.4.1.18227.999.1.1.5' + digest: SHA3-384 + code_point: '0xfe9f' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium2WithSha3At512' + pretty_name: 'DILITHIUM2-SHA3-512' + oqs_meth: 'OQS_SIG_alg_dilithium_2' + oid: '1.3.6.1.4.1.18227.999.1.1.6' + digest: SHA3-512 + code_point: '0xfea0' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium2WithShake128' + pretty_name: 'DILITHIUM2-SHAKE128' + oqs_meth: 'OQS_SIG_alg_dilithium_2' + oid: '1.3.6.1.4.1.18227.999.1.1.7' + digest: SHAKE128 + code_point: '0xfea1' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium2WithShake256' + pretty_name: 'DILITHIUM2-SHAKE256' + oqs_meth: 'OQS_SIG_alg_dilithium_2' + oid: '1.3.6.1.4.1.18227.999.1.1.8' + digest: SHAKE256 + code_point: '0xfea2' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + - name: 'dilithium3' pretty_name: 'Dilithium3' @@ -428,18 +509,178 @@ sigs: 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.2.7.3', 'code_point': '0xfea4'}] + - + name: 'dilithium3WithSha256' + pretty_name: 'DILITHIUM3-SHA256' + oqs_meth: 'OQS_SIG_alg_dilithium_3' + oid: '1.3.6.1.4.1.18227.999.1.2.1' + digest: SHA256 + code_point: '0xfea5' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium3WithSha384' + pretty_name: 'DILITHIUM3-SHA384' + oqs_meth: 'OQS_SIG_alg_dilithium_3' + oid: '1.3.6.1.4.1.18227.999.1.2.2' + digest: SHA384 + code_point: '0xfea6' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium3WithSha512' + pretty_name: 'DILITHIUM3-SHA512' + oqs_meth: 'OQS_SIG_alg_dilithium_3' + oid: '1.3.6.1.4.1.18227.999.1.2.3' + digest: SHA512 + code_point: '0xfea7' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium3WithSha3At256' + pretty_name: 'DILITHIUM3-SHA3-256' + oqs_meth: 'OQS_SIG_alg_dilithium_3' + oid: '1.3.6.1.4.1.18227.999.1.2.4' + digest: SHA3-256 + code_point: '0xfea8' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium3WithSha3At384' + pretty_name: 'DILITHIUM3-SHA3-384' + oqs_meth: 'OQS_SIG_alg_dilithium_3' + oid: '1.3.6.1.4.1.18227.999.1.2.5' + digest: SHA3-384 + code_point: '0xfea9' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium3WithSha3At512' + pretty_name: 'DILITHIUM3-SHA3-512' + oqs_meth: 'OQS_SIG_alg_dilithium_3' + oid: '1.3.6.1.4.1.18227.999.1.2.6' + digest: SHA3-512 + code_point: '0xfeaa' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium3WithShake128' + pretty_name: 'DILITHIUM3-SHAKE128' + oqs_meth: 'OQS_SIG_alg_dilithium_3' + oid: '1.3.6.1.4.1.18227.999.1.2.7' + digest: SHAKE128 + code_point: '0xfeab' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium3WithShake256' + pretty_name: 'DILITHIUM3-SHAKE256' + oqs_meth: 'OQS_SIG_alg_dilithium_3' + oid: '1.3.6.1.4.1.18227.999.1.2.8' + digest: SHAKE256 + code_point: '0xfeac' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + - name: 'dilithium5' pretty_name: 'Dilithium5' oqs_meth: 'OQS_SIG_alg_dilithium_5' oid: '1.3.6.1.4.1.2.267.7.8.7' - code_point: '0xfea5' + code_point: '0xfead' supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] enable: true mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.2.7.4', - 'code_point': '0xfea6'}] + 'code_point': '0xfeae'}] + + - + name: 'dilithium5WithSha256' + pretty_name: 'DILITHIUM5-SHA256' + oqs_meth: 'OQS_SIG_alg_dilithium_5' + oid: '1.3.6.1.4.1.18227.999.1.3.1' + digest: SHA256 + code_point: '0xfeaf' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium5WithSha384' + pretty_name: 'DILITHIUM5-SHA384' + oqs_meth: 'OQS_SIG_alg_dilithium_5' + oid: '1.3.6.1.4.1.18227.999.1.3.2' + digest: SHA384 + code_point: '0xfeb0' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium5WithSha512' + pretty_name: 'DILITHIUM5-SHA512' + oqs_meth: 'OQS_SIG_alg_dilithium_5' + oid: '1.3.6.1.4.1.18227.999.1.3.3' + digest: SHA512 + code_point: '0xfeb1' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium5WithSha3At256' + pretty_name: 'DILITHIUM5-SHA3-256' + oqs_meth: 'OQS_SIG_alg_dilithium_5' + oid: '1.3.6.1.4.1.18227.999.1.3.4' + digest: SHA3-256 + code_point: '0xfeb2' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium5WithSha3At384' + pretty_name: 'DILITHIUM5-SHA3-384' + oqs_meth: 'OQS_SIG_alg_dilithium_5' + oid: '1.3.6.1.4.1.18227.999.1.3.5' + digest: SHA3-384 + code_point: '0xfeb3' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium5WithSha3At512' + pretty_name: 'DILITHIUM5-SHA3-512' + oqs_meth: 'OQS_SIG_alg_dilithium_5' + oid: '1.3.6.1.4.1.18227.999.1.3.6' + digest: SHA3-512 + code_point: '0xfeb4' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium5WithShake128' + pretty_name: 'DILITHIUM5-SHAKE128' + oqs_meth: 'OQS_SIG_alg_dilithium_5' + oid: '1.3.6.1.4.1.18227.999.1.3.7' + digest: SHAKE128 + code_point: '0xfeb5' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'dilithium5WithShake256' + pretty_name: 'DILITHIUM5-SHAKE256' + oqs_meth: 'OQS_SIG_alg_dilithium_5' + oid: '1.3.6.1.4.1.18227.999.1.3.8' + digest: SHAKE256 + code_point: '0xfeb6' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true - name: 'dilithium2_aes' pretty_name: 'Dilithium2_AES' @@ -449,16 +690,16 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.6.1.4.1.2.267.11.4.4' - code_point: '0xfea7' + code_point: '0xfeb7' supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.2.11.1', - 'code_point': '0xfea8'}, + 'code_point': '0xfeb8'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.2.11.2', - 'code_point': '0xfea9'}] + 'code_point': '0xfeb9'}] - name: 'dilithium3_aes' pretty_name: 'Dilithium3_AES' @@ -468,12 +709,12 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.6.1.4.1.2.267.11.6.5' - code_point: '0xfeaa' + code_point: '0xfeba' supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.2.11.3', - 'code_point': '0xfeab'}] + 'code_point': '0xfebb'}] - name: 'dilithium5_aes' pretty_name: 'Dilithium5_AES' @@ -483,12 +724,12 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.6.1.4.1.2.267.11.8.7' - code_point: '0xfeac' + code_point: '0xfebc' supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.2.11.4', - 'code_point': '0xfead'}] + 'code_point': '0xfebd'}] - # iso (1) # identified-organization (3) @@ -501,17 +742,17 @@ sigs: pretty_name: 'Falcon-512' oqs_meth: 'OQS_SIG_alg_falcon_512' oid: '1.3.9999.3.6' - code_point: '0xfeae' + code_point: '0xfebe' supported_encodings: ['draft-uni-qsckeys-falcon-00/sk-pk'] enable: true mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.3.7', - 'code_point': '0xfeaf'}, + 'code_point': '0xfebf'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.3.8', - 'code_point': '0xfeb0'}] + 'code_point': '0xfec0'}] extra_nids: old: - implementation_version: NIST Round 3 submission @@ -526,18 +767,99 @@ sigs: 'pretty_name': 'RSA3072', 'oid': '1.3.9999.3.3', 'code_point': '0xfe0d'}] + + - + name: 'falcon512WithSha256' + pretty_name: 'Falcon512-SHA256' + oqs_meth: 'OQS_SIG_alg_falcon_512' + oid: '1.3.6.1.4.1.18227.999.2.3.1.1' + digest: SHA256 + code_point: '0xfec1' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon512WithSha384' + pretty_name: 'Falcon512-SHA384' + oqs_meth: 'OQS_SIG_alg_falcon_512' + oid: '1.3.6.1.4.1.18227.999.2.3.2.1' + digest: SHA384 + code_point: '0xfec2' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon512WithSha512' + pretty_name: 'Falcon512-SHA512' + oqs_meth: 'OQS_SIG_alg_falcon_512' + oid: '1.3.6.1.4.1.18227.999.2.3.3.1' + digest: SHA512 + code_point: '0xfec3' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon512WithSha3At256' + pretty_name: 'Falcon512-SHA3-256' + oqs_meth: 'OQS_SIG_alg_falcon_512' + oid: '1.3.6.1.4.1.18227.999.2.3.4.1' + digest: SHA3-256 + code_point: '0xfec4' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon512WithSha3At384' + pretty_name: 'Falcon512-SHA3-384' + oqs_meth: 'OQS_SIG_alg_falcon_512' + oid: '1.3.6.1.4.1.18227.999.2.3.5.1' + digest: SHA3-384 + code_point: '0xfec5' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon512WithSha3At512' + pretty_name: 'Falcon512-SHA3-512' + oqs_meth: 'OQS_SIG_alg_falcon_512' + oid: '1.3.6.1.4.1.18227.999.2.3.6.1' + digest: SHA3-512 + code_point: '0xfec6' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon512WithShake128' + pretty_name: 'Falcon512-SHAKE128' + oqs_meth: 'OQS_SIG_alg_falcon_512' + oid: '1.3.6.1.4.1.18227.999.2.3.7.1' + digest: SHAKE128 + code_point: '0xfec7' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon512WithShake256' + pretty_name: 'Falcon512-SHAKE256' + oqs_meth: 'OQS_SIG_alg_falcon_512' + oid: '1.3.6.1.4.1.18227.999.2.3.8.1' + digest: SHAKE256 + code_point: '0xfec8' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + - name: 'falcon1024' pretty_name: 'Falcon-1024' oqs_meth: 'OQS_SIG_alg_falcon_1024' oid: '1.3.9999.3.9' - code_point: '0xfeb1' + code_point: '0xfec9' supported_encodings: ['draft-uni-qsckeys-falcon-00/sk-pk'] enable: true mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.3.10', - 'code_point': '0xfeb2'}] + 'code_point': '0xfeca'}] extra_nids: old: - implementation_version: NIST Round 3 submission @@ -548,6 +870,86 @@ sigs: 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.3.5', 'code_point': '0xfe0f'}] + + - + name: 'falcon1024WithSha256' + pretty_name: 'Falcon1024-SHA256' + oqs_meth: 'OQS_SIG_alg_falcon_1024' + oid: '1.3.6.1.4.1.18227.999.2.2.1.1' + digest: SHA256 + code_point: '0xfecb' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon1024WithSha384' + pretty_name: 'Falcon1024-SHA384' + oqs_meth: 'OQS_SIG_alg_falcon_1024' + oid: '1.3.6.1.4.1.18227.999.2.2.2.1' + digest: SHA384 + code_point: '0xfecc' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon1024WithSha512' + pretty_name: 'Falcon1024-SHA512' + oqs_meth: 'OQS_SIG_alg_falcon_1024' + oid: '1.3.6.1.4.1.18227.999.2.2.3.1' + digest: SHA512 + code_point: '0xfecd' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon1024WithSha3At256' + pretty_name: 'Falcon1024-SHA3-256' + oqs_meth: 'OQS_SIG_alg_falcon_1024' + oid: '1.3.6.1.4.1.18227.999.2.2.4.1' + digest: SHA3-256 + code_point: '0xfece' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon1024WithSha3At384' + pretty_name: 'Falcon1024-SHA3-384' + oqs_meth: 'OQS_SIG_alg_falcon_1024' + oid: '1.3.6.1.4.1.18227.999.2.2.5.1' + digest: SHA3-384 + code_point: '0xfecf' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon1024WithSha3At512' + pretty_name: 'Falcon1024-SHA3-512' + oqs_meth: 'OQS_SIG_alg_falcon_1024' + oid: '1.3.6.1.4.1.18227.999.2.2.6.1' + digest: SHA3-512 + code_point: '0xfed0' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon1024WithShake128' + pretty_name: 'Falcon1024-SHAKE128' + oqs_meth: 'OQS_SIG_alg_falcon_1024' + oid: '1.3.6.1.4.1.18227.999.2.2.7.1' + digest: SHAKE128 + code_point: '0xfed1' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true + + - + name: 'falcon1024WithShake256' + pretty_name: 'Falcon1024-SHAKE256' + oqs_meth: 'OQS_SIG_alg_falcon_1024' + oid: '1.3.6.1.4.1.18227.999.2.2.8.1' + digest: SHAKE256 + code_point: '0xfed2' + supported_encodings: ['draft-uni-qsckeys-dilithium-00/sk-pk'] + enable: true - family: 'SPHINCS-Haraka' variants: @@ -774,32 +1176,32 @@ sigs: pretty_name: 'SPHINCS+-SHA2-128f-simple' oqs_meth: 'OQS_SIG_alg_sphincs_sha2_128f_simple' oid: '1.3.9999.6.4.13' - code_point: '0xfeb3' + code_point: '0xfe61' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: true mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.4.14', - 'code_point': '0xfeb4'}, + 'code_point': '0xfe62'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.4.15', - 'code_point': '0xfeb5'}] + 'code_point': '0xfe63'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.4.4' - code_point: '0xfe61' + code_point: '0xfe64' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.4.5', - 'code_point': '0xfe62'}, + 'code_point': '0xfe65'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.4.6', - 'code_point': '0xfe63'}] + 'code_point': '0xfe66'}] - name: 'sphincssha256128srobust' pretty_name: 'SPHINCS+-SHA256-128s-robust' @@ -809,47 +1211,47 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.4.7' - code_point: '0xfe64' + code_point: '0xfe67' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.4.8', - 'code_point': '0xfe65'}, + 'code_point': '0xfe68'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.4.9', - 'code_point': '0xfe66'}] + 'code_point': '0xfe69'}] - name: 'sphincssha2128ssimple' pretty_name: 'SPHINCS+-SHA2-128s-simple' oqs_meth: 'OQS_SIG_alg_sphincs_sha2_128s_simple' oid: '1.3.9999.6.4.16' - code_point: '0xfeb6' + code_point: '0xfe6a' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: true mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.4.17', - 'code_point': '0xfeb7'}, + 'code_point': '0xfe6b'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.4.18', - 'code_point': '0xfeb8'}] + 'code_point': '0xfe6c'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.4.10' - code_point: '0xfe67' + code_point: '0xfe6d' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.4.11', - 'code_point': '0xfe68'}, + 'code_point': '0xfe6e'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.4.12', - 'code_point': '0xfe69'}] + 'code_point': '0xfe6f'}] - name: 'sphincssha256192frobust' pretty_name: 'SPHINCS+-SHA256-192f-robust' @@ -859,35 +1261,35 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.5.1' - code_point: '0xfe6a' + code_point: '0xfe70' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.5.2', - 'code_point': '0xfe6b'}] + 'code_point': '0xfe71'}] - name: 'sphincssha2192fsimple' pretty_name: 'SPHINCS+-SHA2-192f-simple' oqs_meth: 'OQS_SIG_alg_sphincs_sha2_192f_simple' oid: '1.3.9999.6.5.10' - code_point: '0xfeb9' + code_point: '0xfe72' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: true mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.5.11', - 'code_point': '0xfeba'}] + 'code_point': '0xfe73'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.5.3' - code_point: '0xfe6c' + code_point: '0xfe74' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.5.4', - 'code_point': '0xfe6d'}] + 'code_point': '0xfe75'}] - name: 'sphincssha256192srobust' pretty_name: 'SPHINCS+-SHA256-192s-robust' @@ -897,35 +1299,35 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.5.5' - code_point: '0xfe6e' + code_point: '0xfe76' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.5.6', - 'code_point': '0xfe6f'}] + 'code_point': '0xfe77'}] - name: 'sphincssha2192ssimple' pretty_name: 'SPHINCS+-SHA2-192s-simple' oqs_meth: 'OQS_SIG_alg_sphincs_sha2_192s_simple' oid: '1.3.9999.6.5.12' - code_point: '0xfebb' + code_point: '0xfe78' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: false mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.5.13', - 'code_point': '0xfebc'}] + 'code_point': '0xfe79'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.5.7' - code_point: '0xfe70' + code_point: '0xfe7a' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.5.8', - 'code_point': '0xfe71'}] + 'code_point': '0xfe7b'}] - name: 'sphincssha256256frobust' pretty_name: 'SPHINCS+-SHA256-256f-robust' @@ -935,35 +1337,35 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.6.1' - code_point: '0xfe72' + code_point: '0xfe7c' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.6.2', - 'code_point': '0xfe73'}] + 'code_point': '0xfe7d'}] - name: 'sphincssha2256fsimple' pretty_name: 'SPHINCS+-SHA2-256f-simple' oqs_meth: 'OQS_SIG_alg_sphincs_sha2_256f_simple' oid: '1.3.9999.6.6.10' - code_point: '0xfebd' + code_point: '0xfe7e' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: false mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.6.11', - 'code_point': '0xfebe'}] + 'code_point': '0xfe7f'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.6.3' - code_point: '0xfe74' + code_point: '0xfe80' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.6.4', - 'code_point': '0xfe75'}] + 'code_point': '0xfe81'}] - name: 'sphincssha256256srobust' pretty_name: 'SPHINCS+-SHA256-256s-robust' @@ -973,35 +1375,35 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.6.5' - code_point: '0xfe76' + code_point: '0xfe82' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.6.6', - 'code_point': '0xfe77'}] + 'code_point': '0xfe83'}] - name: 'sphincssha2256ssimple' pretty_name: 'SPHINCS+-SHA2-256s-simple' oqs_meth: 'OQS_SIG_alg_sphincs_sha2_256s_simple' oid: '1.3.9999.6.6.12' - code_point: '0xfec0' + code_point: '0xfe84' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: false mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.6.13', - 'code_point': '0xfec1'}] + 'code_point': '0xfe85'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.6.7' - code_point: '0xfe78' + code_point: '0xfe86' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.6.8', - 'code_point': '0xfe79'}] + 'code_point': '0xfe89'}] - family: 'SPHINCS-SHAKE' variants: @@ -1014,47 +1416,47 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.7.1' - code_point: '0xfe7a' + code_point: '0xff00' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.7.2', - 'code_point': '0xfe7b'}, + 'code_point': '0xff01'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.7.3', - 'code_point': '0xfe7c'}] + 'code_point': '0xff02'}] - name: 'sphincsshake128fsimple' pretty_name: 'SPHINCS+-SHAKE-128f-simple' oqs_meth: 'OQS_SIG_alg_sphincs_shake_128f_simple' oid: '1.3.9999.6.7.13' - code_point: '0xfec2' + code_point: '0xff03' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: true mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.7.14', - 'code_point': '0xfec3'}, + 'code_point': '0xff04'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.7.15', - 'code_point': '0xfec4'}] + 'code_point': '0xff05'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.7.4' - code_point: '0xfe7d' + code_point: '0xff06' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.7.5', - 'code_point': '0xfe7e'}, + 'code_point': '0xff07'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.7.6', - 'code_point': '0xfe7f'}] + 'code_point': '0xff08'}] - name: 'sphincsshake256128srobust' pretty_name: 'SPHINCS+-SHAKE256-128s-robust' @@ -1064,47 +1466,47 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.7.7' - code_point: '0xfe80' + code_point: '0xff09' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.7.8', - 'code_point': '0xfe81'}, + 'code_point': '0xff0a'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.7.9', - 'code_point': '0xfe82'}] + 'code_point': '0xff0b'}] - name: 'sphincsshake128ssimple' pretty_name: 'SPHINCS+-SHAKE-128s-simple' oqs_meth: 'OQS_SIG_alg_sphincs_shake_128s_simple' oid: '1.3.9999.6.7.16' - code_point: '0xfec5' + code_point: '0xff0c' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: false mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.7.17', - 'code_point': '0xfec6'}, + 'code_point': '0xff0d'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.7.18', - 'code_point': '0xfec7'}] + 'code_point': '0xff0e'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.7.10' - code_point: '0xfe83' + code_point: '0xff0f' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p256', 'pretty_name': 'ECDSA p256', 'oid': '1.3.9999.6.7.11', - 'code_point': '0xfe84'}, + 'code_point': '0xff10'}, {'name': 'rsa3072', 'pretty_name': 'RSA3072', 'oid': '1.3.9999.6.7.12', - 'code_point': '0xfe85'}] + 'code_point': '0xff11'}] - name: 'sphincsshake256192frobust' pretty_name: 'SPHINCS+-SHAKE256-192f-robust' @@ -1114,35 +1516,35 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.8.1' - code_point: '0xfe86' + code_point: '0xff12' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.8.2', - 'code_point': '0xfe87'}] + 'code_point': '0xff13'}] - name: 'sphincsshake192fsimple' pretty_name: 'SPHINCS+-SHAKE-192f-simple' oqs_meth: 'OQS_SIG_alg_sphincs_shake_192f_simple' oid: '1.3.9999.6.8.10' - code_point: '0xfec8' + code_point: '0xff14' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: false mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.8.11', - 'code_point': '0xfec9'}] + 'code_point': '0xff15'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.8.3' - code_point: '0xfe88' + code_point: '0xff16' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.8.4', - 'code_point': '0xfe89'}] + 'code_point': '0xff17'}] - name: 'sphincsshake256192srobust' pretty_name: 'SPHINCS+-SHAKE256-192s-robust' @@ -1152,35 +1554,35 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.8.5' - code_point: '0xfe8a' + code_point: '0xff18' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.8.6', - 'code_point': '0xfe8b'}] + 'code_point': '0xff19'}] - name: 'sphincsshake192ssimple' pretty_name: 'SPHINCS+-SHAKE-192s-simple' oqs_meth: 'OQS_SIG_alg_sphincs_shake_192s_simple' oid: '1.3.9999.6.8.12' - code_point: '0xfeca' + code_point: '0xff1a' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: false mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.8.13', - 'code_point': '0xfecb'}] + 'code_point': '0xff1b'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.8.7' - code_point: '0xfe8c' + code_point: '0xff1c' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p384', 'pretty_name': 'ECDSA p384', 'oid': '1.3.9999.6.8.8', - 'code_point': '0xfe8d'}] + 'code_point': '0xff1d'}] - name: 'sphincsshake256256frobust' pretty_name: 'SPHINCS+-SHAKE256-256f-robust' @@ -1190,35 +1592,35 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.9.1' - code_point: '0xfe8e' + code_point: '0xff1e' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.9.2', - 'code_point': '0xfe8f'}] + 'code_point': '0xff1f'}] - name: 'sphincsshake256fsimple' pretty_name: 'SPHINCS+-SHAKE-256f-simple' oqs_meth: 'OQS_SIG_alg_sphincs_shake_256f_simple' oid: '1.3.9999.6.9.10' - code_point: '0xfecc' + code_point: '0xff20' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: false mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.9.11', - 'code_point': '0xfecd'}] + 'code_point': '0xff21'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.9.3' - code_point: '0xfe90' + code_point: '0xff22' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.9.4', - 'code_point': '0xfe91'}] + 'code_point': '0xff23'}] - name: 'sphincsshake256256srobust' pretty_name: 'SPHINCS+-SHAKE256-256s-robust' @@ -1228,34 +1630,33 @@ sigs: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.9.5' - code_point: '0xfe92' + code_point: '0xff24' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.9.6', - 'code_point': '0xfe93'}] + 'code_point': '0xff25'}] - name: 'sphincsshake256ssimple' pretty_name: 'SPHINCS+-SHAKE-256s-simple' oqs_meth: 'OQS_SIG_alg_sphincs_shake_256s_simple' oid: '1.3.9999.6.9.12' - code_point: '0xfece' + code_point: '0xff26' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] enable: false mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.9.13', - 'code_point': '0xfecf'}] + 'code_point': '0xff27'}] extra_nids: old: - implementation_version: NIST Round 3 submission nist-round: 3 oid: '1.3.9999.6.9.7' - code_point: '0xfe94' + code_point: '0xff28' supported_encodings: ['draft-uni-qsckeys-sphincsplus-00/sk-pk'] mix_with: [{'name': 'p521', 'pretty_name': 'ECDSA p521', 'oid': '1.3.9999.6.9.8', - 'code_point': '0xfe95'}] - + 'code_point': '0xff29'}] diff --git a/oqs-template/generatehelpers.py b/oqs-template/generatehelpers.py index 8da3eff0..5ed53dcc 100644 --- a/oqs-template/generatehelpers.py +++ b/oqs-template/generatehelpers.py @@ -68,7 +68,12 @@ def get_sig_nistlevel(family, alg, docsdir): # hacks to match names def matches(name, alg): def simplify(s): - return s.lower().replace('_', '').replace('-', '').replace('+', '') + s = s.lower().replace('_', '').replace('-', '').replace('+', '') + with_index = s.find("with") # Find the index of the "with" sequence + if with_index != -1: # If "with" is found + return s[:with_index] # Return the substring before "with" + else: + return s # Return the original string if "with" is not found if simplify(name) == simplify(alg['name']): return True return False # find the variant that matches diff --git a/oqs-template/oqs-sig-info.md b/oqs-template/oqs-sig-info.md index 9f084982..9e5d3535 100644 --- a/oqs-template/oqs-sig-info.md +++ b/oqs-template/oqs-sig-info.md @@ -1,138 +1,178 @@ -| Algorithm | Implementation Version | NIST round | Claimed NIST Level | Code Point | OID | -|:--------------------------------------------------|:----------------------------------------------|-------------:|---------------------:|:-------------|:-------------------------| -| dilithium2 | 3.1 | 3 | 2 | 0xfea0 | 1.3.6.1.4.1.2.267.7.4.4 | -| dilithium2 **hybrid with** p256 | 3.1 | 3 | 2 | 0xfea1 | 1.3.9999.2.7.1 | -| dilithium2 **hybrid with** rsa3072 | 3.1 | 3 | 2 | 0xfea2 | 1.3.9999.2.7.2 | -| dilithium3 | 3.1 | 3 | 3 | 0xfea3 | 1.3.6.1.4.1.2.267.7.6.5 | -| dilithium3 **hybrid with** p384 | 3.1 | 3 | 3 | 0xfea4 | 1.3.9999.2.7.3 | -| dilithium5 | 3.1 | 3 | 5 | 0xfea5 | 1.3.6.1.4.1.2.267.7.8.7 | -| dilithium5 **hybrid with** p521 | 3.1 | 3 | 5 | 0xfea6 | 1.3.9999.2.7.4 | -| dilithium2_aes | NIST Round 3 submission | 3 | 2 | 0xfea7 | 1.3.6.1.4.1.2.267.11.4.4 | -| dilithium2_aes **hybrid with** p256 | NIST Round 3 submission | 3 | 2 | 0xfea8 | 1.3.9999.2.11.1 | -| dilithium2_aes **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 2 | 0xfea9 | 1.3.9999.2.11.2 | -| dilithium3_aes | NIST Round 3 submission | 3 | 3 | 0xfeaa | 1.3.6.1.4.1.2.267.11.6.5 | -| dilithium3_aes **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfeab | 1.3.9999.2.11.3 | -| dilithium5_aes | NIST Round 3 submission | 3 | 5 | 0xfeac | 1.3.6.1.4.1.2.267.11.8.7 | -| dilithium5_aes **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfead | 1.3.9999.2.11.4 | -| falcon512 | 20211101 | 3 | 1 | 0xfeae | 1.3.9999.3.6 | -| falcon512 **hybrid with** p256 | 20211101 | 3 | 1 | 0xfeaf | 1.3.9999.3.7 | -| falcon512 **hybrid with** rsa3072 | 20211101 | 3 | 1 | 0xfeb0 | 1.3.9999.3.8 | -| falcon512 | NIST Round 3 submission | 3 | 1 | 0xfe0b | 1.3.9999.3.1 | -| falcon512 **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe0c | 1.3.9999.3.2 | -| falcon512 **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe0d | 1.3.9999.3.3 | -| falcon1024 | 20211101 | 3 | 5 | 0xfeb1 | 1.3.9999.3.9 | -| falcon1024 **hybrid with** p521 | 20211101 | 3 | 5 | 0xfeb2 | 1.3.9999.3.10 | -| falcon1024 | NIST Round 3 submission | 3 | 5 | 0xfe0e | 1.3.9999.3.4 | -| falcon1024 **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe0f | 1.3.9999.3.5 | -| sphincsharaka128frobust | NIST Round 3 submission | 3 | 1 | 0xfe42 | 1.3.9999.6.1.1 | -| sphincsharaka128frobust **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe43 | 1.3.9999.6.1.2 | -| sphincsharaka128frobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe44 | 1.3.9999.6.1.3 | -| sphincsharaka128fsimple | NIST Round 3 submission | 3 | 1 | 0xfe45 | 1.3.9999.6.1.4 | -| sphincsharaka128fsimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe46 | 1.3.9999.6.1.5 | -| sphincsharaka128fsimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe47 | 1.3.9999.6.1.6 | -| sphincsharaka128srobust | NIST Round 3 submission | 3 | 1 | 0xfe48 | 1.3.9999.6.1.7 | -| sphincsharaka128srobust **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe49 | 1.3.9999.6.1.8 | -| sphincsharaka128srobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe4a | 1.3.9999.6.1.9 | -| sphincsharaka128ssimple | NIST Round 3 submission | 3 | 1 | 0xfe4b | 1.3.9999.6.1.10 | -| sphincsharaka128ssimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe4c | 1.3.9999.6.1.11 | -| sphincsharaka128ssimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe4d | 1.3.9999.6.1.12 | -| sphincsharaka192frobust | NIST Round 3 submission | 3 | 3 | 0xfe4e | 1.3.9999.6.2.1 | -| sphincsharaka192frobust **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe4f | 1.3.9999.6.2.2 | -| sphincsharaka192fsimple | NIST Round 3 submission | 3 | 3 | 0xfe50 | 1.3.9999.6.2.3 | -| sphincsharaka192fsimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe51 | 1.3.9999.6.2.4 | -| sphincsharaka192srobust | NIST Round 3 submission | 3 | 3 | 0xfe52 | 1.3.9999.6.2.5 | -| sphincsharaka192srobust **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe53 | 1.3.9999.6.2.6 | -| sphincsharaka192ssimple | NIST Round 3 submission | 3 | 3 | 0xfe54 | 1.3.9999.6.2.7 | -| sphincsharaka192ssimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe55 | 1.3.9999.6.2.8 | -| sphincsharaka256frobust | NIST Round 3 submission | 3 | 3 | 0xfe56 | 1.3.9999.6.3.1 | -| sphincsharaka256frobust **hybrid with** p521 | NIST Round 3 submission | 3 | 3 | 0xfe57 | 1.3.9999.6.3.2 | -| sphincsharaka256fsimple | NIST Round 3 submission | 3 | 5 | 0xfe58 | 1.3.9999.6.3.3 | -| sphincsharaka256fsimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe59 | 1.3.9999.6.3.4 | -| sphincsharaka256srobust | NIST Round 3 submission | 3 | 5 | 0xfe5a | 1.3.9999.6.3.5 | -| sphincsharaka256srobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe5b | 1.3.9999.6.3.6 | -| sphincsharaka256ssimple | NIST Round 3 submission | 3 | 5 | 0xfe5c | 1.3.9999.6.3.7 | -| sphincsharaka256ssimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe5d | 1.3.9999.6.3.8 | -| sphincssha26128frobust | NIST Round 3 submission | 3 | 5 | 0xfe5e | 1.3.9999.6.4.1 | -| sphincssha26128frobust **hybrid with** p256 | NIST Round 3 submission | 3 | 5 | 0xfe5f | 1.3.9999.6.4.2 | -| sphincssha26128frobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 5 | 0xfe60 | 1.3.9999.6.4.3 | -| sphincssha2128fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfeb3 | 1.3.9999.6.4.13 | -| sphincssha2128fsimple **hybrid with** p256 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfeb4 | 1.3.9999.6.4.14 | -| sphincssha2128fsimple **hybrid with** rsa3072 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfeb5 | 1.3.9999.6.4.15 | -| sphincssha2128fsimple | NIST Round 3 submission | 3 | 1 | 0xfe61 | 1.3.9999.6.4.4 | -| sphincssha2128fsimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe62 | 1.3.9999.6.4.5 | -| sphincssha2128fsimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe63 | 1.3.9999.6.4.6 | -| sphincssha256128srobust | NIST Round 3 submission | 3 | 5 | 0xfe64 | 1.3.9999.6.4.7 | -| sphincssha256128srobust **hybrid with** p256 | NIST Round 3 submission | 3 | 5 | 0xfe65 | 1.3.9999.6.4.8 | -| sphincssha256128srobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 5 | 0xfe66 | 1.3.9999.6.4.9 | -| sphincssha2128ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfeb6 | 1.3.9999.6.4.16 | -| sphincssha2128ssimple **hybrid with** p256 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfeb7 | 1.3.9999.6.4.17 | -| sphincssha2128ssimple **hybrid with** rsa3072 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfeb8 | 1.3.9999.6.4.18 | -| sphincssha2128ssimple | NIST Round 3 submission | 3 | 1 | 0xfe67 | 1.3.9999.6.4.10 | -| sphincssha2128ssimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe68 | 1.3.9999.6.4.11 | -| sphincssha2128ssimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe69 | 1.3.9999.6.4.12 | -| sphincssha256192frobust | NIST Round 3 submission | 3 | 5 | 0xfe6a | 1.3.9999.6.5.1 | -| sphincssha256192frobust **hybrid with** p384 | NIST Round 3 submission | 3 | 5 | 0xfe6b | 1.3.9999.6.5.2 | -| sphincssha2192fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfeb9 | 1.3.9999.6.5.10 | -| sphincssha2192fsimple **hybrid with** p384 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfeba | 1.3.9999.6.5.11 | -| sphincssha2192fsimple | NIST Round 3 submission | 3 | 3 | 0xfe6c | 1.3.9999.6.5.3 | -| sphincssha2192fsimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe6d | 1.3.9999.6.5.4 | -| sphincssha256192srobust | NIST Round 3 submission | 3 | 5 | 0xfe6e | 1.3.9999.6.5.5 | -| sphincssha256192srobust **hybrid with** p384 | NIST Round 3 submission | 3 | 5 | 0xfe6f | 1.3.9999.6.5.6 | -| sphincssha2192ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfebb | 1.3.9999.6.5.12 | -| sphincssha2192ssimple **hybrid with** p384 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfebc | 1.3.9999.6.5.13 | -| sphincssha2192ssimple | NIST Round 3 submission | 3 | 3 | 0xfe70 | 1.3.9999.6.5.7 | -| sphincssha2192ssimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe71 | 1.3.9999.6.5.8 | -| sphincssha256256frobust | NIST Round 3 submission | 3 | 5 | 0xfe72 | 1.3.9999.6.6.1 | -| sphincssha256256frobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe73 | 1.3.9999.6.6.2 | -| sphincssha2256fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfebd | 1.3.9999.6.6.10 | -| sphincssha2256fsimple **hybrid with** p521 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfebe | 1.3.9999.6.6.11 | -| sphincssha2256fsimple | NIST Round 3 submission | 3 | 5 | 0xfe74 | 1.3.9999.6.6.3 | -| sphincssha2256fsimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe75 | 1.3.9999.6.6.4 | -| sphincssha256256srobust | NIST Round 3 submission | 3 | 5 | 0xfe76 | 1.3.9999.6.6.5 | -| sphincssha256256srobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe77 | 1.3.9999.6.6.6 | -| sphincssha2256ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfec0 | 1.3.9999.6.6.12 | -| sphincssha2256ssimple **hybrid with** p521 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfec1 | 1.3.9999.6.6.13 | -| sphincssha2256ssimple | NIST Round 3 submission | 3 | 5 | 0xfe78 | 1.3.9999.6.6.7 | -| sphincssha2256ssimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe79 | 1.3.9999.6.6.8 | -| sphincsshake256128frobust | NIST Round 3 submission | 3 | 1 | 0xfe7a | 1.3.9999.6.7.1 | -| sphincsshake256128frobust **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe7b | 1.3.9999.6.7.2 | -| sphincsshake256128frobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe7c | 1.3.9999.6.7.3 | -| sphincsshake128fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfec2 | 1.3.9999.6.7.13 | -| sphincsshake128fsimple **hybrid with** p256 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfec3 | 1.3.9999.6.7.14 | -| sphincsshake128fsimple **hybrid with** rsa3072 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfec4 | 1.3.9999.6.7.15 | -| sphincsshake128fsimple | NIST Round 3 submission | 3 | 1 | 0xfe7d | 1.3.9999.6.7.4 | -| sphincsshake128fsimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe7e | 1.3.9999.6.7.5 | -| sphincsshake128fsimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe7f | 1.3.9999.6.7.6 | -| sphincsshake256128srobust | NIST Round 3 submission | 3 | 1 | 0xfe80 | 1.3.9999.6.7.7 | -| sphincsshake256128srobust **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe81 | 1.3.9999.6.7.8 | -| sphincsshake256128srobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe82 | 1.3.9999.6.7.9 | -| sphincsshake128ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfec5 | 1.3.9999.6.7.16 | -| sphincsshake128ssimple **hybrid with** p256 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfec6 | 1.3.9999.6.7.17 | -| sphincsshake128ssimple **hybrid with** rsa3072 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfec7 | 1.3.9999.6.7.18 | -| sphincsshake128ssimple | NIST Round 3 submission | 3 | 1 | 0xfe83 | 1.3.9999.6.7.10 | -| sphincsshake128ssimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe84 | 1.3.9999.6.7.11 | -| sphincsshake128ssimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe85 | 1.3.9999.6.7.12 | -| sphincsshake256192frobust | NIST Round 3 submission | 3 | 3 | 0xfe86 | 1.3.9999.6.8.1 | -| sphincsshake256192frobust **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe87 | 1.3.9999.6.8.2 | -| sphincsshake192fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfec8 | 1.3.9999.6.8.10 | -| sphincsshake192fsimple **hybrid with** p384 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfec9 | 1.3.9999.6.8.11 | -| sphincsshake192fsimple | NIST Round 3 submission | 3 | 3 | 0xfe88 | 1.3.9999.6.8.3 | -| sphincsshake192fsimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe89 | 1.3.9999.6.8.4 | -| sphincsshake256192srobust | NIST Round 3 submission | 3 | 3 | 0xfe8a | 1.3.9999.6.8.5 | -| sphincsshake256192srobust **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe8b | 1.3.9999.6.8.6 | -| sphincsshake192ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfeca | 1.3.9999.6.8.12 | -| sphincsshake192ssimple **hybrid with** p384 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfecb | 1.3.9999.6.8.13 | -| sphincsshake192ssimple | NIST Round 3 submission | 3 | 3 | 0xfe8c | 1.3.9999.6.8.7 | -| sphincsshake192ssimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe8d | 1.3.9999.6.8.8 | -| sphincsshake256256frobust | NIST Round 3 submission | 3 | 5 | 0xfe8e | 1.3.9999.6.9.1 | -| sphincsshake256256frobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe8f | 1.3.9999.6.9.2 | -| sphincsshake256fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfecc | 1.3.9999.6.9.10 | -| sphincsshake256fsimple **hybrid with** p521 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfecd | 1.3.9999.6.9.11 | -| sphincsshake256fsimple | NIST Round 3 submission | 3 | 5 | 0xfe90 | 1.3.9999.6.9.3 | -| sphincsshake256fsimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe91 | 1.3.9999.6.9.4 | -| sphincsshake256256srobust | NIST Round 3 submission | 3 | 5 | 0xfe92 | 1.3.9999.6.9.5 | -| sphincsshake256256srobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe93 | 1.3.9999.6.9.6 | -| sphincsshake256ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfece | 1.3.9999.6.9.12 | -| sphincsshake256ssimple **hybrid with** p521 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfecf | 1.3.9999.6.9.13 | -| sphincsshake256ssimple | NIST Round 3 submission | 3 | 5 | 0xfe94 | 1.3.9999.6.9.7 | -| sphincsshake256ssimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe95 | 1.3.9999.6.9.8 | \ No newline at end of file +| Algorithm | Implementation Version | NIST round | Claimed NIST Level | Code Point | OID | +|:--------------------------------------------------|:----------------------------------------------|-------------:|---------------------:|:-------------|:------------------------------| +| dilithium2 | 3.1 | 3 | 2 | 0xfe98 | 1.3.6.1.4.1.2.267.7.4.4 | +| dilithium2 **hybrid with** p256 | 3.1 | 3 | 2 | 0xfe99 | 1.3.9999.2.7.1 | +| dilithium2 **hybrid with** rsa3072 | 3.1 | 3 | 2 | 0xfe9a | 1.3.9999.2.7.2 | +| dilithium2WithSha256 | 3.1 | 3 | 2 | 0xfe9b | 1.3.6.1.4.1.18227.999.1.1.1 | +| dilithium2WithSha384 | 3.1 | 3 | 2 | 0xfe9c | 1.3.6.1.4.1.18227.999.1.1.2 | +| dilithium2WithSha512 | 3.1 | 3 | 2 | 0xfe9d | 1.3.6.1.4.1.18227.999.1.1.3 | +| dilithium2WithSha3At256 | 3.1 | 3 | 2 | 0xfe9e | 1.3.6.1.4.1.18227.999.1.1.4 | +| dilithium2WithSha3At384 | 3.1 | 3 | 2 | 0xfe9f | 1.3.6.1.4.1.18227.999.1.1.5 | +| dilithium2WithSha3At512 | 3.1 | 3 | 2 | 0xfea0 | 1.3.6.1.4.1.18227.999.1.1.6 | +| dilithium2WithShake128 | 3.1 | 3 | 2 | 0xfea1 | 1.3.6.1.4.1.18227.999.1.1.7 | +| dilithium2WithShake256 | 3.1 | 3 | 2 | 0xfea2 | 1.3.6.1.4.1.18227.999.1.1.8 | +| dilithium3 | 3.1 | 3 | 3 | 0xfea3 | 1.3.6.1.4.1.2.267.7.6.5 | +| dilithium3 **hybrid with** p384 | 3.1 | 3 | 3 | 0xfea4 | 1.3.9999.2.7.3 | +| dilithium3WithSha256 | 3.1 | 3 | 3 | 0xfea5 | 1.3.6.1.4.1.18227.999.1.2.1 | +| dilithium3WithSha384 | 3.1 | 3 | 3 | 0xfea6 | 1.3.6.1.4.1.18227.999.1.2.2 | +| dilithium3WithSha512 | 3.1 | 3 | 3 | 0xfea7 | 1.3.6.1.4.1.18227.999.1.2.3 | +| dilithium3WithSha3At256 | 3.1 | 3 | 3 | 0xfea8 | 1.3.6.1.4.1.18227.999.1.2.4 | +| dilithium3WithSha3At384 | 3.1 | 3 | 3 | 0xfea9 | 1.3.6.1.4.1.18227.999.1.2.5 | +| dilithium3WithSha3At512 | 3.1 | 3 | 3 | 0xfeaa | 1.3.6.1.4.1.18227.999.1.2.6 | +| dilithium3WithShake128 | 3.1 | 3 | 3 | 0xfeab | 1.3.6.1.4.1.18227.999.1.2.7 | +| dilithium3WithShake256 | 3.1 | 3 | 3 | 0xfeac | 1.3.6.1.4.1.18227.999.1.2.8 | +| dilithium5 | 3.1 | 3 | 5 | 0xfead | 1.3.6.1.4.1.2.267.7.8.7 | +| dilithium5 **hybrid with** p521 | 3.1 | 3 | 5 | 0xfeae | 1.3.9999.2.7.4 | +| dilithium5WithSha256 | 3.1 | 3 | 5 | 0xfeaf | 1.3.6.1.4.1.18227.999.1.3.1 | +| dilithium5WithSha384 | 3.1 | 3 | 5 | 0xfeb0 | 1.3.6.1.4.1.18227.999.1.3.2 | +| dilithium5WithSha512 | 3.1 | 3 | 5 | 0xfeb1 | 1.3.6.1.4.1.18227.999.1.3.3 | +| dilithium5WithSha3At256 | 3.1 | 3 | 5 | 0xfeb2 | 1.3.6.1.4.1.18227.999.1.3.4 | +| dilithium5WithSha3At384 | 3.1 | 3 | 5 | 0xfeb3 | 1.3.6.1.4.1.18227.999.1.3.5 | +| dilithium5WithSha3At512 | 3.1 | 3 | 5 | 0xfeb4 | 1.3.6.1.4.1.18227.999.1.3.6 | +| dilithium5WithShake128 | 3.1 | 3 | 5 | 0xfeb5 | 1.3.6.1.4.1.18227.999.1.3.7 | +| dilithium5WithShake256 | 3.1 | 3 | 5 | 0xfeb6 | 1.3.6.1.4.1.18227.999.1.3.8 | +| dilithium2_aes | NIST Round 3 submission | 3 | 2 | 0xfeb7 | 1.3.6.1.4.1.2.267.11.4.4 | +| dilithium2_aes **hybrid with** p256 | NIST Round 3 submission | 3 | 2 | 0xfeb8 | 1.3.9999.2.11.1 | +| dilithium2_aes **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 2 | 0xfeb9 | 1.3.9999.2.11.2 | +| dilithium3_aes | NIST Round 3 submission | 3 | 3 | 0xfeba | 1.3.6.1.4.1.2.267.11.6.5 | +| dilithium3_aes **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfebb | 1.3.9999.2.11.3 | +| dilithium5_aes | NIST Round 3 submission | 3 | 5 | 0xfebc | 1.3.6.1.4.1.2.267.11.8.7 | +| dilithium5_aes **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfebd | 1.3.9999.2.11.4 | +| falcon512 | 20211101 | 3 | 1 | 0xfebe | 1.3.9999.3.6 | +| falcon512 **hybrid with** p256 | 20211101 | 3 | 1 | 0xfebf | 1.3.9999.3.7 | +| falcon512 **hybrid with** rsa3072 | 20211101 | 3 | 1 | 0xfec0 | 1.3.9999.3.8 | +| falcon512 | NIST Round 3 submission | 3 | 1 | 0xfe0b | 1.3.9999.3.1 | +| falcon512 **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe0c | 1.3.9999.3.2 | +| falcon512 **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe0d | 1.3.9999.3.3 | +| falcon512WithSha256 | 20211101 | 3 | 1 | 0xfec1 | 1.3.6.1.4.1.18227.999.2.3.1.1 | +| falcon512WithSha384 | 20211101 | 3 | 1 | 0xfec2 | 1.3.6.1.4.1.18227.999.2.3.2.1 | +| falcon512WithSha512 | 20211101 | 3 | 1 | 0xfec3 | 1.3.6.1.4.1.18227.999.2.3.3.1 | +| falcon512WithSha3At256 | 20211101 | 3 | 1 | 0xfec4 | 1.3.6.1.4.1.18227.999.2.3.4.1 | +| falcon512WithSha3At384 | 20211101 | 3 | 1 | 0xfec5 | 1.3.6.1.4.1.18227.999.2.3.5.1 | +| falcon512WithSha3At512 | 20211101 | 3 | 1 | 0xfec6 | 1.3.6.1.4.1.18227.999.2.3.6.1 | +| falcon512WithShake128 | 20211101 | 3 | 1 | 0xfec7 | 1.3.6.1.4.1.18227.999.2.3.7.1 | +| falcon512WithShake256 | 20211101 | 3 | 1 | 0xfec8 | 1.3.6.1.4.1.18227.999.2.3.8.1 | +| falcon1024 | 20211101 | 3 | 5 | 0xfec9 | 1.3.9999.3.9 | +| falcon1024 **hybrid with** p521 | 20211101 | 3 | 5 | 0xfeca | 1.3.9999.3.10 | +| falcon1024 | NIST Round 3 submission | 3 | 5 | 0xfe0e | 1.3.9999.3.4 | +| falcon1024 **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe0f | 1.3.9999.3.5 | +| falcon1024WithSha256 | 20211101 | 3 | 5 | 0xfecb | 1.3.6.1.4.1.18227.999.2.2.1.1 | +| falcon1024WithSha384 | 20211101 | 3 | 5 | 0xfecc | 1.3.6.1.4.1.18227.999.2.2.2.1 | +| falcon1024WithSha512 | 20211101 | 3 | 5 | 0xfecd | 1.3.6.1.4.1.18227.999.2.2.3.1 | +| falcon1024WithSha3At256 | 20211101 | 3 | 5 | 0xfece | 1.3.6.1.4.1.18227.999.2.2.4.1 | +| falcon1024WithSha3At384 | 20211101 | 3 | 5 | 0xfecf | 1.3.6.1.4.1.18227.999.2.2.5.1 | +| falcon1024WithSha3At512 | 20211101 | 3 | 5 | 0xfed0 | 1.3.6.1.4.1.18227.999.2.2.6.1 | +| falcon1024WithShake128 | 20211101 | 3 | 5 | 0xfed1 | 1.3.6.1.4.1.18227.999.2.2.7.1 | +| falcon1024WithShake256 | 20211101 | 3 | 5 | 0xfed2 | 1.3.6.1.4.1.18227.999.2.2.8.1 | +| sphincsharaka128frobust | NIST Round 3 submission | 3 | 1 | 0xfe42 | 1.3.9999.6.1.1 | +| sphincsharaka128frobust **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe43 | 1.3.9999.6.1.2 | +| sphincsharaka128frobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe44 | 1.3.9999.6.1.3 | +| sphincsharaka128fsimple | NIST Round 3 submission | 3 | 1 | 0xfe45 | 1.3.9999.6.1.4 | +| sphincsharaka128fsimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe46 | 1.3.9999.6.1.5 | +| sphincsharaka128fsimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe47 | 1.3.9999.6.1.6 | +| sphincsharaka128srobust | NIST Round 3 submission | 3 | 1 | 0xfe48 | 1.3.9999.6.1.7 | +| sphincsharaka128srobust **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe49 | 1.3.9999.6.1.8 | +| sphincsharaka128srobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe4a | 1.3.9999.6.1.9 | +| sphincsharaka128ssimple | NIST Round 3 submission | 3 | 1 | 0xfe4b | 1.3.9999.6.1.10 | +| sphincsharaka128ssimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe4c | 1.3.9999.6.1.11 | +| sphincsharaka128ssimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe4d | 1.3.9999.6.1.12 | +| sphincsharaka192frobust | NIST Round 3 submission | 3 | 3 | 0xfe4e | 1.3.9999.6.2.1 | +| sphincsharaka192frobust **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe4f | 1.3.9999.6.2.2 | +| sphincsharaka192fsimple | NIST Round 3 submission | 3 | 3 | 0xfe50 | 1.3.9999.6.2.3 | +| sphincsharaka192fsimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe51 | 1.3.9999.6.2.4 | +| sphincsharaka192srobust | NIST Round 3 submission | 3 | 3 | 0xfe52 | 1.3.9999.6.2.5 | +| sphincsharaka192srobust **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe53 | 1.3.9999.6.2.6 | +| sphincsharaka192ssimple | NIST Round 3 submission | 3 | 3 | 0xfe54 | 1.3.9999.6.2.7 | +| sphincsharaka192ssimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe55 | 1.3.9999.6.2.8 | +| sphincsharaka256frobust | NIST Round 3 submission | 3 | 3 | 0xfe56 | 1.3.9999.6.3.1 | +| sphincsharaka256frobust **hybrid with** p521 | NIST Round 3 submission | 3 | 3 | 0xfe57 | 1.3.9999.6.3.2 | +| sphincsharaka256fsimple | NIST Round 3 submission | 3 | 5 | 0xfe58 | 1.3.9999.6.3.3 | +| sphincsharaka256fsimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe59 | 1.3.9999.6.3.4 | +| sphincsharaka256srobust | NIST Round 3 submission | 3 | 5 | 0xfe5a | 1.3.9999.6.3.5 | +| sphincsharaka256srobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe5b | 1.3.9999.6.3.6 | +| sphincsharaka256ssimple | NIST Round 3 submission | 3 | 5 | 0xfe5c | 1.3.9999.6.3.7 | +| sphincsharaka256ssimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe5d | 1.3.9999.6.3.8 | +| sphincssha26128frobust | NIST Round 3 submission | 3 | 5 | 0xfe5e | 1.3.9999.6.4.1 | +| sphincssha26128frobust **hybrid with** p256 | NIST Round 3 submission | 3 | 5 | 0xfe5f | 1.3.9999.6.4.2 | +| sphincssha26128frobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 5 | 0xfe60 | 1.3.9999.6.4.3 | +| sphincssha2128fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfe61 | 1.3.9999.6.4.13 | +| sphincssha2128fsimple **hybrid with** p256 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfe62 | 1.3.9999.6.4.14 | +| sphincssha2128fsimple **hybrid with** rsa3072 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfe63 | 1.3.9999.6.4.15 | +| sphincssha2128fsimple | NIST Round 3 submission | 3 | 1 | 0xfe64 | 1.3.9999.6.4.4 | +| sphincssha2128fsimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe65 | 1.3.9999.6.4.5 | +| sphincssha2128fsimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe66 | 1.3.9999.6.4.6 | +| sphincssha256128srobust | NIST Round 3 submission | 3 | 5 | 0xfe67 | 1.3.9999.6.4.7 | +| sphincssha256128srobust **hybrid with** p256 | NIST Round 3 submission | 3 | 5 | 0xfe68 | 1.3.9999.6.4.8 | +| sphincssha256128srobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 5 | 0xfe69 | 1.3.9999.6.4.9 | +| sphincssha2128ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfe6a | 1.3.9999.6.4.16 | +| sphincssha2128ssimple **hybrid with** p256 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfe6b | 1.3.9999.6.4.17 | +| sphincssha2128ssimple **hybrid with** rsa3072 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xfe6c | 1.3.9999.6.4.18 | +| sphincssha2128ssimple | NIST Round 3 submission | 3 | 1 | 0xfe6d | 1.3.9999.6.4.10 | +| sphincssha2128ssimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xfe6e | 1.3.9999.6.4.11 | +| sphincssha2128ssimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xfe6f | 1.3.9999.6.4.12 | +| sphincssha256192frobust | NIST Round 3 submission | 3 | 5 | 0xfe70 | 1.3.9999.6.5.1 | +| sphincssha256192frobust **hybrid with** p384 | NIST Round 3 submission | 3 | 5 | 0xfe71 | 1.3.9999.6.5.2 | +| sphincssha2192fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfe72 | 1.3.9999.6.5.10 | +| sphincssha2192fsimple **hybrid with** p384 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfe73 | 1.3.9999.6.5.11 | +| sphincssha2192fsimple | NIST Round 3 submission | 3 | 3 | 0xfe74 | 1.3.9999.6.5.3 | +| sphincssha2192fsimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe75 | 1.3.9999.6.5.4 | +| sphincssha256192srobust | NIST Round 3 submission | 3 | 5 | 0xfe76 | 1.3.9999.6.5.5 | +| sphincssha256192srobust **hybrid with** p384 | NIST Round 3 submission | 3 | 5 | 0xfe77 | 1.3.9999.6.5.6 | +| sphincssha2192ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfe78 | 1.3.9999.6.5.12 | +| sphincssha2192ssimple **hybrid with** p384 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xfe79 | 1.3.9999.6.5.13 | +| sphincssha2192ssimple | NIST Round 3 submission | 3 | 3 | 0xfe7a | 1.3.9999.6.5.7 | +| sphincssha2192ssimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xfe7b | 1.3.9999.6.5.8 | +| sphincssha256256frobust | NIST Round 3 submission | 3 | 5 | 0xfe7c | 1.3.9999.6.6.1 | +| sphincssha256256frobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe7d | 1.3.9999.6.6.2 | +| sphincssha2256fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfe7e | 1.3.9999.6.6.10 | +| sphincssha2256fsimple **hybrid with** p521 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfe7f | 1.3.9999.6.6.11 | +| sphincssha2256fsimple | NIST Round 3 submission | 3 | 5 | 0xfe80 | 1.3.9999.6.6.3 | +| sphincssha2256fsimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe81 | 1.3.9999.6.6.4 | +| sphincssha256256srobust | NIST Round 3 submission | 3 | 5 | 0xfe82 | 1.3.9999.6.6.5 | +| sphincssha256256srobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe83 | 1.3.9999.6.6.6 | +| sphincssha2256ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfe84 | 1.3.9999.6.6.12 | +| sphincssha2256ssimple **hybrid with** p521 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xfe85 | 1.3.9999.6.6.13 | +| sphincssha2256ssimple | NIST Round 3 submission | 3 | 5 | 0xfe86 | 1.3.9999.6.6.7 | +| sphincssha2256ssimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xfe89 | 1.3.9999.6.6.8 | +| sphincsshake256128frobust | NIST Round 3 submission | 3 | 1 | 0xff00 | 1.3.9999.6.7.1 | +| sphincsshake256128frobust **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xff01 | 1.3.9999.6.7.2 | +| sphincsshake256128frobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xff02 | 1.3.9999.6.7.3 | +| sphincsshake128fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xff03 | 1.3.9999.6.7.13 | +| sphincsshake128fsimple **hybrid with** p256 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xff04 | 1.3.9999.6.7.14 | +| sphincsshake128fsimple **hybrid with** rsa3072 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xff05 | 1.3.9999.6.7.15 | +| sphincsshake128fsimple | NIST Round 3 submission | 3 | 1 | 0xff06 | 1.3.9999.6.7.4 | +| sphincsshake128fsimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xff07 | 1.3.9999.6.7.5 | +| sphincsshake128fsimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xff08 | 1.3.9999.6.7.6 | +| sphincsshake256128srobust | NIST Round 3 submission | 3 | 1 | 0xff09 | 1.3.9999.6.7.7 | +| sphincsshake256128srobust **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xff0a | 1.3.9999.6.7.8 | +| sphincsshake256128srobust **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xff0b | 1.3.9999.6.7.9 | +| sphincsshake128ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xff0c | 1.3.9999.6.7.16 | +| sphincsshake128ssimple **hybrid with** p256 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xff0d | 1.3.9999.6.7.17 | +| sphincsshake128ssimple **hybrid with** rsa3072 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 1 | 0xff0e | 1.3.9999.6.7.18 | +| sphincsshake128ssimple | NIST Round 3 submission | 3 | 1 | 0xff0f | 1.3.9999.6.7.10 | +| sphincsshake128ssimple **hybrid with** p256 | NIST Round 3 submission | 3 | 1 | 0xff10 | 1.3.9999.6.7.11 | +| sphincsshake128ssimple **hybrid with** rsa3072 | NIST Round 3 submission | 3 | 1 | 0xff11 | 1.3.9999.6.7.12 | +| sphincsshake256192frobust | NIST Round 3 submission | 3 | 3 | 0xff12 | 1.3.9999.6.8.1 | +| sphincsshake256192frobust **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xff13 | 1.3.9999.6.8.2 | +| sphincsshake192fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xff14 | 1.3.9999.6.8.10 | +| sphincsshake192fsimple **hybrid with** p384 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xff15 | 1.3.9999.6.8.11 | +| sphincsshake192fsimple | NIST Round 3 submission | 3 | 3 | 0xff16 | 1.3.9999.6.8.3 | +| sphincsshake192fsimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xff17 | 1.3.9999.6.8.4 | +| sphincsshake256192srobust | NIST Round 3 submission | 3 | 3 | 0xff18 | 1.3.9999.6.8.5 | +| sphincsshake256192srobust **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xff19 | 1.3.9999.6.8.6 | +| sphincsshake192ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xff1a | 1.3.9999.6.8.12 | +| sphincsshake192ssimple **hybrid with** p384 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 3 | 0xff1b | 1.3.9999.6.8.13 | +| sphincsshake192ssimple | NIST Round 3 submission | 3 | 3 | 0xff1c | 1.3.9999.6.8.7 | +| sphincsshake192ssimple **hybrid with** p384 | NIST Round 3 submission | 3 | 3 | 0xff1d | 1.3.9999.6.8.8 | +| sphincsshake256256frobust | NIST Round 3 submission | 3 | 5 | 0xff1e | 1.3.9999.6.9.1 | +| sphincsshake256256frobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xff1f | 1.3.9999.6.9.2 | +| sphincsshake256fsimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xff20 | 1.3.9999.6.9.10 | +| sphincsshake256fsimple **hybrid with** p521 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xff21 | 1.3.9999.6.9.11 | +| sphincsshake256fsimple | NIST Round 3 submission | 3 | 5 | 0xff22 | 1.3.9999.6.9.3 | +| sphincsshake256fsimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xff23 | 1.3.9999.6.9.4 | +| sphincsshake256256srobust | NIST Round 3 submission | 3 | 5 | 0xff24 | 1.3.9999.6.9.5 | +| sphincsshake256256srobust **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xff25 | 1.3.9999.6.9.6 | +| sphincsshake256ssimple | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xff26 | 1.3.9999.6.9.12 | +| sphincsshake256ssimple **hybrid with** p521 | NIST Round 3 submission, v3.1 (June 10, 2022) | 3 | 5 | 0xff27 | 1.3.9999.6.9.13 | +| sphincsshake256ssimple | NIST Round 3 submission | 3 | 5 | 0xff28 | 1.3.9999.6.9.7 | +| sphincsshake256ssimple **hybrid with** p521 | NIST Round 3 submission | 3 | 5 | 0xff29 | 1.3.9999.6.9.8 | \ No newline at end of file diff --git a/oqsprov/oqs_decode_der2key.c b/oqsprov/oqs_decode_der2key.c index 52c2b44c..3876e429 100644 --- a/oqsprov/oqs_decode_der2key.c +++ b/oqsprov/oqs_decode_der2key.c @@ -667,14 +667,110 @@ 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(, "dilithium2WithSha256", dilithium2WithSha256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium2WithSha256", dilithium2WithSha256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium2WithSha384", dilithium2WithSha384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium2WithSha384", dilithium2WithSha384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium2WithSha512", dilithium2WithSha512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium2WithSha512", dilithium2WithSha512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium2WithSha3At256", dilithium2WithSha3At256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium2WithSha3At256", dilithium2WithSha3At256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium2WithSha3At384", dilithium2WithSha3At384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium2WithSha3At384", dilithium2WithSha3At384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium2WithSha3At512", dilithium2WithSha3At512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium2WithSha3At512", dilithium2WithSha3At512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium2WithShake128", dilithium2WithShake128, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium2WithShake128", dilithium2WithShake128, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium2WithShake256", dilithium2WithShake256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium2WithShake256", dilithium2WithShake256, oqsx, + SubjectPublicKeyInfo); MAKE_DECODER(, "dilithium3", dilithium3, oqsx, PrivateKeyInfo); MAKE_DECODER(, "dilithium3", dilithium3, oqsx, SubjectPublicKeyInfo); MAKE_DECODER(, "p384_dilithium3", p384_dilithium3, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p384_dilithium3", p384_dilithium3, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium3WithSha256", dilithium3WithSha256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium3WithSha256", dilithium3WithSha256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium3WithSha384", dilithium3WithSha384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium3WithSha384", dilithium3WithSha384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium3WithSha512", dilithium3WithSha512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium3WithSha512", dilithium3WithSha512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium3WithSha3At256", dilithium3WithSha3At256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium3WithSha3At256", dilithium3WithSha3At256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium3WithSha3At384", dilithium3WithSha3At384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium3WithSha3At384", dilithium3WithSha3At384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium3WithSha3At512", dilithium3WithSha3At512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium3WithSha3At512", dilithium3WithSha3At512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium3WithShake128", dilithium3WithShake128, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium3WithShake128", dilithium3WithShake128, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium3WithShake256", dilithium3WithShake256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium3WithShake256", dilithium3WithShake256, oqsx, + SubjectPublicKeyInfo); MAKE_DECODER(, "dilithium5", dilithium5, oqsx, PrivateKeyInfo); MAKE_DECODER(, "dilithium5", dilithium5, oqsx, SubjectPublicKeyInfo); MAKE_DECODER(, "p521_dilithium5", p521_dilithium5, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p521_dilithium5", p521_dilithium5, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium5WithSha256", dilithium5WithSha256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium5WithSha256", dilithium5WithSha256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium5WithSha384", dilithium5WithSha384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium5WithSha384", dilithium5WithSha384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium5WithSha512", dilithium5WithSha512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium5WithSha512", dilithium5WithSha512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium5WithSha3At256", dilithium5WithSha3At256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium5WithSha3At256", dilithium5WithSha3At256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium5WithSha3At384", dilithium5WithSha3At384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium5WithSha3At384", dilithium5WithSha3At384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium5WithSha3At512", dilithium5WithSha3At512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium5WithSha3At512", dilithium5WithSha3At512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium5WithShake128", dilithium5WithShake128, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium5WithShake128", dilithium5WithShake128, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "dilithium5WithShake256", dilithium5WithShake256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "dilithium5WithShake256", dilithium5WithShake256, oqsx, + SubjectPublicKeyInfo); MAKE_DECODER(, "falcon512", falcon512, oqsx, PrivateKeyInfo); MAKE_DECODER(, "falcon512", falcon512, oqsx, SubjectPublicKeyInfo); MAKE_DECODER(, "p256_falcon512", p256_falcon512, oqsx, PrivateKeyInfo); @@ -682,10 +778,74 @@ 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(, "falcon512WithSha256", falcon512WithSha256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon512WithSha256", falcon512WithSha256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon512WithSha384", falcon512WithSha384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon512WithSha384", falcon512WithSha384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon512WithSha512", falcon512WithSha512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon512WithSha512", falcon512WithSha512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon512WithSha3At256", falcon512WithSha3At256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon512WithSha3At256", falcon512WithSha3At256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon512WithSha3At384", falcon512WithSha3At384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon512WithSha3At384", falcon512WithSha3At384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon512WithSha3At512", falcon512WithSha3At512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon512WithSha3At512", falcon512WithSha3At512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon512WithShake128", falcon512WithShake128, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon512WithShake128", falcon512WithShake128, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon512WithShake256", falcon512WithShake256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon512WithShake256", falcon512WithShake256, oqsx, + SubjectPublicKeyInfo); MAKE_DECODER(, "falcon1024", falcon1024, oqsx, PrivateKeyInfo); MAKE_DECODER(, "falcon1024", falcon1024, oqsx, SubjectPublicKeyInfo); MAKE_DECODER(, "p521_falcon1024", p521_falcon1024, oqsx, PrivateKeyInfo); MAKE_DECODER(, "p521_falcon1024", p521_falcon1024, oqsx, SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon1024WithSha256", falcon1024WithSha256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon1024WithSha256", falcon1024WithSha256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon1024WithSha384", falcon1024WithSha384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon1024WithSha384", falcon1024WithSha384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon1024WithSha512", falcon1024WithSha512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon1024WithSha512", falcon1024WithSha512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon1024WithSha3At256", falcon1024WithSha3At256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon1024WithSha3At256", falcon1024WithSha3At256, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon1024WithSha3At384", falcon1024WithSha3At384, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon1024WithSha3At384", falcon1024WithSha3At384, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon1024WithSha3At512", falcon1024WithSha3At512, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon1024WithSha3At512", falcon1024WithSha3At512, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon1024WithShake128", falcon1024WithShake128, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon1024WithShake128", falcon1024WithShake128, oqsx, + SubjectPublicKeyInfo); +MAKE_DECODER(, "falcon1024WithShake256", falcon1024WithShake256, oqsx, + PrivateKeyInfo); +MAKE_DECODER(, "falcon1024WithShake256", falcon1024WithShake256, oqsx, + SubjectPublicKeyInfo); MAKE_DECODER(, "sphincssha2128fsimple", sphincssha2128fsimple, oqsx, PrivateKeyInfo); MAKE_DECODER(, "sphincssha2128fsimple", sphincssha2128fsimple, oqsx, diff --git a/oqsprov/oqs_encode_key2any.c b/oqsprov/oqs_encode_key2any.c index 04b561ad..1f56055d 100644 --- a/oqsprov/oqs_encode_key2any.c +++ b/oqsprov/oqs_encode_key2any.c @@ -800,18 +800,90 @@ static int oqsx_pki_priv_to_der(const void *vxkey, unsigned char **pder) #define rsa3072_dilithium2_evp_type 0 #define rsa3072_dilithium2_input_type "rsa3072_dilithium2" #define rsa3072_dilithium2_pem_type "rsa3072_dilithium2" +#define dilithium2WithSha256_evp_type 0 +#define dilithium2WithSha256_input_type "dilithium2WithSha256" +#define dilithium2WithSha256_pem_type "dilithium2WithSha256" +#define dilithium2WithSha384_evp_type 0 +#define dilithium2WithSha384_input_type "dilithium2WithSha384" +#define dilithium2WithSha384_pem_type "dilithium2WithSha384" +#define dilithium2WithSha512_evp_type 0 +#define dilithium2WithSha512_input_type "dilithium2WithSha512" +#define dilithium2WithSha512_pem_type "dilithium2WithSha512" +#define dilithium2WithSha3At256_evp_type 0 +#define dilithium2WithSha3At256_input_type "dilithium2WithSha3At256" +#define dilithium2WithSha3At256_pem_type "dilithium2WithSha3At256" +#define dilithium2WithSha3At384_evp_type 0 +#define dilithium2WithSha3At384_input_type "dilithium2WithSha3At384" +#define dilithium2WithSha3At384_pem_type "dilithium2WithSha3At384" +#define dilithium2WithSha3At512_evp_type 0 +#define dilithium2WithSha3At512_input_type "dilithium2WithSha3At512" +#define dilithium2WithSha3At512_pem_type "dilithium2WithSha3At512" +#define dilithium2WithShake128_evp_type 0 +#define dilithium2WithShake128_input_type "dilithium2WithShake128" +#define dilithium2WithShake128_pem_type "dilithium2WithShake128" +#define dilithium2WithShake256_evp_type 0 +#define dilithium2WithShake256_input_type "dilithium2WithShake256" +#define dilithium2WithShake256_pem_type "dilithium2WithShake256" #define dilithium3_evp_type 0 #define dilithium3_input_type "dilithium3" #define dilithium3_pem_type "dilithium3" #define p384_dilithium3_evp_type 0 #define p384_dilithium3_input_type "p384_dilithium3" #define p384_dilithium3_pem_type "p384_dilithium3" +#define dilithium3WithSha256_evp_type 0 +#define dilithium3WithSha256_input_type "dilithium3WithSha256" +#define dilithium3WithSha256_pem_type "dilithium3WithSha256" +#define dilithium3WithSha384_evp_type 0 +#define dilithium3WithSha384_input_type "dilithium3WithSha384" +#define dilithium3WithSha384_pem_type "dilithium3WithSha384" +#define dilithium3WithSha512_evp_type 0 +#define dilithium3WithSha512_input_type "dilithium3WithSha512" +#define dilithium3WithSha512_pem_type "dilithium3WithSha512" +#define dilithium3WithSha3At256_evp_type 0 +#define dilithium3WithSha3At256_input_type "dilithium3WithSha3At256" +#define dilithium3WithSha3At256_pem_type "dilithium3WithSha3At256" +#define dilithium3WithSha3At384_evp_type 0 +#define dilithium3WithSha3At384_input_type "dilithium3WithSha3At384" +#define dilithium3WithSha3At384_pem_type "dilithium3WithSha3At384" +#define dilithium3WithSha3At512_evp_type 0 +#define dilithium3WithSha3At512_input_type "dilithium3WithSha3At512" +#define dilithium3WithSha3At512_pem_type "dilithium3WithSha3At512" +#define dilithium3WithShake128_evp_type 0 +#define dilithium3WithShake128_input_type "dilithium3WithShake128" +#define dilithium3WithShake128_pem_type "dilithium3WithShake128" +#define dilithium3WithShake256_evp_type 0 +#define dilithium3WithShake256_input_type "dilithium3WithShake256" +#define dilithium3WithShake256_pem_type "dilithium3WithShake256" #define dilithium5_evp_type 0 #define dilithium5_input_type "dilithium5" #define dilithium5_pem_type "dilithium5" #define p521_dilithium5_evp_type 0 #define p521_dilithium5_input_type "p521_dilithium5" #define p521_dilithium5_pem_type "p521_dilithium5" +#define dilithium5WithSha256_evp_type 0 +#define dilithium5WithSha256_input_type "dilithium5WithSha256" +#define dilithium5WithSha256_pem_type "dilithium5WithSha256" +#define dilithium5WithSha384_evp_type 0 +#define dilithium5WithSha384_input_type "dilithium5WithSha384" +#define dilithium5WithSha384_pem_type "dilithium5WithSha384" +#define dilithium5WithSha512_evp_type 0 +#define dilithium5WithSha512_input_type "dilithium5WithSha512" +#define dilithium5WithSha512_pem_type "dilithium5WithSha512" +#define dilithium5WithSha3At256_evp_type 0 +#define dilithium5WithSha3At256_input_type "dilithium5WithSha3At256" +#define dilithium5WithSha3At256_pem_type "dilithium5WithSha3At256" +#define dilithium5WithSha3At384_evp_type 0 +#define dilithium5WithSha3At384_input_type "dilithium5WithSha3At384" +#define dilithium5WithSha3At384_pem_type "dilithium5WithSha3At384" +#define dilithium5WithSha3At512_evp_type 0 +#define dilithium5WithSha3At512_input_type "dilithium5WithSha3At512" +#define dilithium5WithSha3At512_pem_type "dilithium5WithSha3At512" +#define dilithium5WithShake128_evp_type 0 +#define dilithium5WithShake128_input_type "dilithium5WithShake128" +#define dilithium5WithShake128_pem_type "dilithium5WithShake128" +#define dilithium5WithShake256_evp_type 0 +#define dilithium5WithShake256_input_type "dilithium5WithShake256" +#define dilithium5WithShake256_pem_type "dilithium5WithShake256" #define falcon512_evp_type 0 #define falcon512_input_type "falcon512" #define falcon512_pem_type "falcon512" @@ -821,12 +893,60 @@ static int oqsx_pki_priv_to_der(const void *vxkey, unsigned char **pder) #define rsa3072_falcon512_evp_type 0 #define rsa3072_falcon512_input_type "rsa3072_falcon512" #define rsa3072_falcon512_pem_type "rsa3072_falcon512" +#define falcon512WithSha256_evp_type 0 +#define falcon512WithSha256_input_type "falcon512WithSha256" +#define falcon512WithSha256_pem_type "falcon512WithSha256" +#define falcon512WithSha384_evp_type 0 +#define falcon512WithSha384_input_type "falcon512WithSha384" +#define falcon512WithSha384_pem_type "falcon512WithSha384" +#define falcon512WithSha512_evp_type 0 +#define falcon512WithSha512_input_type "falcon512WithSha512" +#define falcon512WithSha512_pem_type "falcon512WithSha512" +#define falcon512WithSha3At256_evp_type 0 +#define falcon512WithSha3At256_input_type "falcon512WithSha3At256" +#define falcon512WithSha3At256_pem_type "falcon512WithSha3At256" +#define falcon512WithSha3At384_evp_type 0 +#define falcon512WithSha3At384_input_type "falcon512WithSha3At384" +#define falcon512WithSha3At384_pem_type "falcon512WithSha3At384" +#define falcon512WithSha3At512_evp_type 0 +#define falcon512WithSha3At512_input_type "falcon512WithSha3At512" +#define falcon512WithSha3At512_pem_type "falcon512WithSha3At512" +#define falcon512WithShake128_evp_type 0 +#define falcon512WithShake128_input_type "falcon512WithShake128" +#define falcon512WithShake128_pem_type "falcon512WithShake128" +#define falcon512WithShake256_evp_type 0 +#define falcon512WithShake256_input_type "falcon512WithShake256" +#define falcon512WithShake256_pem_type "falcon512WithShake256" #define falcon1024_evp_type 0 #define falcon1024_input_type "falcon1024" #define falcon1024_pem_type "falcon1024" #define p521_falcon1024_evp_type 0 #define p521_falcon1024_input_type "p521_falcon1024" #define p521_falcon1024_pem_type "p521_falcon1024" +#define falcon1024WithSha256_evp_type 0 +#define falcon1024WithSha256_input_type "falcon1024WithSha256" +#define falcon1024WithSha256_pem_type "falcon1024WithSha256" +#define falcon1024WithSha384_evp_type 0 +#define falcon1024WithSha384_input_type "falcon1024WithSha384" +#define falcon1024WithSha384_pem_type "falcon1024WithSha384" +#define falcon1024WithSha512_evp_type 0 +#define falcon1024WithSha512_input_type "falcon1024WithSha512" +#define falcon1024WithSha512_pem_type "falcon1024WithSha512" +#define falcon1024WithSha3At256_evp_type 0 +#define falcon1024WithSha3At256_input_type "falcon1024WithSha3At256" +#define falcon1024WithSha3At256_pem_type "falcon1024WithSha3At256" +#define falcon1024WithSha3At384_evp_type 0 +#define falcon1024WithSha3At384_input_type "falcon1024WithSha3At384" +#define falcon1024WithSha3At384_pem_type "falcon1024WithSha3At384" +#define falcon1024WithSha3At512_evp_type 0 +#define falcon1024WithSha3At512_input_type "falcon1024WithSha3At512" +#define falcon1024WithSha3At512_pem_type "falcon1024WithSha3At512" +#define falcon1024WithShake128_evp_type 0 +#define falcon1024WithShake128_input_type "falcon1024WithShake128" +#define falcon1024WithShake128_pem_type "falcon1024WithShake128" +#define falcon1024WithShake256_evp_type 0 +#define falcon1024WithShake256_input_type "falcon1024WithShake256" +#define falcon1024WithShake256_pem_type "falcon1024WithShake256" #define sphincssha2128fsimple_evp_type 0 #define sphincssha2128fsimple_input_type "sphincssha2128fsimple" #define sphincssha2128fsimple_pem_type "sphincssha2128fsimple" @@ -1768,6 +1888,62 @@ MAKE_ENCODER(, rsa3072_dilithium2, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, rsa3072_dilithium2, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, rsa3072_dilithium2, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, rsa3072_dilithium2); +MAKE_ENCODER(, dilithium2WithSha256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium2WithSha256); +MAKE_ENCODER(, dilithium2WithSha384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium2WithSha384); +MAKE_ENCODER(, dilithium2WithSha512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium2WithSha512); +MAKE_ENCODER(, dilithium2WithSha3At256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha3At256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha3At256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha3At256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha3At256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha3At256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium2WithSha3At256); +MAKE_ENCODER(, dilithium2WithSha3At384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha3At384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha3At384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha3At384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha3At384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha3At384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium2WithSha3At384); +MAKE_ENCODER(, dilithium2WithSha3At512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha3At512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha3At512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha3At512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithSha3At512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium2WithSha3At512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium2WithSha3At512); +MAKE_ENCODER(, dilithium2WithShake128, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithShake128, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithShake128, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithShake128, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithShake128, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium2WithShake128, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium2WithShake128); +MAKE_ENCODER(, dilithium2WithShake256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithShake256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithShake256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium2WithShake256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium2WithShake256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium2WithShake256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium2WithShake256); MAKE_ENCODER(, dilithium3, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, dilithium3, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, dilithium3, oqsx, PrivateKeyInfo, der); @@ -1782,6 +1958,62 @@ MAKE_ENCODER(, p384_dilithium3, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p384_dilithium3, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p384_dilithium3, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p384_dilithium3); +MAKE_ENCODER(, dilithium3WithSha256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium3WithSha256); +MAKE_ENCODER(, dilithium3WithSha384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium3WithSha384); +MAKE_ENCODER(, dilithium3WithSha512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium3WithSha512); +MAKE_ENCODER(, dilithium3WithSha3At256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha3At256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha3At256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha3At256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha3At256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha3At256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium3WithSha3At256); +MAKE_ENCODER(, dilithium3WithSha3At384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha3At384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha3At384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha3At384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha3At384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha3At384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium3WithSha3At384); +MAKE_ENCODER(, dilithium3WithSha3At512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha3At512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha3At512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha3At512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithSha3At512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium3WithSha3At512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium3WithSha3At512); +MAKE_ENCODER(, dilithium3WithShake128, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithShake128, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithShake128, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithShake128, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithShake128, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium3WithShake128, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium3WithShake128); +MAKE_ENCODER(, dilithium3WithShake256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithShake256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithShake256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium3WithShake256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium3WithShake256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium3WithShake256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium3WithShake256); MAKE_ENCODER(, dilithium5, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, dilithium5, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, dilithium5, oqsx, PrivateKeyInfo, der); @@ -1796,6 +2028,62 @@ MAKE_ENCODER(, p521_dilithium5, oqsx, PrivateKeyInfo, pem); MAKE_ENCODER(, p521_dilithium5, oqsx, SubjectPublicKeyInfo, der); MAKE_ENCODER(, p521_dilithium5, oqsx, SubjectPublicKeyInfo, pem); MAKE_TEXT_ENCODER(, p521_dilithium5); +MAKE_ENCODER(, dilithium5WithSha256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium5WithSha256); +MAKE_ENCODER(, dilithium5WithSha384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium5WithSha384); +MAKE_ENCODER(, dilithium5WithSha512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium5WithSha512); +MAKE_ENCODER(, dilithium5WithSha3At256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha3At256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha3At256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha3At256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha3At256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha3At256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium5WithSha3At256); +MAKE_ENCODER(, dilithium5WithSha3At384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha3At384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha3At384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha3At384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha3At384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha3At384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium5WithSha3At384); +MAKE_ENCODER(, dilithium5WithSha3At512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha3At512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha3At512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha3At512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithSha3At512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium5WithSha3At512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium5WithSha3At512); +MAKE_ENCODER(, dilithium5WithShake128, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithShake128, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithShake128, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithShake128, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithShake128, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium5WithShake128, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium5WithShake128); +MAKE_ENCODER(, dilithium5WithShake256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithShake256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithShake256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, dilithium5WithShake256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, dilithium5WithShake256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, dilithium5WithShake256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, dilithium5WithShake256); MAKE_ENCODER(, falcon512, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, falcon512, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, falcon512, oqsx, PrivateKeyInfo, der); @@ -1817,6 +2105,62 @@ 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(, falcon512WithSha256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon512WithSha256); +MAKE_ENCODER(, falcon512WithSha384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon512WithSha384); +MAKE_ENCODER(, falcon512WithSha512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon512WithSha512); +MAKE_ENCODER(, falcon512WithSha3At256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha3At256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha3At256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha3At256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha3At256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha3At256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon512WithSha3At256); +MAKE_ENCODER(, falcon512WithSha3At384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha3At384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha3At384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha3At384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha3At384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha3At384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon512WithSha3At384); +MAKE_ENCODER(, falcon512WithSha3At512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha3At512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha3At512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha3At512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithSha3At512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon512WithSha3At512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon512WithSha3At512); +MAKE_ENCODER(, falcon512WithShake128, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithShake128, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithShake128, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithShake128, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithShake128, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon512WithShake128, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon512WithShake128); +MAKE_ENCODER(, falcon512WithShake256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithShake256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithShake256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon512WithShake256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon512WithShake256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon512WithShake256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon512WithShake256); MAKE_ENCODER(, falcon1024, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, falcon1024, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, falcon1024, oqsx, PrivateKeyInfo, der); @@ -1831,6 +2175,62 @@ 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(, falcon1024WithSha256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon1024WithSha256); +MAKE_ENCODER(, falcon1024WithSha384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon1024WithSha384); +MAKE_ENCODER(, falcon1024WithSha512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon1024WithSha512); +MAKE_ENCODER(, falcon1024WithSha3At256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha3At256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha3At256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha3At256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha3At256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha3At256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon1024WithSha3At256); +MAKE_ENCODER(, falcon1024WithSha3At384, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha3At384, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha3At384, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha3At384, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha3At384, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha3At384, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon1024WithSha3At384); +MAKE_ENCODER(, falcon1024WithSha3At512, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha3At512, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha3At512, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha3At512, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithSha3At512, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon1024WithSha3At512, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon1024WithSha3At512); +MAKE_ENCODER(, falcon1024WithShake128, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithShake128, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithShake128, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithShake128, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithShake128, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon1024WithShake128, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon1024WithShake128); +MAKE_ENCODER(, falcon1024WithShake256, oqsx, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithShake256, oqsx, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithShake256, oqsx, PrivateKeyInfo, der); +MAKE_ENCODER(, falcon1024WithShake256, oqsx, PrivateKeyInfo, pem); +MAKE_ENCODER(, falcon1024WithShake256, oqsx, SubjectPublicKeyInfo, der); +MAKE_ENCODER(, falcon1024WithShake256, oqsx, SubjectPublicKeyInfo, pem); +MAKE_TEXT_ENCODER(, falcon1024WithShake256); MAKE_ENCODER(, sphincssha2128fsimple, oqsx, EncryptedPrivateKeyInfo, der); MAKE_ENCODER(, sphincssha2128fsimple, oqsx, EncryptedPrivateKeyInfo, pem); MAKE_ENCODER(, sphincssha2128fsimple, oqsx, PrivateKeyInfo, der); diff --git a/oqsprov/oqs_kmgmt.c b/oqsprov/oqs_kmgmt.c index 5be50149..f73a75c3 100644 --- a/oqsprov/oqs_kmgmt.c +++ b/oqsprov/oqs_kmgmt.c @@ -612,138 +612,578 @@ static void *rsa3072_dilithium2_gen_init(void *provctx, int selection) return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_2, "rsa3072_dilithium2", KEY_TYPE_HYB_SIG, 128, 2); } +static void *dilithium2WithSha256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_2, + "dilithium2WithSha256", KEY_TYPE_SIG, NULL, 128, 3); +} + +static void *dilithium2WithSha256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_2, + "dilithium2WithSha256", 0, 128, 3); +} +static void *dilithium2WithSha384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_2, + "dilithium2WithSha384", KEY_TYPE_SIG, NULL, 128, 4); +} + +static void *dilithium2WithSha384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_2, + "dilithium2WithSha384", 0, 128, 4); +} +static void *dilithium2WithSha512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_2, + "dilithium2WithSha512", KEY_TYPE_SIG, NULL, 128, 5); +} + +static void *dilithium2WithSha512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_2, + "dilithium2WithSha512", 0, 128, 5); +} +static void *dilithium2WithSha3At256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_2, + "dilithium2WithSha3At256", KEY_TYPE_SIG, NULL, 128, 6); +} + +static void *dilithium2WithSha3At256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_2, + "dilithium2WithSha3At256", 0, 128, 6); +} +static void *dilithium2WithSha3At384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_2, + "dilithium2WithSha3At384", KEY_TYPE_SIG, NULL, 128, 7); +} + +static void *dilithium2WithSha3At384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_2, + "dilithium2WithSha3At384", 0, 128, 7); +} +static void *dilithium2WithSha3At512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_2, + "dilithium2WithSha3At512", KEY_TYPE_SIG, NULL, 128, 8); +} + +static void *dilithium2WithSha3At512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_2, + "dilithium2WithSha3At512", 0, 128, 8); +} +static void *dilithium2WithShake128_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_2, + "dilithium2WithShake128", KEY_TYPE_SIG, NULL, 128, 9); +} + +static void *dilithium2WithShake128_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_2, + "dilithium2WithShake128", 0, 128, 9); +} +static void *dilithium2WithShake256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_2, + "dilithium2WithShake256", KEY_TYPE_SIG, NULL, 128, 10); +} + +static void *dilithium2WithShake256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_2, + "dilithium2WithShake256", 0, 128, 10); +} static void *dilithium3_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, - "dilithium3", KEY_TYPE_SIG, NULL, 192, 3); + "dilithium3", KEY_TYPE_SIG, NULL, 192, 11); } static void *dilithium3_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, - "dilithium3", 0, 192, 3); + "dilithium3", 0, 192, 11); } static void *p384_dilithium3_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, - "p384_dilithium3", KEY_TYPE_HYB_SIG, NULL, 192, 4); + "p384_dilithium3", KEY_TYPE_HYB_SIG, NULL, 192, 12); } static void *p384_dilithium3_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, - "p384_dilithium3", KEY_TYPE_HYB_SIG, 192, 4); + "p384_dilithium3", KEY_TYPE_HYB_SIG, 192, 12); +} +static void *dilithium3WithSha256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, + "dilithium3WithSha256", KEY_TYPE_SIG, NULL, 192, 13); +} + +static void *dilithium3WithSha256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, + "dilithium3WithSha256", 0, 192, 13); +} +static void *dilithium3WithSha384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, + "dilithium3WithSha384", KEY_TYPE_SIG, NULL, 192, 14); +} + +static void *dilithium3WithSha384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, + "dilithium3WithSha384", 0, 192, 14); +} +static void *dilithium3WithSha512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, + "dilithium3WithSha512", KEY_TYPE_SIG, NULL, 192, 15); +} + +static void *dilithium3WithSha512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, + "dilithium3WithSha512", 0, 192, 15); +} +static void *dilithium3WithSha3At256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, + "dilithium3WithSha3At256", KEY_TYPE_SIG, NULL, 192, 16); +} + +static void *dilithium3WithSha3At256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, + "dilithium3WithSha3At256", 0, 192, 16); +} +static void *dilithium3WithSha3At384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, + "dilithium3WithSha3At384", KEY_TYPE_SIG, NULL, 192, 17); +} + +static void *dilithium3WithSha3At384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, + "dilithium3WithSha3At384", 0, 192, 17); +} +static void *dilithium3WithSha3At512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, + "dilithium3WithSha3At512", KEY_TYPE_SIG, NULL, 192, 18); +} + +static void *dilithium3WithSha3At512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, + "dilithium3WithSha3At512", 0, 192, 18); +} +static void *dilithium3WithShake128_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, + "dilithium3WithShake128", KEY_TYPE_SIG, NULL, 192, 19); +} + +static void *dilithium3WithShake128_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, + "dilithium3WithShake128", 0, 192, 19); +} +static void *dilithium3WithShake256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_3, + "dilithium3WithShake256", KEY_TYPE_SIG, NULL, 192, 20); +} + +static void *dilithium3WithShake256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_3, + "dilithium3WithShake256", 0, 192, 20); } static void *dilithium5_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, - "dilithium5", KEY_TYPE_SIG, NULL, 256, 5); + "dilithium5", KEY_TYPE_SIG, NULL, 256, 21); } static void *dilithium5_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, - "dilithium5", 0, 256, 5); + "dilithium5", 0, 256, 21); } static void *p521_dilithium5_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, - "p521_dilithium5", KEY_TYPE_HYB_SIG, NULL, 256, 6); + "p521_dilithium5", KEY_TYPE_HYB_SIG, NULL, 256, 22); } static void *p521_dilithium5_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, - "p521_dilithium5", KEY_TYPE_HYB_SIG, 256, 6); + "p521_dilithium5", KEY_TYPE_HYB_SIG, 256, 22); +} +static void *dilithium5WithSha256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, + "dilithium5WithSha256", KEY_TYPE_SIG, NULL, 256, 23); +} + +static void *dilithium5WithSha256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, + "dilithium5WithSha256", 0, 256, 23); +} +static void *dilithium5WithSha384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, + "dilithium5WithSha384", KEY_TYPE_SIG, NULL, 256, 24); +} + +static void *dilithium5WithSha384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, + "dilithium5WithSha384", 0, 256, 24); +} +static void *dilithium5WithSha512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, + "dilithium5WithSha512", KEY_TYPE_SIG, NULL, 256, 25); +} + +static void *dilithium5WithSha512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, + "dilithium5WithSha512", 0, 256, 25); +} +static void *dilithium5WithSha3At256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, + "dilithium5WithSha3At256", KEY_TYPE_SIG, NULL, 256, 26); +} + +static void *dilithium5WithSha3At256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, + "dilithium5WithSha3At256", 0, 256, 26); +} +static void *dilithium5WithSha3At384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, + "dilithium5WithSha3At384", KEY_TYPE_SIG, NULL, 256, 27); +} + +static void *dilithium5WithSha3At384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, + "dilithium5WithSha3At384", 0, 256, 27); +} +static void *dilithium5WithSha3At512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, + "dilithium5WithSha3At512", KEY_TYPE_SIG, NULL, 256, 28); +} + +static void *dilithium5WithSha3At512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, + "dilithium5WithSha3At512", 0, 256, 28); +} +static void *dilithium5WithShake128_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, + "dilithium5WithShake128", KEY_TYPE_SIG, NULL, 256, 29); +} + +static void *dilithium5WithShake128_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, + "dilithium5WithShake128", 0, 256, 29); +} +static void *dilithium5WithShake256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_dilithium_5, + "dilithium5WithShake256", KEY_TYPE_SIG, NULL, 256, 30); +} + +static void *dilithium5WithShake256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_dilithium_5, + "dilithium5WithShake256", 0, 256, 30); } static void *falcon512_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, - "falcon512", KEY_TYPE_SIG, NULL, 128, 7); + "falcon512", KEY_TYPE_SIG, NULL, 128, 31); } static void *falcon512_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, - "falcon512", 0, 128, 7); + "falcon512", 0, 128, 31); } static void *p256_falcon512_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, - "p256_falcon512", KEY_TYPE_HYB_SIG, NULL, 128, 8); + "p256_falcon512", KEY_TYPE_HYB_SIG, NULL, 128, 32); } static void *p256_falcon512_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, - "p256_falcon512", KEY_TYPE_HYB_SIG, 128, 8); + "p256_falcon512", KEY_TYPE_HYB_SIG, 128, 32); } static void *rsa3072_falcon512_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, - "rsa3072_falcon512", KEY_TYPE_HYB_SIG, NULL, 128, 9); + "rsa3072_falcon512", KEY_TYPE_HYB_SIG, NULL, 128, 33); } static void *rsa3072_falcon512_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, - "rsa3072_falcon512", KEY_TYPE_HYB_SIG, 128, 9); + "rsa3072_falcon512", KEY_TYPE_HYB_SIG, 128, 33); +} +static void *falcon512WithSha256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, + "falcon512WithSha256", KEY_TYPE_SIG, NULL, 128, 34); +} + +static void *falcon512WithSha256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, + "falcon512WithSha256", 0, 128, 34); +} +static void *falcon512WithSha384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, + "falcon512WithSha384", KEY_TYPE_SIG, NULL, 128, 35); +} + +static void *falcon512WithSha384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, + "falcon512WithSha384", 0, 128, 35); +} +static void *falcon512WithSha512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, + "falcon512WithSha512", KEY_TYPE_SIG, NULL, 128, 36); +} + +static void *falcon512WithSha512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, + "falcon512WithSha512", 0, 128, 36); +} +static void *falcon512WithSha3At256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, + "falcon512WithSha3At256", KEY_TYPE_SIG, NULL, 128, 37); +} + +static void *falcon512WithSha3At256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, + "falcon512WithSha3At256", 0, 128, 37); +} +static void *falcon512WithSha3At384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, + "falcon512WithSha3At384", KEY_TYPE_SIG, NULL, 128, 38); +} + +static void *falcon512WithSha3At384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, + "falcon512WithSha3At384", 0, 128, 38); +} +static void *falcon512WithSha3At512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, + "falcon512WithSha3At512", KEY_TYPE_SIG, NULL, 128, 39); +} + +static void *falcon512WithSha3At512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, + "falcon512WithSha3At512", 0, 128, 39); +} +static void *falcon512WithShake128_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, + "falcon512WithShake128", KEY_TYPE_SIG, NULL, 128, 40); +} + +static void *falcon512WithShake128_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, + "falcon512WithShake128", 0, 128, 40); +} +static void *falcon512WithShake256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_512, + "falcon512WithShake256", KEY_TYPE_SIG, NULL, 128, 41); +} + +static void *falcon512WithShake256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_512, + "falcon512WithShake256", 0, 128, 41); } static void *falcon1024_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, - "falcon1024", KEY_TYPE_SIG, NULL, 256, 10); + "falcon1024", KEY_TYPE_SIG, NULL, 256, 42); } static void *falcon1024_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, - "falcon1024", 0, 256, 10); + "falcon1024", 0, 256, 42); } static void *p521_falcon1024_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, - "p521_falcon1024", KEY_TYPE_HYB_SIG, NULL, 256, 11); + "p521_falcon1024", KEY_TYPE_HYB_SIG, NULL, 256, 43); } static void *p521_falcon1024_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, - "p521_falcon1024", KEY_TYPE_HYB_SIG, 256, 11); + "p521_falcon1024", KEY_TYPE_HYB_SIG, 256, 43); +} +static void *falcon1024WithSha256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, + "falcon1024WithSha256", KEY_TYPE_SIG, NULL, 256, 44); +} + +static void *falcon1024WithSha256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, + "falcon1024WithSha256", 0, 256, 44); +} +static void *falcon1024WithSha384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, + "falcon1024WithSha384", KEY_TYPE_SIG, NULL, 256, 45); +} + +static void *falcon1024WithSha384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, + "falcon1024WithSha384", 0, 256, 45); +} +static void *falcon1024WithSha512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, + "falcon1024WithSha512", KEY_TYPE_SIG, NULL, 256, 46); +} + +static void *falcon1024WithSha512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, + "falcon1024WithSha512", 0, 256, 46); +} +static void *falcon1024WithSha3At256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, + "falcon1024WithSha3At256", KEY_TYPE_SIG, NULL, 256, 47); +} + +static void *falcon1024WithSha3At256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, + "falcon1024WithSha3At256", 0, 256, 47); +} +static void *falcon1024WithSha3At384_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, + "falcon1024WithSha3At384", KEY_TYPE_SIG, NULL, 256, 48); +} + +static void *falcon1024WithSha3At384_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, + "falcon1024WithSha3At384", 0, 256, 48); +} +static void *falcon1024WithSha3At512_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, + "falcon1024WithSha3At512", KEY_TYPE_SIG, NULL, 256, 49); +} + +static void *falcon1024WithSha3At512_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, + "falcon1024WithSha3At512", 0, 256, 49); +} +static void *falcon1024WithShake128_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, + "falcon1024WithShake128", KEY_TYPE_SIG, NULL, 256, 50); +} + +static void *falcon1024WithShake128_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, + "falcon1024WithShake128", 0, 256, 50); +} +static void *falcon1024WithShake256_new_key(void *provctx) +{ + return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_falcon_1024, + "falcon1024WithShake256", KEY_TYPE_SIG, NULL, 256, 51); +} + +static void *falcon1024WithShake256_gen_init(void *provctx, int selection) +{ + return oqsx_gen_init(provctx, selection, OQS_SIG_alg_falcon_1024, + "falcon1024WithShake256", 0, 256, 51); } static void *sphincssha2128fsimple_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_sha2_128f_simple, - "sphincssha2128fsimple", KEY_TYPE_SIG, NULL, 128, 12); + "sphincssha2128fsimple", KEY_TYPE_SIG, NULL, 128, 52); } static void *sphincssha2128fsimple_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_sphincs_sha2_128f_simple, - "sphincssha2128fsimple", 0, 128, 12); + "sphincssha2128fsimple", 0, 128, 52); } static void *p256_sphincssha2128fsimple_new_key(void *provctx) { return oqsx_key_new( PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_sha2_128f_simple, - "p256_sphincssha2128fsimple", KEY_TYPE_HYB_SIG, NULL, 128, 13); + "p256_sphincssha2128fsimple", KEY_TYPE_HYB_SIG, NULL, 128, 53); } static void *p256_sphincssha2128fsimple_gen_init(void *provctx, int selection) { return oqsx_gen_init( provctx, selection, OQS_SIG_alg_sphincs_sha2_128f_simple, - "p256_sphincssha2128fsimple", KEY_TYPE_HYB_SIG, 128, 13); + "p256_sphincssha2128fsimple", KEY_TYPE_HYB_SIG, 128, 53); } static void *rsa3072_sphincssha2128fsimple_new_key(void *provctx) { return oqsx_key_new( PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_sha2_128f_simple, - "rsa3072_sphincssha2128fsimple", KEY_TYPE_HYB_SIG, NULL, 128, 14); + "rsa3072_sphincssha2128fsimple", KEY_TYPE_HYB_SIG, NULL, 128, 54); } static void *rsa3072_sphincssha2128fsimple_gen_init(void *provctx, @@ -751,39 +1191,39 @@ static void *rsa3072_sphincssha2128fsimple_gen_init(void *provctx, { return oqsx_gen_init( provctx, selection, OQS_SIG_alg_sphincs_sha2_128f_simple, - "rsa3072_sphincssha2128fsimple", KEY_TYPE_HYB_SIG, 128, 14); + "rsa3072_sphincssha2128fsimple", KEY_TYPE_HYB_SIG, 128, 54); } static void *sphincssha2128ssimple_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_sha2_128s_simple, - "sphincssha2128ssimple", KEY_TYPE_SIG, NULL, 128, 15); + "sphincssha2128ssimple", KEY_TYPE_SIG, NULL, 128, 55); } static void *sphincssha2128ssimple_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_sphincs_sha2_128s_simple, - "sphincssha2128ssimple", 0, 128, 15); + "sphincssha2128ssimple", 0, 128, 55); } static void *p256_sphincssha2128ssimple_new_key(void *provctx) { return oqsx_key_new( PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_sha2_128s_simple, - "p256_sphincssha2128ssimple", KEY_TYPE_HYB_SIG, NULL, 128, 16); + "p256_sphincssha2128ssimple", KEY_TYPE_HYB_SIG, NULL, 128, 56); } static void *p256_sphincssha2128ssimple_gen_init(void *provctx, int selection) { return oqsx_gen_init( provctx, selection, OQS_SIG_alg_sphincs_sha2_128s_simple, - "p256_sphincssha2128ssimple", KEY_TYPE_HYB_SIG, 128, 16); + "p256_sphincssha2128ssimple", KEY_TYPE_HYB_SIG, 128, 56); } static void *rsa3072_sphincssha2128ssimple_new_key(void *provctx) { return oqsx_key_new( PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_sha2_128s_simple, - "rsa3072_sphincssha2128ssimple", KEY_TYPE_HYB_SIG, NULL, 128, 17); + "rsa3072_sphincssha2128ssimple", KEY_TYPE_HYB_SIG, NULL, 128, 57); } static void *rsa3072_sphincssha2128ssimple_gen_init(void *provctx, @@ -791,66 +1231,66 @@ static void *rsa3072_sphincssha2128ssimple_gen_init(void *provctx, { return oqsx_gen_init( provctx, selection, OQS_SIG_alg_sphincs_sha2_128s_simple, - "rsa3072_sphincssha2128ssimple", KEY_TYPE_HYB_SIG, 128, 17); + "rsa3072_sphincssha2128ssimple", KEY_TYPE_HYB_SIG, 128, 57); } static void *sphincssha2192fsimple_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_sha2_192f_simple, - "sphincssha2192fsimple", KEY_TYPE_SIG, NULL, 192, 18); + "sphincssha2192fsimple", KEY_TYPE_SIG, NULL, 192, 58); } static void *sphincssha2192fsimple_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_sphincs_sha2_192f_simple, - "sphincssha2192fsimple", 0, 192, 18); + "sphincssha2192fsimple", 0, 192, 58); } static void *p384_sphincssha2192fsimple_new_key(void *provctx) { return oqsx_key_new( PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_sha2_192f_simple, - "p384_sphincssha2192fsimple", KEY_TYPE_HYB_SIG, NULL, 192, 19); + "p384_sphincssha2192fsimple", KEY_TYPE_HYB_SIG, NULL, 192, 59); } static void *p384_sphincssha2192fsimple_gen_init(void *provctx, int selection) { return oqsx_gen_init( provctx, selection, OQS_SIG_alg_sphincs_sha2_192f_simple, - "p384_sphincssha2192fsimple", KEY_TYPE_HYB_SIG, 192, 19); + "p384_sphincssha2192fsimple", KEY_TYPE_HYB_SIG, 192, 59); } static void *sphincsshake128fsimple_new_key(void *provctx) { return oqsx_key_new(PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_shake_128f_simple, - "sphincsshake128fsimple", KEY_TYPE_SIG, NULL, 128, 20); + "sphincsshake128fsimple", KEY_TYPE_SIG, NULL, 128, 60); } static void *sphincsshake128fsimple_gen_init(void *provctx, int selection) { return oqsx_gen_init(provctx, selection, OQS_SIG_alg_sphincs_shake_128f_simple, - "sphincsshake128fsimple", 0, 128, 20); + "sphincsshake128fsimple", 0, 128, 60); } static void *p256_sphincsshake128fsimple_new_key(void *provctx) { return oqsx_key_new( PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_shake_128f_simple, - "p256_sphincsshake128fsimple", KEY_TYPE_HYB_SIG, NULL, 128, 21); + "p256_sphincsshake128fsimple", KEY_TYPE_HYB_SIG, NULL, 128, 61); } static void *p256_sphincsshake128fsimple_gen_init(void *provctx, int selection) { return oqsx_gen_init( provctx, selection, OQS_SIG_alg_sphincs_shake_128f_simple, - "p256_sphincsshake128fsimple", KEY_TYPE_HYB_SIG, 128, 21); + "p256_sphincsshake128fsimple", KEY_TYPE_HYB_SIG, 128, 61); } static void *rsa3072_sphincsshake128fsimple_new_key(void *provctx) { return oqsx_key_new( PROV_OQS_LIBCTX_OF(provctx), OQS_SIG_alg_sphincs_shake_128f_simple, - "rsa3072_sphincsshake128fsimple", KEY_TYPE_HYB_SIG, NULL, 128, 22); + "rsa3072_sphincsshake128fsimple", KEY_TYPE_HYB_SIG, NULL, 128, 62); } static void *rsa3072_sphincsshake128fsimple_gen_init(void *provctx, @@ -858,7 +1298,7 @@ static void *rsa3072_sphincsshake128fsimple_gen_init(void *provctx, { return oqsx_gen_init( provctx, selection, OQS_SIG_alg_sphincs_shake_128f_simple, - "rsa3072_sphincsshake128fsimple", KEY_TYPE_HYB_SIG, 128, 22); + "rsa3072_sphincsshake128fsimple", KEY_TYPE_HYB_SIG, 128, 62); } ///// OQS_TEMPLATE_FRAGMENT_KEYMGMT_CONSTRUCTORS_END @@ -1013,15 +1453,55 @@ static void *rsa3072_sphincsshake128fsimple_gen_init(void *provctx, MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium2) MAKE_SIG_KEYMGMT_FUNCTIONS(p256_dilithium2) MAKE_SIG_KEYMGMT_FUNCTIONS(rsa3072_dilithium2) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium2WithSha256) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium2WithSha384) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium2WithSha512) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium2WithSha3At256) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium2WithSha3At384) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium2WithSha3At512) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium2WithShake128) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium2WithShake256) MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium3) MAKE_SIG_KEYMGMT_FUNCTIONS(p384_dilithium3) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium3WithSha256) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium3WithSha384) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium3WithSha512) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium3WithSha3At256) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium3WithSha3At384) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium3WithSha3At512) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium3WithShake128) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium3WithShake256) MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium5) MAKE_SIG_KEYMGMT_FUNCTIONS(p521_dilithium5) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium5WithSha256) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium5WithSha384) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium5WithSha512) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium5WithSha3At256) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium5WithSha3At384) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium5WithSha3At512) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium5WithShake128) +MAKE_SIG_KEYMGMT_FUNCTIONS(dilithium5WithShake256) MAKE_SIG_KEYMGMT_FUNCTIONS(falcon512) MAKE_SIG_KEYMGMT_FUNCTIONS(p256_falcon512) MAKE_SIG_KEYMGMT_FUNCTIONS(rsa3072_falcon512) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon512WithSha256) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon512WithSha384) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon512WithSha512) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon512WithSha3At256) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon512WithSha3At384) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon512WithSha3At512) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon512WithShake128) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon512WithShake256) MAKE_SIG_KEYMGMT_FUNCTIONS(falcon1024) MAKE_SIG_KEYMGMT_FUNCTIONS(p521_falcon1024) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon1024WithSha256) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon1024WithSha384) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon1024WithSha512) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon1024WithSha3At256) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon1024WithSha3At384) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon1024WithSha3At512) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon1024WithShake128) +MAKE_SIG_KEYMGMT_FUNCTIONS(falcon1024WithShake256) MAKE_SIG_KEYMGMT_FUNCTIONS(sphincssha2128fsimple) MAKE_SIG_KEYMGMT_FUNCTIONS(p256_sphincssha2128fsimple) MAKE_SIG_KEYMGMT_FUNCTIONS(rsa3072_sphincssha2128fsimple) diff --git a/oqsprov/oqs_prov.h b/oqsprov/oqs_prov.h index 1c938bf1..a7a5d4e6 100644 --- a/oqsprov/oqs_prov.h +++ b/oqsprov/oqs_prov.h @@ -990,6 +990,157 @@ extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_rsa3072_dilithium2_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_rsa3072_dilithium2_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha256_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha256_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithSha256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium2WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium2WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha384_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha384_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithSha384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium2WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium2WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha512_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha512_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithSha512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium2WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium2WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium2WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium2WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At384_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At384_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium2WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium2WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At512_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At512_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithSha3At512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium2WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium2WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake128_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake128_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake128_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake128_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake128_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake128_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake128_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium2WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium2WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium2WithShake256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium2WithShake256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium2WithShake256_decoder_functions[]; extern const OSSL_DISPATCH oqs_dilithium3_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1024,6 +1175,157 @@ extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p384_dilithium3_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p384_dilithium3_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha256_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha256_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithSha256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium3WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium3WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha384_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha384_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithSha384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium3WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium3WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha512_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha512_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithSha512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium3WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium3WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium3WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium3WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At384_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At384_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium3WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium3WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At512_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At512_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithSha3At512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium3WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium3WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake128_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake128_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake128_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake128_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake128_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake128_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake128_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium3WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium3WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium3WithShake256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium3WithShake256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium3WithShake256_decoder_functions[]; extern const OSSL_DISPATCH oqs_dilithium5_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1058,6 +1360,157 @@ extern const OSSL_DISPATCH oqs_PrivateKeyInfo_der_to_p521_dilithium5_decoder_functions[]; extern const OSSL_DISPATCH oqs_SubjectPublicKeyInfo_der_to_p521_dilithium5_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha256_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha256_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithSha256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium5WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium5WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha384_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha384_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithSha384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium5WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium5WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha512_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha512_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithSha512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium5WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium5WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium5WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium5WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At384_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At384_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium5WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium5WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At512_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At512_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithSha3At512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium5WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium5WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake128_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake128_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake128_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake128_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake128_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake128_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake128_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium5WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium5WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_dilithium5WithShake256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_dilithium5WithShake256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_dilithium5WithShake256_decoder_functions[]; extern const OSSL_DISPATCH oqs_falcon512_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1109,6 +1562,157 @@ 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_falcon512WithSha256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha256_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha256_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithSha256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon512WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon512WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha384_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha384_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithSha384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon512WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon512WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha512_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha512_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithSha512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon512WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon512WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon512WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon512WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At384_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At384_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon512WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon512WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At512_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At512_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithSha3At512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon512WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon512WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake128_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake128_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake128_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithShake128_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithShake128_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake128_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake128_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon512WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon512WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithShake256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon512WithShake256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon512WithShake256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon512WithShake256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon512WithShake256_decoder_functions[]; extern const OSSL_DISPATCH oqs_falcon1024_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1143,6 +1747,157 @@ 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_falcon1024WithSha256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha256_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha256_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithSha256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon1024WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon1024WithSha256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha384_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha384_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithSha384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon1024WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon1024WithSha384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha512_to_EncryptedPrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha512_to_EncryptedPrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithSha512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon1024WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon1024WithSha512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon1024WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon1024WithSha3At256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At384_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At384_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At384_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At384_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At384_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At384_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At384_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon1024WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon1024WithSha3At384_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At512_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At512_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At512_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At512_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At512_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At512_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithSha3At512_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon1024WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon1024WithSha3At512_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake128_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake128_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake128_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake128_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake128_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake128_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake128_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon1024WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon1024WithShake128_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake256_to_PrivateKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake256_to_PrivateKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake256_to_EncryptedPrivateKeyInfo_der_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake256_to_EncryptedPrivateKeyInfo_pem_encoder_functions + []; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake256_to_SubjectPublicKeyInfo_der_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake256_to_SubjectPublicKeyInfo_pem_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_falcon1024WithShake256_to_text_encoder_functions[]; +extern const OSSL_DISPATCH + oqs_PrivateKeyInfo_der_to_falcon1024WithShake256_decoder_functions[]; +extern const OSSL_DISPATCH + oqs_SubjectPublicKeyInfo_der_to_falcon1024WithShake256_decoder_functions[]; extern const OSSL_DISPATCH oqs_sphincssha2128fsimple_to_PrivateKeyInfo_der_encoder_functions[]; extern const OSSL_DISPATCH @@ -1393,15 +2148,55 @@ extern const OSSL_DISPATCH extern const OSSL_DISPATCH oqs_dilithium2_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_p256_dilithium2_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_rsa3072_dilithium2_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithSha256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithSha384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithSha512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithSha3At256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithSha3At384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithSha3At512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithShake128_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium2WithShake256_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_dilithium3_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_p384_dilithium3_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithSha256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithSha384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithSha512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithSha3At256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithSha3At384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithSha3At512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithShake128_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium3WithShake256_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_dilithium5_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_p521_dilithium5_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithSha256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithSha384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithSha512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithSha3At256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithSha3At384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithSha3At512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithShake128_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_dilithium5WithShake256_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_falcon512_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_p256_falcon512_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_rsa3072_falcon512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithSha256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithSha384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithSha512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithSha3At256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithSha3At384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithSha3At512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithShake128_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon512WithShake256_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_falcon1024_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_p521_falcon1024_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithSha256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithSha384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithSha512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithSha3At256_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithSha3At384_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithSha3At512_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithShake128_keymgmt_functions[]; +extern const OSSL_DISPATCH oqs_falcon1024WithShake256_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_sphincssha2128fsimple_keymgmt_functions[]; extern const OSSL_DISPATCH oqs_p256_sphincssha2128fsimple_keymgmt_functions[]; extern const OSSL_DISPATCH diff --git a/oqsprov/oqs_sig.c b/oqsprov/oqs_sig.c index 86a4ae3a..c0b304e9 100644 --- a/oqsprov/oqs_sig.c +++ b/oqsprov/oqs_sig.c @@ -50,10 +50,12 @@ static OSSL_FUNC_signature_digest_sign_init_fn oqs_sig_digest_sign_init; static OSSL_FUNC_signature_digest_sign_update_fn oqs_sig_digest_signverify_update; static OSSL_FUNC_signature_digest_sign_final_fn oqs_sig_digest_sign_final; +static OSSL_FUNC_signature_digest_sign_fn oqs_sig_digest_sign; static OSSL_FUNC_signature_digest_verify_init_fn oqs_sig_digest_verify_init; static OSSL_FUNC_signature_digest_verify_update_fn oqs_sig_digest_signverify_update; static OSSL_FUNC_signature_digest_verify_final_fn oqs_sig_digest_verify_final; +static OSSL_FUNC_signature_digest_verify_fn oqs_sig_digest_verify; static OSSL_FUNC_signature_freectx_fn oqs_sig_freectx; static OSSL_FUNC_signature_dupctx_fn oqs_sig_dupctx; static OSSL_FUNC_signature_get_ctx_params_fn oqs_sig_get_ctx_params; @@ -67,19 +69,6 @@ static OSSL_FUNC_signature_set_ctx_md_params_fn oqs_sig_set_ctx_md_params; static OSSL_FUNC_signature_settable_ctx_md_params_fn oqs_sig_settable_ctx_md_params; -// OIDS: -static int get_aid(unsigned char **oidbuf, const char *tls_name) -{ - X509_ALGOR *algor = X509_ALGOR_new(); - int aidlen = 0; - - X509_ALGOR_set0(algor, OBJ_txt2obj(tls_name, 0), V_ASN1_UNDEF, NULL); - - aidlen = i2d_X509_ALGOR(algor, oidbuf); - X509_ALGOR_free(algor); - return (aidlen); -} - /* * What's passed as an actual key is defined by the KEYMGMT interface. */ @@ -110,8 +99,85 @@ typedef struct { // for collecting data if no MD is active: unsigned char *mddata; int operation; + // Hash-n-sign (no need to re-hash for the traditional part) + int is_pre_hashed; } PROV_OQSSIG_CTX; +// OIDS: +static int get_aid(unsigned char **oidbuf, const char *tls_name, + const char *mdname, PROV_OQSSIG_CTX *ctx) +{ + + X509_ALGOR *algor = NULL; + EVP_MD *digest_alg = NULL; + + int aidlen = 0; + int sig_alg = 0; + int digest_nid = 0; + + // Input checks + if (!tls_name || !ctx) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_WRONG_PARAMETERS); + return 0; + } + + // Retireves the NID for the PKEY type + int pkey_nid = OBJ_txt2nid(tls_name); + if (pkey_nid == NID_undef) { + OQS_SIG_PRINTF2("OQS SIG provider: can not get the id for pkey %s\n", + tls_name); + ERR_raise(ERR_LIB_USER, OQSPROV_R_OBJ_CREATE_ERR); + return 0; + } + + // Retrieves the NID for the digest (if any) + if (mdname != NULL && strncmp(mdname, "NULL", 4) + && strncmp(mdname, "null", 4) && strncmp(mdname, "undef", 5) + && strncmp(mdname, "UNDEF", 5)) { + digest_alg = EVP_MD_fetch(ctx->libctx, mdname, NULL); + } else if (ctx->md != NULL && ctx->md != EVP_md_null()) { + digest_alg = ctx->md; + } else { + digest_alg = NULL; + } + + if (digest_alg) { + digest_nid = EVP_MD_nid(digest_alg); + if (digest_nid == NID_undef) { + OQS_SIG_PRINTF2( + "OQS SIG provider: can not get the id for digest %s\n", mdname); + ERR_raise(ERR_LIB_USER, OQSPROV_R_INVALID_DIGEST); + return 0; + } + } + + // Retrieves the NID for the signature algorithm + if (!OBJ_find_sigid_by_algs(&sig_alg, digest_nid, pkey_nid) + || sig_alg == NID_undef) { + OQS_SIG_PRINTF3( + "OQS SIG provider: failure to find algorithm for %s and %s\n", + tls_name, mdname); + ERR_raise(ERR_LIB_USER, OQSPROV_R_MISSING_OID); + return 0; + } + + // Allocate the new algorithm + algor = X509_ALGOR_new(); + if (!algor) { + OQS_SIG_PRINTF("OQS SIG provider: null param error algor\n"); + ERR_raise(ERR_LIB_USER, OQSPROV_R_LIB_CREATE_ERR); + return 0; + } + + // Set the algorithm + X509_ALGOR_set0(algor, OBJ_nid2obj(sig_alg), V_ASN1_UNDEF, NULL); + + // Encodes the algorithm and returns the encoded data length + aidlen = i2d_X509_ALGOR(algor, oidbuf); + X509_ALGOR_free(algor); + return (aidlen); +} + static void *oqs_sig_newctx(void *provctx, const char *propq) { PROV_OQSSIG_CTX *poqs_sigctx; @@ -128,6 +194,8 @@ static void *oqs_sig_newctx(void *provctx, const char *propq) poqs_sigctx = NULL; ERR_raise(ERR_LIB_USER, ERR_R_MALLOC_FAILURE); } + + poqs_sigctx->is_pre_hashed = 0; return poqs_sigctx; } @@ -158,7 +226,7 @@ static int oqs_sig_setup_md(PROV_OQSSIG_CTX *ctx, const char *mdname, if (ctx->aid) OPENSSL_free(ctx->aid); ctx->aid = NULL; // ensure next function allocates memory - ctx->aid_len = get_aid(&(ctx->aid), ctx->sig->tls_name); + ctx->aid_len = get_aid(&(ctx->aid), ctx->sig->tls_name, mdname, ctx); ctx->md = md; OPENSSL_strlcpy(ctx->mdname, mdname, sizeof(ctx->mdname)); @@ -262,40 +330,58 @@ static int oqs_sig_sign(void *vpoqs_sigctx, unsigned char *sig, size_t *siglen, * uncomment the following line if using pre-performed hash: * if (poqs_sigctx->mdctx == NULL) { // hashing not yet done */ - const EVP_MD *classical_md; - int digest_len; - unsigned char digest[SHA512_DIGEST_LENGTH]; /* init with max length */ - /* classical schemes can't sign arbitrarily large data; we hash it first - */ - switch (oqs_key->claimed_nist_level) { - case 1: - classical_md = EVP_sha256(); - digest_len = SHA256_DIGEST_LENGTH; - SHA256(tbs, tbslen, (unsigned char *)&digest); - break; - case 2: - case 3: - classical_md = EVP_sha384(); - digest_len = SHA384_DIGEST_LENGTH; - SHA384(tbs, tbslen, (unsigned char *)&digest); - break; - case 4: - case 5: - default: - classical_md = EVP_sha512(); - digest_len = SHA512_DIGEST_LENGTH; - SHA512(tbs, tbslen, (unsigned char *)&digest); - break; + int digest_len; + unsigned char digest[EVP_MAX_MD_SIZE]; /* init with max length */ + + if (!poqs_sigctx->is_pre_hashed) { + + const EVP_MD *classical_md; + + /* classical schemes can't sign arbitrarily large data; we hash it + * first */ + switch (oqs_key->claimed_nist_level) { + case 1: + classical_md = EVP_sha256(); + digest_len = SHA256_DIGEST_LENGTH; + SHA256(tbs, tbslen, (unsigned char *)&digest); + break; + case 2: + case 3: + classical_md = EVP_sha384(); + digest_len = SHA384_DIGEST_LENGTH; + SHA384(tbs, tbslen, (unsigned char *)&digest); + break; + case 4: + case 5: + default: + classical_md = EVP_sha512(); + digest_len = SHA512_DIGEST_LENGTH; + SHA512(tbs, tbslen, (unsigned char *)&digest); + break; + } + if (EVP_PKEY_CTX_set_signature_md(classical_ctx_sign, classical_md) + <= 0) { + ERR_raise(ERR_LIB_USER, ERR_R_FATAL); + goto endsign; + } + } else { + // Pre-Hashed Data, no need to hash again + if (tbslen > sizeof(digest)) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_BUFFER_LENGTH_WRONG); + goto endsign; + } + memcpy(digest, tbs, tbslen); + digest_len = tbslen; } - if ((EVP_PKEY_CTX_set_signature_md(classical_ctx_sign, classical_md) - <= 0) - || (EVP_PKEY_sign(classical_ctx_sign, sig + SIZE_OF_UINT32, - &actual_classical_sig_len, digest, digest_len) - <= 0)) { + // Hashing done, just sign + if (EVP_PKEY_sign(classical_ctx_sign, sig + SIZE_OF_UINT32, + &actual_classical_sig_len, digest, digest_len) + <= 0) { ERR_raise(ERR_LIB_USER, ERR_R_FATAL); goto endsign; } + /* activate in case we want to use pre-performed hashes: * } * else { // hashing done before; just sign: @@ -364,7 +450,7 @@ static int oqs_sig_verify(void *vpoqs_sigctx, const unsigned char *sig, const EVP_MD *classical_md; size_t actual_classical_sig_len = 0; int digest_len; - unsigned char digest[SHA512_DIGEST_LENGTH]; /* init with max length */ + unsigned char digest[EVP_MAX_MD_SIZE]; /* init with max length */ if ((ctx_verify = EVP_PKEY_CTX_new(oqsxkey->classical_pkey, NULL)) == NULL @@ -381,38 +467,59 @@ static int oqs_sig_verify(void *vpoqs_sigctx, const unsigned char *sig, } DECODE_UINT32(actual_classical_sig_len, sig); - /* same as with sign: activate if pre-existing hashing to be used: - * if (poqs_sigctx->mdctx == NULL) { // hashing not yet done - */ - switch (oqs_key->claimed_nist_level) { - case 1: - classical_md = EVP_sha256(); - digest_len = SHA256_DIGEST_LENGTH; - SHA256(tbs, tbslen, (unsigned char *)&digest); - break; - case 2: - case 3: - classical_md = EVP_sha384(); - digest_len = SHA384_DIGEST_LENGTH; - SHA384(tbs, tbslen, (unsigned char *)&digest); - break; - case 4: - case 5: - default: - classical_md = EVP_sha512(); - digest_len = SHA512_DIGEST_LENGTH; - SHA512(tbs, tbslen, (unsigned char *)&digest); - break; + if (!poqs_sigctx->is_pre_hashed) { + + /* same as with sign: activate if pre-existing hashing to be used: + * if (poqs_sigctx->mdctx == NULL) { // hashing not yet done + */ + switch (oqs_key->claimed_nist_level) { + case 1: + classical_md = EVP_sha256(); + digest_len = SHA256_DIGEST_LENGTH; + SHA256(tbs, tbslen, (unsigned char *)&digest); + break; + case 2: + case 3: + classical_md = EVP_sha384(); + digest_len = SHA384_DIGEST_LENGTH; + SHA384(tbs, tbslen, (unsigned char *)&digest); + break; + case 4: + case 5: + default: + classical_md = EVP_sha512(); + digest_len = SHA512_DIGEST_LENGTH; + SHA512(tbs, tbslen, (unsigned char *)&digest); + break; + } + + if (EVP_PKEY_CTX_set_signature_md(ctx_verify, classical_md) <= 0) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_VERIFY_ERROR); + goto endverify; + } + + } else { + + // Pre-Hashed Data, no need to hash again + if (tbslen > sizeof(digest)) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_BUFFER_LENGTH_WRONG); + goto endverify; + } + + // Copy data and length + memcpy(digest, tbs, tbslen); + digest_len = tbslen; } - if ((EVP_PKEY_CTX_set_signature_md(ctx_verify, classical_md) <= 0) - || (EVP_PKEY_verify(ctx_verify, sig + SIZE_OF_UINT32, - actual_classical_sig_len, digest, digest_len) - <= 0)) { + + if (EVP_PKEY_verify(ctx_verify, sig + SIZE_OF_UINT32, + actual_classical_sig_len, digest, digest_len) + <= 0) { ERR_raise(ERR_LIB_USER, OQSPROV_R_VERIFY_ERROR); goto endverify; } else { OQS_SIG_PRINTF("OQS SIG: classic verification OK\n"); } + /* activate for using pre-existing digest: * } * else { // hashing already done: @@ -599,6 +706,133 @@ int oqs_sig_digest_verify_final(void *vpoqs_sigctx, const unsigned char *sig, poqs_sigctx->mdsize); } +int oqs_sig_digest_sign(void *ctx, unsigned char *sig, size_t *siglen, + size_t sigsize, const unsigned char *tbs, size_t tbslen) +{ + + PROV_OQSSIG_CTX *poqs_sigctx = (PROV_OQSSIG_CTX *)ctx; + + // Input checks + if (!ctx || !siglen || !tbs || !tbslen) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_WRONG_PARAMETERS); + return 0; + } + + // Verify we have all our ducks in a row + if (!poqs_sigctx->sig + || !poqs_sigctx->sig->oqsx_provider_ctx.oqsx_qs_ctx.sig) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_NO_PRIVATE_KEY); + return 0; + } + + // Sends back the signature size if no buffer was provided + if (!sig) { + // Estimates the signature size + if (!oqs_sig_sign(ctx, sig, siglen, sigsize, tbs, tbslen)) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_SIGNING_FAILED); + return 0; + } + // All Done + return 1; + } + + // If no digest is configured, we do not use any + if (!poqs_sigctx->md || !poqs_sigctx->mdctx) { + // Generates the signature on the data (direct signing) + if (!oqs_sig_sign(ctx, sig, siglen, sigsize, tbs, tbslen)) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_SIGNING_FAILED); + return 0; + } + // All Done + return 1; + } + + // Calculates the digest + unsigned char tbs_digest[EVP_MAX_MD_SIZE]; + unsigned int tbs_digest_len = sizeof(tbs_digest); + + // Checks for private key in the context + if (!EVP_Digest(tbs, tbslen, tbs_digest, &tbs_digest_len, poqs_sigctx->md, + NULL)) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_INVALID_DIGEST); + return 0; + } + + // Signals the traditional that no additional hashing is needed + poqs_sigctx->is_pre_hashed = 1; + + // Generates the signature on the digest + if (!oqs_sig_sign(ctx, sig, siglen, sigsize, tbs_digest, tbs_digest_len)) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_SIGNING_FAILED); + return 0; + } + + // Success + return 1; +} + +int oqs_sig_digest_verify(void *ctx, const unsigned char *sig, size_t siglen, + const unsigned char *tbs, size_t tbslen) +{ + + PROV_OQSSIG_CTX *poqs_sigctx = (PROV_OQSSIG_CTX *)ctx; + // Retrieves the context + + EVP_MD *md = NULL; + // The digest to use + + unsigned char tbs_digest[EVP_MAX_MD_SIZE]; + unsigned int tbs_digest_len = sizeof(tbs_digest); + // Buffer for the digest + + // Input checks + if (!ctx || !sig || !siglen || !tbs || !tbslen) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_WRONG_PARAMETERS); + return 0; + } + + // Checks if we have a valid digest + if (!poqs_sigctx->md && poqs_sigctx->mdname[0] + && OPENSSL_strncasecmp(poqs_sigctx->mdname, "UNDEF", 5) != 0) { + // Fetch the MD + md = EVP_MD_fetch(poqs_sigctx->libctx, poqs_sigctx->mdname, NULL); + if (!md) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_INVALID_DIGEST); + return 0; + } + } else if (poqs_sigctx->md) { + // Use the configured digest + md = poqs_sigctx->md; + } + + if (md) { + // Checks for private key in the context + if (!EVP_Digest(tbs, tbslen, tbs_digest, &tbs_digest_len, md, NULL)) { + ERR_raise(ERR_LIB_USER, OQSPROV_R_INVALID_DIGEST); + return 0; + } + // Use passed digest + int success + = oqs_sig_verify(ctx, sig, siglen, tbs_digest, tbs_digest_len); + if (!success) { + if (!poqs_sigctx->md) + EVP_MD_free(md); + return 0; + } + } else { + // No digest, use the data directly + int success = oqs_sig_verify(ctx, sig, siglen, tbs, tbslen); + if (!success) { + if (!poqs_sigctx->md) + EVP_MD_free(md); + return 0; + } + } + + // Success + return 1; +} + static void oqs_sig_freectx(void *vpoqs_sigctx) { PROV_OQSSIG_CTX *ctx = (PROV_OQSSIG_CTX *)vpoqs_sigctx; @@ -689,8 +923,8 @@ static int oqs_sig_get_ctx_params(void *vpoqs_sigctx, OSSL_PARAM *params) p = OSSL_PARAM_locate(params, OSSL_SIGNATURE_PARAM_ALGORITHM_ID); if (poqs_sigctx->aid == NULL) { - poqs_sigctx->aid_len - = get_aid(&(poqs_sigctx->aid), poqs_sigctx->sig->tls_name); + poqs_sigctx->aid_len = get_aid( + &(poqs_sigctx->aid), poqs_sigctx->sig->tls_name, NULL, poqs_sigctx); } if (p != NULL @@ -745,12 +979,12 @@ static int oqs_sig_set_ctx_params(void *vpoqs_sigctx, const OSSL_PARAM params[]) return 0; } - // not passing in parameters we can act on is no error return 1; } static const OSSL_PARAM known_settable_ctx_params[] = {OSSL_PARAM_utf8_string(OSSL_SIGNATURE_PARAM_DIGEST, NULL, 0), + OSSL_PARAM_utf8_string(OSSL_SIGNATURE_PARAM_ALGORITHM_ID, NULL, 0), OSSL_PARAM_utf8_string(OSSL_SIGNATURE_PARAM_PROPERTIES, NULL, 0), OSSL_PARAM_END}; @@ -818,40 +1052,42 @@ static const OSSL_PARAM *oqs_sig_settable_ctx_md_params(void *vpoqs_sigctx) return EVP_MD_settable_ctx_params(poqs_sigctx->md); } -const OSSL_DISPATCH oqs_signature_functions[] - = {{OSSL_FUNC_SIGNATURE_NEWCTX, (void (*)(void))oqs_sig_newctx}, - {OSSL_FUNC_SIGNATURE_SIGN_INIT, (void (*)(void))oqs_sig_sign_init}, - {OSSL_FUNC_SIGNATURE_SIGN, (void (*)(void))oqs_sig_sign}, - {OSSL_FUNC_SIGNATURE_VERIFY_INIT, (void (*)(void))oqs_sig_verify_init}, - {OSSL_FUNC_SIGNATURE_VERIFY, (void (*)(void))oqs_sig_verify}, - {OSSL_FUNC_SIGNATURE_DIGEST_SIGN_INIT, - (void (*)(void))oqs_sig_digest_sign_init}, - {OSSL_FUNC_SIGNATURE_DIGEST_SIGN_UPDATE, - (void (*)(void))oqs_sig_digest_signverify_update}, - {OSSL_FUNC_SIGNATURE_DIGEST_SIGN_FINAL, - (void (*)(void))oqs_sig_digest_sign_final}, - {OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_INIT, - (void (*)(void))oqs_sig_digest_verify_init}, - {OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_UPDATE, - (void (*)(void))oqs_sig_digest_signverify_update}, - {OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_FINAL, - (void (*)(void))oqs_sig_digest_verify_final}, - {OSSL_FUNC_SIGNATURE_FREECTX, (void (*)(void))oqs_sig_freectx}, - {OSSL_FUNC_SIGNATURE_DUPCTX, (void (*)(void))oqs_sig_dupctx}, - {OSSL_FUNC_SIGNATURE_GET_CTX_PARAMS, - (void (*)(void))oqs_sig_get_ctx_params}, - {OSSL_FUNC_SIGNATURE_GETTABLE_CTX_PARAMS, - (void (*)(void))oqs_sig_gettable_ctx_params}, - {OSSL_FUNC_SIGNATURE_SET_CTX_PARAMS, - (void (*)(void))oqs_sig_set_ctx_params}, - {OSSL_FUNC_SIGNATURE_SETTABLE_CTX_PARAMS, - (void (*)(void))oqs_sig_settable_ctx_params}, - {OSSL_FUNC_SIGNATURE_GET_CTX_MD_PARAMS, - (void (*)(void))oqs_sig_get_ctx_md_params}, - {OSSL_FUNC_SIGNATURE_GETTABLE_CTX_MD_PARAMS, - (void (*)(void))oqs_sig_gettable_ctx_md_params}, - {OSSL_FUNC_SIGNATURE_SET_CTX_MD_PARAMS, - (void (*)(void))oqs_sig_set_ctx_md_params}, - {OSSL_FUNC_SIGNATURE_SETTABLE_CTX_MD_PARAMS, - (void (*)(void))oqs_sig_settable_ctx_md_params}, - {0, NULL}}; +const OSSL_DISPATCH oqs_signature_functions[] = { + {OSSL_FUNC_SIGNATURE_NEWCTX, (void (*)(void))oqs_sig_newctx}, + {OSSL_FUNC_SIGNATURE_SIGN_INIT, (void (*)(void))oqs_sig_sign_init}, + {OSSL_FUNC_SIGNATURE_SIGN, (void (*)(void))oqs_sig_sign}, + {OSSL_FUNC_SIGNATURE_VERIFY_INIT, (void (*)(void))oqs_sig_verify_init}, + {OSSL_FUNC_SIGNATURE_VERIFY, (void (*)(void))oqs_sig_verify}, + {OSSL_FUNC_SIGNATURE_DIGEST_SIGN, (void (*)(void))oqs_sig_digest_sign}, + {OSSL_FUNC_SIGNATURE_DIGEST_VERIFY, (void (*)(void))oqs_sig_digest_verify}, + {OSSL_FUNC_SIGNATURE_DIGEST_SIGN_INIT, + (void (*)(void))oqs_sig_digest_sign_init}, + {OSSL_FUNC_SIGNATURE_DIGEST_SIGN_UPDATE, + (void (*)(void))oqs_sig_digest_signverify_update}, + {OSSL_FUNC_SIGNATURE_DIGEST_SIGN_FINAL, + (void (*)(void))oqs_sig_digest_sign_final}, + {OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_INIT, + (void (*)(void))oqs_sig_digest_verify_init}, + {OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_UPDATE, + (void (*)(void))oqs_sig_digest_signverify_update}, + {OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_FINAL, + (void (*)(void))oqs_sig_digest_verify_final}, + {OSSL_FUNC_SIGNATURE_FREECTX, (void (*)(void))oqs_sig_freectx}, + {OSSL_FUNC_SIGNATURE_DUPCTX, (void (*)(void))oqs_sig_dupctx}, + {OSSL_FUNC_SIGNATURE_GET_CTX_PARAMS, + (void (*)(void))oqs_sig_get_ctx_params}, + {OSSL_FUNC_SIGNATURE_GETTABLE_CTX_PARAMS, + (void (*)(void))oqs_sig_gettable_ctx_params}, + {OSSL_FUNC_SIGNATURE_SET_CTX_PARAMS, + (void (*)(void))oqs_sig_set_ctx_params}, + {OSSL_FUNC_SIGNATURE_SETTABLE_CTX_PARAMS, + (void (*)(void))oqs_sig_settable_ctx_params}, + {OSSL_FUNC_SIGNATURE_GET_CTX_MD_PARAMS, + (void (*)(void))oqs_sig_get_ctx_md_params}, + {OSSL_FUNC_SIGNATURE_GETTABLE_CTX_MD_PARAMS, + (void (*)(void))oqs_sig_gettable_ctx_md_params}, + {OSSL_FUNC_SIGNATURE_SET_CTX_MD_PARAMS, + (void (*)(void))oqs_sig_set_ctx_md_params}, + {OSSL_FUNC_SIGNATURE_SETTABLE_CTX_MD_PARAMS, + (void (*)(void))oqs_sig_settable_ctx_md_params}, + {0, NULL}}; diff --git a/oqsprov/oqsdecoders.inc b/oqsprov/oqsdecoders.inc index 94f65d15..77790c80 100644 --- a/oqsprov/oqsdecoders.inc +++ b/oqsprov/oqsdecoders.inc @@ -7,9 +7,9 @@ * */ -#ifndef DECODER_PROVIDER -# error Macro DECODER_PROVIDER undefined -#endif +// #ifndef DECODER_PROVIDER +// # error Macro DECODER_PROVIDER undefined +// #endif #define DECODER_STRUCTURE_type_specific_keypair "type-specific" #define DECODER_STRUCTURE_type_specific_params "type-specific" @@ -200,6 +200,54 @@ DECODER_w_structure("frodo640aes", der, PrivateKeyInfo, frodo640aes), DECODER_w_structure("rsa3072_dilithium2", der, SubjectPublicKeyInfo, rsa3072_dilithium2), #endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + DECODER_w_structure("dilithium2WithSha256", der, PrivateKeyInfo, + dilithium2WithSha256), + DECODER_w_structure("dilithium2WithSha256", der, SubjectPublicKeyInfo, + dilithium2WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + DECODER_w_structure("dilithium2WithSha384", der, PrivateKeyInfo, + dilithium2WithSha384), + DECODER_w_structure("dilithium2WithSha384", der, SubjectPublicKeyInfo, + dilithium2WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + DECODER_w_structure("dilithium2WithSha512", der, PrivateKeyInfo, + dilithium2WithSha512), + DECODER_w_structure("dilithium2WithSha512", der, SubjectPublicKeyInfo, + dilithium2WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + DECODER_w_structure("dilithium2WithSha3At256", der, PrivateKeyInfo, + dilithium2WithSha3At256), + DECODER_w_structure("dilithium2WithSha3At256", der, SubjectPublicKeyInfo, + dilithium2WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + DECODER_w_structure("dilithium2WithSha3At384", der, PrivateKeyInfo, + dilithium2WithSha3At384), + DECODER_w_structure("dilithium2WithSha3At384", der, SubjectPublicKeyInfo, + dilithium2WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + DECODER_w_structure("dilithium2WithSha3At512", der, PrivateKeyInfo, + dilithium2WithSha3At512), + DECODER_w_structure("dilithium2WithSha3At512", der, SubjectPublicKeyInfo, + dilithium2WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + DECODER_w_structure("dilithium2WithShake128", der, PrivateKeyInfo, + dilithium2WithShake128), + DECODER_w_structure("dilithium2WithShake128", der, SubjectPublicKeyInfo, + dilithium2WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + DECODER_w_structure("dilithium2WithShake256", der, PrivateKeyInfo, + dilithium2WithShake256), + DECODER_w_structure("dilithium2WithShake256", der, SubjectPublicKeyInfo, + dilithium2WithShake256), +#endif #ifdef OQS_ENABLE_SIG_dilithium_3 DECODER_w_structure("dilithium3", der, PrivateKeyInfo, dilithium3), DECODER_w_structure("dilithium3", der, SubjectPublicKeyInfo, dilithium3), @@ -208,6 +256,54 @@ DECODER_w_structure("frodo640aes", der, PrivateKeyInfo, frodo640aes), DECODER_w_structure("p384_dilithium3", der, SubjectPublicKeyInfo, p384_dilithium3), #endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + DECODER_w_structure("dilithium3WithSha256", der, PrivateKeyInfo, + dilithium3WithSha256), + DECODER_w_structure("dilithium3WithSha256", der, SubjectPublicKeyInfo, + dilithium3WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + DECODER_w_structure("dilithium3WithSha384", der, PrivateKeyInfo, + dilithium3WithSha384), + DECODER_w_structure("dilithium3WithSha384", der, SubjectPublicKeyInfo, + dilithium3WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + DECODER_w_structure("dilithium3WithSha512", der, PrivateKeyInfo, + dilithium3WithSha512), + DECODER_w_structure("dilithium3WithSha512", der, SubjectPublicKeyInfo, + dilithium3WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + DECODER_w_structure("dilithium3WithSha3At256", der, PrivateKeyInfo, + dilithium3WithSha3At256), + DECODER_w_structure("dilithium3WithSha3At256", der, SubjectPublicKeyInfo, + dilithium3WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + DECODER_w_structure("dilithium3WithSha3At384", der, PrivateKeyInfo, + dilithium3WithSha3At384), + DECODER_w_structure("dilithium3WithSha3At384", der, SubjectPublicKeyInfo, + dilithium3WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + DECODER_w_structure("dilithium3WithSha3At512", der, PrivateKeyInfo, + dilithium3WithSha3At512), + DECODER_w_structure("dilithium3WithSha3At512", der, SubjectPublicKeyInfo, + dilithium3WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + DECODER_w_structure("dilithium3WithShake128", der, PrivateKeyInfo, + dilithium3WithShake128), + DECODER_w_structure("dilithium3WithShake128", der, SubjectPublicKeyInfo, + dilithium3WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + DECODER_w_structure("dilithium3WithShake256", der, PrivateKeyInfo, + dilithium3WithShake256), + DECODER_w_structure("dilithium3WithShake256", der, SubjectPublicKeyInfo, + dilithium3WithShake256), +#endif #ifdef OQS_ENABLE_SIG_dilithium_5 DECODER_w_structure("dilithium5", der, PrivateKeyInfo, dilithium5), DECODER_w_structure("dilithium5", der, SubjectPublicKeyInfo, dilithium5), @@ -216,6 +312,54 @@ DECODER_w_structure("frodo640aes", der, PrivateKeyInfo, frodo640aes), DECODER_w_structure("p521_dilithium5", der, SubjectPublicKeyInfo, p521_dilithium5), #endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + DECODER_w_structure("dilithium5WithSha256", der, PrivateKeyInfo, + dilithium5WithSha256), + DECODER_w_structure("dilithium5WithSha256", der, SubjectPublicKeyInfo, + dilithium5WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + DECODER_w_structure("dilithium5WithSha384", der, PrivateKeyInfo, + dilithium5WithSha384), + DECODER_w_structure("dilithium5WithSha384", der, SubjectPublicKeyInfo, + dilithium5WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + DECODER_w_structure("dilithium5WithSha512", der, PrivateKeyInfo, + dilithium5WithSha512), + DECODER_w_structure("dilithium5WithSha512", der, SubjectPublicKeyInfo, + dilithium5WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + DECODER_w_structure("dilithium5WithSha3At256", der, PrivateKeyInfo, + dilithium5WithSha3At256), + DECODER_w_structure("dilithium5WithSha3At256", der, SubjectPublicKeyInfo, + dilithium5WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + DECODER_w_structure("dilithium5WithSha3At384", der, PrivateKeyInfo, + dilithium5WithSha3At384), + DECODER_w_structure("dilithium5WithSha3At384", der, SubjectPublicKeyInfo, + dilithium5WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + DECODER_w_structure("dilithium5WithSha3At512", der, PrivateKeyInfo, + dilithium5WithSha3At512), + DECODER_w_structure("dilithium5WithSha3At512", der, SubjectPublicKeyInfo, + dilithium5WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + DECODER_w_structure("dilithium5WithShake128", der, PrivateKeyInfo, + dilithium5WithShake128), + DECODER_w_structure("dilithium5WithShake128", der, SubjectPublicKeyInfo, + dilithium5WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + DECODER_w_structure("dilithium5WithShake256", der, PrivateKeyInfo, + dilithium5WithShake256), + DECODER_w_structure("dilithium5WithShake256", der, SubjectPublicKeyInfo, + dilithium5WithShake256), +#endif #ifdef OQS_ENABLE_SIG_falcon_512 DECODER_w_structure("falcon512", der, PrivateKeyInfo, falcon512), DECODER_w_structure("falcon512", der, SubjectPublicKeyInfo, falcon512), @@ -227,6 +371,54 @@ DECODER_w_structure("frodo640aes", der, PrivateKeyInfo, frodo640aes), DECODER_w_structure("rsa3072_falcon512", der, SubjectPublicKeyInfo, rsa3072_falcon512), #endif +#ifdef OQS_ENABLE_SIG_falcon_512 + DECODER_w_structure("falcon512WithSha256", der, PrivateKeyInfo, + falcon512WithSha256), + DECODER_w_structure("falcon512WithSha256", der, SubjectPublicKeyInfo, + falcon512WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + DECODER_w_structure("falcon512WithSha384", der, PrivateKeyInfo, + falcon512WithSha384), + DECODER_w_structure("falcon512WithSha384", der, SubjectPublicKeyInfo, + falcon512WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + DECODER_w_structure("falcon512WithSha512", der, PrivateKeyInfo, + falcon512WithSha512), + DECODER_w_structure("falcon512WithSha512", der, SubjectPublicKeyInfo, + falcon512WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + DECODER_w_structure("falcon512WithSha3At256", der, PrivateKeyInfo, + falcon512WithSha3At256), + DECODER_w_structure("falcon512WithSha3At256", der, SubjectPublicKeyInfo, + falcon512WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + DECODER_w_structure("falcon512WithSha3At384", der, PrivateKeyInfo, + falcon512WithSha3At384), + DECODER_w_structure("falcon512WithSha3At384", der, SubjectPublicKeyInfo, + falcon512WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + DECODER_w_structure("falcon512WithSha3At512", der, PrivateKeyInfo, + falcon512WithSha3At512), + DECODER_w_structure("falcon512WithSha3At512", der, SubjectPublicKeyInfo, + falcon512WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + DECODER_w_structure("falcon512WithShake128", der, PrivateKeyInfo, + falcon512WithShake128), + DECODER_w_structure("falcon512WithShake128", der, SubjectPublicKeyInfo, + falcon512WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + DECODER_w_structure("falcon512WithShake256", der, PrivateKeyInfo, + falcon512WithShake256), + DECODER_w_structure("falcon512WithShake256", der, SubjectPublicKeyInfo, + falcon512WithShake256), +#endif #ifdef OQS_ENABLE_SIG_falcon_1024 DECODER_w_structure("falcon1024", der, PrivateKeyInfo, falcon1024), DECODER_w_structure("falcon1024", der, SubjectPublicKeyInfo, falcon1024), @@ -235,6 +427,54 @@ DECODER_w_structure("frodo640aes", der, PrivateKeyInfo, frodo640aes), DECODER_w_structure("p521_falcon1024", der, SubjectPublicKeyInfo, p521_falcon1024), #endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + DECODER_w_structure("falcon1024WithSha256", der, PrivateKeyInfo, + falcon1024WithSha256), + DECODER_w_structure("falcon1024WithSha256", der, SubjectPublicKeyInfo, + falcon1024WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + DECODER_w_structure("falcon1024WithSha384", der, PrivateKeyInfo, + falcon1024WithSha384), + DECODER_w_structure("falcon1024WithSha384", der, SubjectPublicKeyInfo, + falcon1024WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + DECODER_w_structure("falcon1024WithSha512", der, PrivateKeyInfo, + falcon1024WithSha512), + DECODER_w_structure("falcon1024WithSha512", der, SubjectPublicKeyInfo, + falcon1024WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + DECODER_w_structure("falcon1024WithSha3At256", der, PrivateKeyInfo, + falcon1024WithSha3At256), + DECODER_w_structure("falcon1024WithSha3At256", der, SubjectPublicKeyInfo, + falcon1024WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + DECODER_w_structure("falcon1024WithSha3At384", der, PrivateKeyInfo, + falcon1024WithSha3At384), + DECODER_w_structure("falcon1024WithSha3At384", der, SubjectPublicKeyInfo, + falcon1024WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + DECODER_w_structure("falcon1024WithSha3At512", der, PrivateKeyInfo, + falcon1024WithSha3At512), + DECODER_w_structure("falcon1024WithSha3At512", der, SubjectPublicKeyInfo, + falcon1024WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + DECODER_w_structure("falcon1024WithShake128", der, PrivateKeyInfo, + falcon1024WithShake128), + DECODER_w_structure("falcon1024WithShake128", der, SubjectPublicKeyInfo, + falcon1024WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + DECODER_w_structure("falcon1024WithShake256", der, PrivateKeyInfo, + falcon1024WithShake256), + DECODER_w_structure("falcon1024WithShake256", der, SubjectPublicKeyInfo, + falcon1024WithShake256), +#endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_128f_simple DECODER_w_structure("sphincssha2128fsimple", der, PrivateKeyInfo, sphincssha2128fsimple), diff --git a/oqsprov/oqsencoders.inc b/oqsprov/oqsencoders.inc index 62010dfd..e2e88802 100644 --- a/oqsprov/oqsencoders.inc +++ b/oqsprov/oqsencoders.inc @@ -579,6 +579,126 @@ ENCODER_w_structure("frodo640aes", frodo640aes, der, PrivateKeyInfo), SubjectPublicKeyInfo), ENCODER_TEXT("rsa3072_dilithium2", rsa3072_dilithium2), #endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + ENCODER_w_structure("dilithium2WithSha256", dilithium2WithSha256, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha256", dilithium2WithSha256, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha256", dilithium2WithSha256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha256", dilithium2WithSha256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha256", dilithium2WithSha256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium2WithSha256", dilithium2WithSha256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium2WithSha256", dilithium2WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + ENCODER_w_structure("dilithium2WithSha384", dilithium2WithSha384, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha384", dilithium2WithSha384, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha384", dilithium2WithSha384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha384", dilithium2WithSha384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha384", dilithium2WithSha384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium2WithSha384", dilithium2WithSha384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium2WithSha384", dilithium2WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + ENCODER_w_structure("dilithium2WithSha512", dilithium2WithSha512, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha512", dilithium2WithSha512, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha512", dilithium2WithSha512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha512", dilithium2WithSha512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha512", dilithium2WithSha512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium2WithSha512", dilithium2WithSha512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium2WithSha512", dilithium2WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + ENCODER_w_structure("dilithium2WithSha3At256", dilithium2WithSha3At256, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At256", dilithium2WithSha3At256, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At256", dilithium2WithSha3At256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At256", dilithium2WithSha3At256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At256", dilithium2WithSha3At256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At256", dilithium2WithSha3At256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium2WithSha3At256", dilithium2WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + ENCODER_w_structure("dilithium2WithSha3At384", dilithium2WithSha3At384, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At384", dilithium2WithSha3At384, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At384", dilithium2WithSha3At384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At384", dilithium2WithSha3At384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At384", dilithium2WithSha3At384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At384", dilithium2WithSha3At384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium2WithSha3At384", dilithium2WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + ENCODER_w_structure("dilithium2WithSha3At512", dilithium2WithSha3At512, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At512", dilithium2WithSha3At512, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At512", dilithium2WithSha3At512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At512", dilithium2WithSha3At512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At512", dilithium2WithSha3At512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium2WithSha3At512", dilithium2WithSha3At512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium2WithSha3At512", dilithium2WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + ENCODER_w_structure("dilithium2WithShake128", dilithium2WithShake128, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithShake128", dilithium2WithShake128, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithShake128", dilithium2WithShake128, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithShake128", dilithium2WithShake128, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithShake128", dilithium2WithShake128, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium2WithShake128", dilithium2WithShake128, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium2WithShake128", dilithium2WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + ENCODER_w_structure("dilithium2WithShake256", dilithium2WithShake256, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithShake256", dilithium2WithShake256, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium2WithShake256", dilithium2WithShake256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithShake256", dilithium2WithShake256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium2WithShake256", dilithium2WithShake256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium2WithShake256", dilithium2WithShake256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium2WithShake256", dilithium2WithShake256), +#endif #ifdef OQS_ENABLE_SIG_dilithium_3 ENCODER_w_structure("dilithium3", dilithium3, der, PrivateKeyInfo), ENCODER_w_structure("dilithium3", dilithium3, pem, PrivateKeyInfo), @@ -601,6 +721,126 @@ ENCODER_w_structure("frodo640aes", frodo640aes, der, PrivateKeyInfo), SubjectPublicKeyInfo), ENCODER_TEXT("p384_dilithium3", p384_dilithium3), #endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + ENCODER_w_structure("dilithium3WithSha256", dilithium3WithSha256, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha256", dilithium3WithSha256, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha256", dilithium3WithSha256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha256", dilithium3WithSha256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha256", dilithium3WithSha256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium3WithSha256", dilithium3WithSha256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium3WithSha256", dilithium3WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + ENCODER_w_structure("dilithium3WithSha384", dilithium3WithSha384, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha384", dilithium3WithSha384, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha384", dilithium3WithSha384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha384", dilithium3WithSha384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha384", dilithium3WithSha384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium3WithSha384", dilithium3WithSha384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium3WithSha384", dilithium3WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + ENCODER_w_structure("dilithium3WithSha512", dilithium3WithSha512, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha512", dilithium3WithSha512, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha512", dilithium3WithSha512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha512", dilithium3WithSha512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha512", dilithium3WithSha512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium3WithSha512", dilithium3WithSha512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium3WithSha512", dilithium3WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + ENCODER_w_structure("dilithium3WithSha3At256", dilithium3WithSha3At256, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At256", dilithium3WithSha3At256, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At256", dilithium3WithSha3At256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At256", dilithium3WithSha3At256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At256", dilithium3WithSha3At256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At256", dilithium3WithSha3At256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium3WithSha3At256", dilithium3WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + ENCODER_w_structure("dilithium3WithSha3At384", dilithium3WithSha3At384, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At384", dilithium3WithSha3At384, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At384", dilithium3WithSha3At384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At384", dilithium3WithSha3At384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At384", dilithium3WithSha3At384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At384", dilithium3WithSha3At384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium3WithSha3At384", dilithium3WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + ENCODER_w_structure("dilithium3WithSha3At512", dilithium3WithSha3At512, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At512", dilithium3WithSha3At512, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At512", dilithium3WithSha3At512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At512", dilithium3WithSha3At512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At512", dilithium3WithSha3At512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium3WithSha3At512", dilithium3WithSha3At512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium3WithSha3At512", dilithium3WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + ENCODER_w_structure("dilithium3WithShake128", dilithium3WithShake128, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithShake128", dilithium3WithShake128, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithShake128", dilithium3WithShake128, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithShake128", dilithium3WithShake128, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithShake128", dilithium3WithShake128, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium3WithShake128", dilithium3WithShake128, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium3WithShake128", dilithium3WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + ENCODER_w_structure("dilithium3WithShake256", dilithium3WithShake256, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithShake256", dilithium3WithShake256, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium3WithShake256", dilithium3WithShake256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithShake256", dilithium3WithShake256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium3WithShake256", dilithium3WithShake256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium3WithShake256", dilithium3WithShake256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium3WithShake256", dilithium3WithShake256), +#endif #ifdef OQS_ENABLE_SIG_dilithium_5 ENCODER_w_structure("dilithium5", dilithium5, der, PrivateKeyInfo), ENCODER_w_structure("dilithium5", dilithium5, pem, PrivateKeyInfo), @@ -623,6 +863,126 @@ ENCODER_w_structure("frodo640aes", frodo640aes, der, PrivateKeyInfo), SubjectPublicKeyInfo), ENCODER_TEXT("p521_dilithium5", p521_dilithium5), #endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + ENCODER_w_structure("dilithium5WithSha256", dilithium5WithSha256, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha256", dilithium5WithSha256, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha256", dilithium5WithSha256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha256", dilithium5WithSha256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha256", dilithium5WithSha256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium5WithSha256", dilithium5WithSha256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium5WithSha256", dilithium5WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + ENCODER_w_structure("dilithium5WithSha384", dilithium5WithSha384, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha384", dilithium5WithSha384, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha384", dilithium5WithSha384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha384", dilithium5WithSha384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha384", dilithium5WithSha384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium5WithSha384", dilithium5WithSha384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium5WithSha384", dilithium5WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + ENCODER_w_structure("dilithium5WithSha512", dilithium5WithSha512, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha512", dilithium5WithSha512, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha512", dilithium5WithSha512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha512", dilithium5WithSha512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha512", dilithium5WithSha512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium5WithSha512", dilithium5WithSha512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium5WithSha512", dilithium5WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + ENCODER_w_structure("dilithium5WithSha3At256", dilithium5WithSha3At256, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At256", dilithium5WithSha3At256, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At256", dilithium5WithSha3At256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At256", dilithium5WithSha3At256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At256", dilithium5WithSha3At256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At256", dilithium5WithSha3At256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium5WithSha3At256", dilithium5WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + ENCODER_w_structure("dilithium5WithSha3At384", dilithium5WithSha3At384, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At384", dilithium5WithSha3At384, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At384", dilithium5WithSha3At384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At384", dilithium5WithSha3At384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At384", dilithium5WithSha3At384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At384", dilithium5WithSha3At384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium5WithSha3At384", dilithium5WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + ENCODER_w_structure("dilithium5WithSha3At512", dilithium5WithSha3At512, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At512", dilithium5WithSha3At512, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At512", dilithium5WithSha3At512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At512", dilithium5WithSha3At512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At512", dilithium5WithSha3At512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium5WithSha3At512", dilithium5WithSha3At512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium5WithSha3At512", dilithium5WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + ENCODER_w_structure("dilithium5WithShake128", dilithium5WithShake128, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithShake128", dilithium5WithShake128, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithShake128", dilithium5WithShake128, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithShake128", dilithium5WithShake128, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithShake128", dilithium5WithShake128, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium5WithShake128", dilithium5WithShake128, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium5WithShake128", dilithium5WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + ENCODER_w_structure("dilithium5WithShake256", dilithium5WithShake256, der, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithShake256", dilithium5WithShake256, pem, + PrivateKeyInfo), + ENCODER_w_structure("dilithium5WithShake256", dilithium5WithShake256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithShake256", dilithium5WithShake256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("dilithium5WithShake256", dilithium5WithShake256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("dilithium5WithShake256", dilithium5WithShake256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("dilithium5WithShake256", dilithium5WithShake256), +#endif #ifdef OQS_ENABLE_SIG_falcon_512 ENCODER_w_structure("falcon512", falcon512, der, PrivateKeyInfo), ENCODER_w_structure("falcon512", falcon512, pem, PrivateKeyInfo), @@ -656,6 +1016,126 @@ ENCODER_w_structure("frodo640aes", frodo640aes, der, PrivateKeyInfo), SubjectPublicKeyInfo), ENCODER_TEXT("rsa3072_falcon512", rsa3072_falcon512), #endif +#ifdef OQS_ENABLE_SIG_falcon_512 + ENCODER_w_structure("falcon512WithSha256", falcon512WithSha256, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha256", falcon512WithSha256, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha256", falcon512WithSha256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha256", falcon512WithSha256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha256", falcon512WithSha256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon512WithSha256", falcon512WithSha256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon512WithSha256", falcon512WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + ENCODER_w_structure("falcon512WithSha384", falcon512WithSha384, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha384", falcon512WithSha384, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha384", falcon512WithSha384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha384", falcon512WithSha384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha384", falcon512WithSha384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon512WithSha384", falcon512WithSha384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon512WithSha384", falcon512WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + ENCODER_w_structure("falcon512WithSha512", falcon512WithSha512, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha512", falcon512WithSha512, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha512", falcon512WithSha512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha512", falcon512WithSha512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha512", falcon512WithSha512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon512WithSha512", falcon512WithSha512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon512WithSha512", falcon512WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + ENCODER_w_structure("falcon512WithSha3At256", falcon512WithSha3At256, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At256", falcon512WithSha3At256, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At256", falcon512WithSha3At256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At256", falcon512WithSha3At256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At256", falcon512WithSha3At256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon512WithSha3At256", falcon512WithSha3At256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon512WithSha3At256", falcon512WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + ENCODER_w_structure("falcon512WithSha3At384", falcon512WithSha3At384, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At384", falcon512WithSha3At384, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At384", falcon512WithSha3At384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At384", falcon512WithSha3At384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At384", falcon512WithSha3At384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon512WithSha3At384", falcon512WithSha3At384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon512WithSha3At384", falcon512WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + ENCODER_w_structure("falcon512WithSha3At512", falcon512WithSha3At512, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At512", falcon512WithSha3At512, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At512", falcon512WithSha3At512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At512", falcon512WithSha3At512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithSha3At512", falcon512WithSha3At512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon512WithSha3At512", falcon512WithSha3At512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon512WithSha3At512", falcon512WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + ENCODER_w_structure("falcon512WithShake128", falcon512WithShake128, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithShake128", falcon512WithShake128, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithShake128", falcon512WithShake128, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithShake128", falcon512WithShake128, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithShake128", falcon512WithShake128, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon512WithShake128", falcon512WithShake128, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon512WithShake128", falcon512WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + ENCODER_w_structure("falcon512WithShake256", falcon512WithShake256, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithShake256", falcon512WithShake256, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon512WithShake256", falcon512WithShake256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithShake256", falcon512WithShake256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon512WithShake256", falcon512WithShake256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon512WithShake256", falcon512WithShake256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon512WithShake256", falcon512WithShake256), +#endif #ifdef OQS_ENABLE_SIG_falcon_1024 ENCODER_w_structure("falcon1024", falcon1024, der, PrivateKeyInfo), ENCODER_w_structure("falcon1024", falcon1024, pem, PrivateKeyInfo), @@ -678,6 +1158,126 @@ ENCODER_w_structure("frodo640aes", frodo640aes, der, PrivateKeyInfo), SubjectPublicKeyInfo), ENCODER_TEXT("p521_falcon1024", p521_falcon1024), #endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + ENCODER_w_structure("falcon1024WithSha256", falcon1024WithSha256, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha256", falcon1024WithSha256, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha256", falcon1024WithSha256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha256", falcon1024WithSha256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha256", falcon1024WithSha256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon1024WithSha256", falcon1024WithSha256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon1024WithSha256", falcon1024WithSha256), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + ENCODER_w_structure("falcon1024WithSha384", falcon1024WithSha384, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha384", falcon1024WithSha384, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha384", falcon1024WithSha384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha384", falcon1024WithSha384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha384", falcon1024WithSha384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon1024WithSha384", falcon1024WithSha384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon1024WithSha384", falcon1024WithSha384), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + ENCODER_w_structure("falcon1024WithSha512", falcon1024WithSha512, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha512", falcon1024WithSha512, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha512", falcon1024WithSha512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha512", falcon1024WithSha512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha512", falcon1024WithSha512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon1024WithSha512", falcon1024WithSha512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon1024WithSha512", falcon1024WithSha512), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + ENCODER_w_structure("falcon1024WithSha3At256", falcon1024WithSha3At256, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At256", falcon1024WithSha3At256, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At256", falcon1024WithSha3At256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At256", falcon1024WithSha3At256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At256", falcon1024WithSha3At256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At256", falcon1024WithSha3At256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon1024WithSha3At256", falcon1024WithSha3At256), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + ENCODER_w_structure("falcon1024WithSha3At384", falcon1024WithSha3At384, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At384", falcon1024WithSha3At384, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At384", falcon1024WithSha3At384, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At384", falcon1024WithSha3At384, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At384", falcon1024WithSha3At384, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At384", falcon1024WithSha3At384, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon1024WithSha3At384", falcon1024WithSha3At384), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + ENCODER_w_structure("falcon1024WithSha3At512", falcon1024WithSha3At512, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At512", falcon1024WithSha3At512, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At512", falcon1024WithSha3At512, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At512", falcon1024WithSha3At512, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At512", falcon1024WithSha3At512, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon1024WithSha3At512", falcon1024WithSha3At512, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon1024WithSha3At512", falcon1024WithSha3At512), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + ENCODER_w_structure("falcon1024WithShake128", falcon1024WithShake128, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithShake128", falcon1024WithShake128, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithShake128", falcon1024WithShake128, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithShake128", falcon1024WithShake128, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithShake128", falcon1024WithShake128, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon1024WithShake128", falcon1024WithShake128, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon1024WithShake128", falcon1024WithShake128), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + ENCODER_w_structure("falcon1024WithShake256", falcon1024WithShake256, der, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithShake256", falcon1024WithShake256, pem, + PrivateKeyInfo), + ENCODER_w_structure("falcon1024WithShake256", falcon1024WithShake256, der, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithShake256", falcon1024WithShake256, pem, + EncryptedPrivateKeyInfo), + ENCODER_w_structure("falcon1024WithShake256", falcon1024WithShake256, der, + SubjectPublicKeyInfo), + ENCODER_w_structure("falcon1024WithShake256", falcon1024WithShake256, pem, + SubjectPublicKeyInfo), + ENCODER_TEXT("falcon1024WithShake256", falcon1024WithShake256), +#endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_128f_simple ENCODER_w_structure("sphincssha2128fsimple", sphincssha2128fsimple, der, PrivateKeyInfo), diff --git a/oqsprov/oqsprov.c b/oqsprov/oqsprov.c index dba438c0..c7ed936b 100644 --- a/oqsprov/oqsprov.c +++ b/oqsprov/oqsprov.c @@ -49,9 +49,9 @@ extern OSSL_FUNC_provider_get_capabilities_fn oqs_provider_get_capabilities; ///// OQS_TEMPLATE_FRAGMENT_ASSIGN_SIG_OIDS_START #ifdef OQS_KEM_ENCODERS -# define OQS_OID_CNT 130 +# define OQS_OID_CNT 210 #else -# define OQS_OID_CNT 46 +# define OQS_OID_CNT 126 #endif const char *oqs_oid_alg_list[OQS_OID_CNT] = { @@ -150,24 +150,104 @@ const char *oqs_oid_alg_list[OQS_OID_CNT] = { "p256_dilithium2", "1.3.9999.2.7.2", "rsa3072_dilithium2", + "1.3.6.1.4.1.18227.999.1.1.1", + "dilithium2WithSha256", + "1.3.6.1.4.1.18227.999.1.1.2", + "dilithium2WithSha384", + "1.3.6.1.4.1.18227.999.1.1.3", + "dilithium2WithSha512", + "1.3.6.1.4.1.18227.999.1.1.4", + "dilithium2WithSha3At256", + "1.3.6.1.4.1.18227.999.1.1.5", + "dilithium2WithSha3At384", + "1.3.6.1.4.1.18227.999.1.1.6", + "dilithium2WithSha3At512", + "1.3.6.1.4.1.18227.999.1.1.7", + "dilithium2WithShake128", + "1.3.6.1.4.1.18227.999.1.1.8", + "dilithium2WithShake256", "1.3.6.1.4.1.2.267.7.6.5", "dilithium3", "1.3.9999.2.7.3", "p384_dilithium3", + "1.3.6.1.4.1.18227.999.1.2.1", + "dilithium3WithSha256", + "1.3.6.1.4.1.18227.999.1.2.2", + "dilithium3WithSha384", + "1.3.6.1.4.1.18227.999.1.2.3", + "dilithium3WithSha512", + "1.3.6.1.4.1.18227.999.1.2.4", + "dilithium3WithSha3At256", + "1.3.6.1.4.1.18227.999.1.2.5", + "dilithium3WithSha3At384", + "1.3.6.1.4.1.18227.999.1.2.6", + "dilithium3WithSha3At512", + "1.3.6.1.4.1.18227.999.1.2.7", + "dilithium3WithShake128", + "1.3.6.1.4.1.18227.999.1.2.8", + "dilithium3WithShake256", "1.3.6.1.4.1.2.267.7.8.7", "dilithium5", "1.3.9999.2.7.4", "p521_dilithium5", + "1.3.6.1.4.1.18227.999.1.3.1", + "dilithium5WithSha256", + "1.3.6.1.4.1.18227.999.1.3.2", + "dilithium5WithSha384", + "1.3.6.1.4.1.18227.999.1.3.3", + "dilithium5WithSha512", + "1.3.6.1.4.1.18227.999.1.3.4", + "dilithium5WithSha3At256", + "1.3.6.1.4.1.18227.999.1.3.5", + "dilithium5WithSha3At384", + "1.3.6.1.4.1.18227.999.1.3.6", + "dilithium5WithSha3At512", + "1.3.6.1.4.1.18227.999.1.3.7", + "dilithium5WithShake128", + "1.3.6.1.4.1.18227.999.1.3.8", + "dilithium5WithShake256", "1.3.9999.3.6", "falcon512", "1.3.9999.3.7", "p256_falcon512", "1.3.9999.3.8", "rsa3072_falcon512", + "1.3.6.1.4.1.18227.999.2.3.1.1", + "falcon512WithSha256", + "1.3.6.1.4.1.18227.999.2.3.2.1", + "falcon512WithSha384", + "1.3.6.1.4.1.18227.999.2.3.3.1", + "falcon512WithSha512", + "1.3.6.1.4.1.18227.999.2.3.4.1", + "falcon512WithSha3At256", + "1.3.6.1.4.1.18227.999.2.3.5.1", + "falcon512WithSha3At384", + "1.3.6.1.4.1.18227.999.2.3.6.1", + "falcon512WithSha3At512", + "1.3.6.1.4.1.18227.999.2.3.7.1", + "falcon512WithShake128", + "1.3.6.1.4.1.18227.999.2.3.8.1", + "falcon512WithShake256", "1.3.9999.3.9", "falcon1024", "1.3.9999.3.10", "p521_falcon1024", + "1.3.6.1.4.1.18227.999.2.2.1.1", + "falcon1024WithSha256", + "1.3.6.1.4.1.18227.999.2.2.2.1", + "falcon1024WithSha384", + "1.3.6.1.4.1.18227.999.2.2.3.1", + "falcon1024WithSha512", + "1.3.6.1.4.1.18227.999.2.2.4.1", + "falcon1024WithSha3At256", + "1.3.6.1.4.1.18227.999.2.2.5.1", + "falcon1024WithSha3At384", + "1.3.6.1.4.1.18227.999.2.2.6.1", + "falcon1024WithSha3At512", + "1.3.6.1.4.1.18227.999.2.2.7.1", + "falcon1024WithShake128", + "1.3.6.1.4.1.18227.999.2.2.8.1", + "falcon1024WithShake256", "1.3.9999.6.4.13", "sphincssha2128fsimple", "1.3.9999.6.4.14", @@ -311,61 +391,181 @@ int oqs_patch_oids(void) if (getenv("OQS_OID_RSA3072_DILITHIUM2")) oqs_oid_alg_list[4 + OQS_KEMOID_CNT] = getenv("OQS_OID_RSA3072_DILITHIUM2"); + if (getenv("OQS_OID_DILITHIUM2WITHSHA256")) + oqs_oid_alg_list[6 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM2WITHSHA256"); + if (getenv("OQS_OID_DILITHIUM2WITHSHA384")) + oqs_oid_alg_list[8 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM2WITHSHA384"); + if (getenv("OQS_OID_DILITHIUM2WITHSHA512")) + oqs_oid_alg_list[10 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM2WITHSHA512"); + if (getenv("OQS_OID_DILITHIUM2WITHSHA3AT256")) + oqs_oid_alg_list[12 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM2WITHSHA3AT256"); + if (getenv("OQS_OID_DILITHIUM2WITHSHA3AT384")) + oqs_oid_alg_list[14 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM2WITHSHA3AT384"); + if (getenv("OQS_OID_DILITHIUM2WITHSHA3AT512")) + oqs_oid_alg_list[16 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM2WITHSHA3AT512"); + if (getenv("OQS_OID_DILITHIUM2WITHSHAKE128")) + oqs_oid_alg_list[18 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM2WITHSHAKE128"); + if (getenv("OQS_OID_DILITHIUM2WITHSHAKE256")) + oqs_oid_alg_list[20 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM2WITHSHAKE256"); if (getenv("OQS_OID_DILITHIUM3")) - oqs_oid_alg_list[6 + OQS_KEMOID_CNT] = getenv("OQS_OID_DILITHIUM3"); + oqs_oid_alg_list[22 + OQS_KEMOID_CNT] = getenv("OQS_OID_DILITHIUM3"); if (getenv("OQS_OID_P384_DILITHIUM3")) - oqs_oid_alg_list[8 + OQS_KEMOID_CNT] + oqs_oid_alg_list[24 + OQS_KEMOID_CNT] = getenv("OQS_OID_P384_DILITHIUM3"); + if (getenv("OQS_OID_DILITHIUM3WITHSHA256")) + oqs_oid_alg_list[26 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM3WITHSHA256"); + if (getenv("OQS_OID_DILITHIUM3WITHSHA384")) + oqs_oid_alg_list[28 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM3WITHSHA384"); + if (getenv("OQS_OID_DILITHIUM3WITHSHA512")) + oqs_oid_alg_list[30 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM3WITHSHA512"); + if (getenv("OQS_OID_DILITHIUM3WITHSHA3AT256")) + oqs_oid_alg_list[32 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM3WITHSHA3AT256"); + if (getenv("OQS_OID_DILITHIUM3WITHSHA3AT384")) + oqs_oid_alg_list[34 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM3WITHSHA3AT384"); + if (getenv("OQS_OID_DILITHIUM3WITHSHA3AT512")) + oqs_oid_alg_list[36 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM3WITHSHA3AT512"); + if (getenv("OQS_OID_DILITHIUM3WITHSHAKE128")) + oqs_oid_alg_list[38 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM3WITHSHAKE128"); + if (getenv("OQS_OID_DILITHIUM3WITHSHAKE256")) + oqs_oid_alg_list[40 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM3WITHSHAKE256"); if (getenv("OQS_OID_DILITHIUM5")) - oqs_oid_alg_list[10 + OQS_KEMOID_CNT] = getenv("OQS_OID_DILITHIUM5"); + oqs_oid_alg_list[42 + OQS_KEMOID_CNT] = getenv("OQS_OID_DILITHIUM5"); if (getenv("OQS_OID_P521_DILITHIUM5")) - oqs_oid_alg_list[12 + OQS_KEMOID_CNT] + oqs_oid_alg_list[44 + OQS_KEMOID_CNT] = getenv("OQS_OID_P521_DILITHIUM5"); + if (getenv("OQS_OID_DILITHIUM5WITHSHA256")) + oqs_oid_alg_list[46 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM5WITHSHA256"); + if (getenv("OQS_OID_DILITHIUM5WITHSHA384")) + oqs_oid_alg_list[48 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM5WITHSHA384"); + if (getenv("OQS_OID_DILITHIUM5WITHSHA512")) + oqs_oid_alg_list[50 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM5WITHSHA512"); + if (getenv("OQS_OID_DILITHIUM5WITHSHA3AT256")) + oqs_oid_alg_list[52 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM5WITHSHA3AT256"); + if (getenv("OQS_OID_DILITHIUM5WITHSHA3AT384")) + oqs_oid_alg_list[54 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM5WITHSHA3AT384"); + if (getenv("OQS_OID_DILITHIUM5WITHSHA3AT512")) + oqs_oid_alg_list[56 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM5WITHSHA3AT512"); + if (getenv("OQS_OID_DILITHIUM5WITHSHAKE128")) + oqs_oid_alg_list[58 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM5WITHSHAKE128"); + if (getenv("OQS_OID_DILITHIUM5WITHSHAKE256")) + oqs_oid_alg_list[60 + OQS_KEMOID_CNT] + = getenv("OQS_OID_DILITHIUM5WITHSHAKE256"); if (getenv("OQS_OID_FALCON512")) - oqs_oid_alg_list[14 + OQS_KEMOID_CNT] = getenv("OQS_OID_FALCON512"); + oqs_oid_alg_list[62 + OQS_KEMOID_CNT] = getenv("OQS_OID_FALCON512"); if (getenv("OQS_OID_P256_FALCON512")) - oqs_oid_alg_list[16 + OQS_KEMOID_CNT] + oqs_oid_alg_list[64 + OQS_KEMOID_CNT] = getenv("OQS_OID_P256_FALCON512"); if (getenv("OQS_OID_RSA3072_FALCON512")) - oqs_oid_alg_list[18 + OQS_KEMOID_CNT] + oqs_oid_alg_list[66 + OQS_KEMOID_CNT] = getenv("OQS_OID_RSA3072_FALCON512"); + if (getenv("OQS_OID_FALCON512WITHSHA256")) + oqs_oid_alg_list[68 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON512WITHSHA256"); + if (getenv("OQS_OID_FALCON512WITHSHA384")) + oqs_oid_alg_list[70 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON512WITHSHA384"); + if (getenv("OQS_OID_FALCON512WITHSHA512")) + oqs_oid_alg_list[72 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON512WITHSHA512"); + if (getenv("OQS_OID_FALCON512WITHSHA3AT256")) + oqs_oid_alg_list[74 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON512WITHSHA3AT256"); + if (getenv("OQS_OID_FALCON512WITHSHA3AT384")) + oqs_oid_alg_list[76 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON512WITHSHA3AT384"); + if (getenv("OQS_OID_FALCON512WITHSHA3AT512")) + oqs_oid_alg_list[78 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON512WITHSHA3AT512"); + if (getenv("OQS_OID_FALCON512WITHSHAKE128")) + oqs_oid_alg_list[80 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON512WITHSHAKE128"); + if (getenv("OQS_OID_FALCON512WITHSHAKE256")) + oqs_oid_alg_list[82 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON512WITHSHAKE256"); if (getenv("OQS_OID_FALCON1024")) - oqs_oid_alg_list[20 + OQS_KEMOID_CNT] = getenv("OQS_OID_FALCON1024"); + oqs_oid_alg_list[84 + OQS_KEMOID_CNT] = getenv("OQS_OID_FALCON1024"); if (getenv("OQS_OID_P521_FALCON1024")) - oqs_oid_alg_list[22 + OQS_KEMOID_CNT] + oqs_oid_alg_list[86 + OQS_KEMOID_CNT] = getenv("OQS_OID_P521_FALCON1024"); + if (getenv("OQS_OID_FALCON1024WITHSHA256")) + oqs_oid_alg_list[88 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON1024WITHSHA256"); + if (getenv("OQS_OID_FALCON1024WITHSHA384")) + oqs_oid_alg_list[90 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON1024WITHSHA384"); + if (getenv("OQS_OID_FALCON1024WITHSHA512")) + oqs_oid_alg_list[92 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON1024WITHSHA512"); + if (getenv("OQS_OID_FALCON1024WITHSHA3AT256")) + oqs_oid_alg_list[94 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON1024WITHSHA3AT256"); + if (getenv("OQS_OID_FALCON1024WITHSHA3AT384")) + oqs_oid_alg_list[96 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON1024WITHSHA3AT384"); + if (getenv("OQS_OID_FALCON1024WITHSHA3AT512")) + oqs_oid_alg_list[98 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON1024WITHSHA3AT512"); + if (getenv("OQS_OID_FALCON1024WITHSHAKE128")) + oqs_oid_alg_list[100 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON1024WITHSHAKE128"); + if (getenv("OQS_OID_FALCON1024WITHSHAKE256")) + oqs_oid_alg_list[102 + OQS_KEMOID_CNT] + = getenv("OQS_OID_FALCON1024WITHSHAKE256"); if (getenv("OQS_OID_SPHINCSSHA2128FSIMPLE")) - oqs_oid_alg_list[24 + OQS_KEMOID_CNT] + oqs_oid_alg_list[104 + OQS_KEMOID_CNT] = getenv("OQS_OID_SPHINCSSHA2128FSIMPLE"); if (getenv("OQS_OID_P256_SPHINCSSHA2128FSIMPLE")) - oqs_oid_alg_list[26 + OQS_KEMOID_CNT] + oqs_oid_alg_list[106 + OQS_KEMOID_CNT] = getenv("OQS_OID_P256_SPHINCSSHA2128FSIMPLE"); if (getenv("OQS_OID_RSA3072_SPHINCSSHA2128FSIMPLE")) - oqs_oid_alg_list[28 + OQS_KEMOID_CNT] + oqs_oid_alg_list[108 + OQS_KEMOID_CNT] = getenv("OQS_OID_RSA3072_SPHINCSSHA2128FSIMPLE"); if (getenv("OQS_OID_SPHINCSSHA2128SSIMPLE")) - oqs_oid_alg_list[30 + OQS_KEMOID_CNT] + oqs_oid_alg_list[110 + OQS_KEMOID_CNT] = getenv("OQS_OID_SPHINCSSHA2128SSIMPLE"); if (getenv("OQS_OID_P256_SPHINCSSHA2128SSIMPLE")) - oqs_oid_alg_list[32 + OQS_KEMOID_CNT] + oqs_oid_alg_list[112 + OQS_KEMOID_CNT] = getenv("OQS_OID_P256_SPHINCSSHA2128SSIMPLE"); if (getenv("OQS_OID_RSA3072_SPHINCSSHA2128SSIMPLE")) - oqs_oid_alg_list[34 + OQS_KEMOID_CNT] + oqs_oid_alg_list[114 + OQS_KEMOID_CNT] = getenv("OQS_OID_RSA3072_SPHINCSSHA2128SSIMPLE"); if (getenv("OQS_OID_SPHINCSSHA2192FSIMPLE")) - oqs_oid_alg_list[36 + OQS_KEMOID_CNT] + oqs_oid_alg_list[116 + OQS_KEMOID_CNT] = getenv("OQS_OID_SPHINCSSHA2192FSIMPLE"); if (getenv("OQS_OID_P384_SPHINCSSHA2192FSIMPLE")) - oqs_oid_alg_list[38 + OQS_KEMOID_CNT] + oqs_oid_alg_list[118 + OQS_KEMOID_CNT] = getenv("OQS_OID_P384_SPHINCSSHA2192FSIMPLE"); if (getenv("OQS_OID_SPHINCSSHAKE128FSIMPLE")) - oqs_oid_alg_list[40 + OQS_KEMOID_CNT] + oqs_oid_alg_list[120 + OQS_KEMOID_CNT] = getenv("OQS_OID_SPHINCSSHAKE128FSIMPLE"); if (getenv("OQS_OID_P256_SPHINCSSHAKE128FSIMPLE")) - oqs_oid_alg_list[42 + OQS_KEMOID_CNT] + oqs_oid_alg_list[122 + OQS_KEMOID_CNT] = getenv("OQS_OID_P256_SPHINCSSHAKE128FSIMPLE"); if (getenv("OQS_OID_RSA3072_SPHINCSSHAKE128FSIMPLE")) - oqs_oid_alg_list[44 + OQS_KEMOID_CNT] + oqs_oid_alg_list[124 + OQS_KEMOID_CNT] = getenv("OQS_OID_RSA3072_SPHINCSSHAKE128FSIMPLE"); ///// OQS_TEMPLATE_FRAGMENT_OID_PATCHING_END return 1; @@ -391,112 +591,337 @@ int oqs_patch_encodings(void) if (getenv("OQS_ENCODING_RSA3072_DILITHIUM2_ALGNAME")) oqs_alg_encoding_list[5] = getenv("OQS_ENCODING_RSA3072_DILITHIUM2_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA256")) + oqs_alg_encoding_list[6] = getenv("OQS_ENCODING_DILITHIUM2WITHSHA256"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA256_ALGNAME")) + oqs_alg_encoding_list[7] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHA256_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA384")) + oqs_alg_encoding_list[8] = getenv("OQS_ENCODING_DILITHIUM2WITHSHA384"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA384_ALGNAME")) + oqs_alg_encoding_list[9] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHA384_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA512")) + oqs_alg_encoding_list[10] = getenv("OQS_ENCODING_DILITHIUM2WITHSHA512"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA512_ALGNAME")) + oqs_alg_encoding_list[11] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHA512_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT256")) + oqs_alg_encoding_list[12] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT256"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT256_ALGNAME")) + oqs_alg_encoding_list[13] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT256_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT384")) + oqs_alg_encoding_list[14] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT384"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT384_ALGNAME")) + oqs_alg_encoding_list[15] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT384_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT512")) + oqs_alg_encoding_list[16] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT512"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT512_ALGNAME")) + oqs_alg_encoding_list[17] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHA3AT512_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHAKE128")) + oqs_alg_encoding_list[18] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHAKE128"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHAKE128_ALGNAME")) + oqs_alg_encoding_list[19] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHAKE128_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHAKE256")) + oqs_alg_encoding_list[20] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHAKE256"); + if (getenv("OQS_ENCODING_DILITHIUM2WITHSHAKE256_ALGNAME")) + oqs_alg_encoding_list[21] + = getenv("OQS_ENCODING_DILITHIUM2WITHSHAKE256_ALGNAME"); if (getenv("OQS_ENCODING_DILITHIUM3")) - oqs_alg_encoding_list[6] = getenv("OQS_ENCODING_DILITHIUM3"); + oqs_alg_encoding_list[22] = getenv("OQS_ENCODING_DILITHIUM3"); if (getenv("OQS_ENCODING_DILITHIUM3_ALGNAME")) - oqs_alg_encoding_list[7] = getenv("OQS_ENCODING_DILITHIUM3_ALGNAME"); + oqs_alg_encoding_list[23] = getenv("OQS_ENCODING_DILITHIUM3_ALGNAME"); if (getenv("OQS_ENCODING_P384_DILITHIUM3")) - oqs_alg_encoding_list[8] = getenv("OQS_ENCODING_P384_DILITHIUM3"); + oqs_alg_encoding_list[24] = getenv("OQS_ENCODING_P384_DILITHIUM3"); if (getenv("OQS_ENCODING_P384_DILITHIUM3_ALGNAME")) - oqs_alg_encoding_list[9] + oqs_alg_encoding_list[25] = getenv("OQS_ENCODING_P384_DILITHIUM3_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA256")) + oqs_alg_encoding_list[26] = getenv("OQS_ENCODING_DILITHIUM3WITHSHA256"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA256_ALGNAME")) + oqs_alg_encoding_list[27] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHA256_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA384")) + oqs_alg_encoding_list[28] = getenv("OQS_ENCODING_DILITHIUM3WITHSHA384"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA384_ALGNAME")) + oqs_alg_encoding_list[29] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHA384_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA512")) + oqs_alg_encoding_list[30] = getenv("OQS_ENCODING_DILITHIUM3WITHSHA512"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA512_ALGNAME")) + oqs_alg_encoding_list[31] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHA512_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT256")) + oqs_alg_encoding_list[32] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT256"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT256_ALGNAME")) + oqs_alg_encoding_list[33] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT256_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT384")) + oqs_alg_encoding_list[34] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT384"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT384_ALGNAME")) + oqs_alg_encoding_list[35] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT384_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT512")) + oqs_alg_encoding_list[36] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT512"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT512_ALGNAME")) + oqs_alg_encoding_list[37] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHA3AT512_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHAKE128")) + oqs_alg_encoding_list[38] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHAKE128"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHAKE128_ALGNAME")) + oqs_alg_encoding_list[39] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHAKE128_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHAKE256")) + oqs_alg_encoding_list[40] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHAKE256"); + if (getenv("OQS_ENCODING_DILITHIUM3WITHSHAKE256_ALGNAME")) + oqs_alg_encoding_list[41] + = getenv("OQS_ENCODING_DILITHIUM3WITHSHAKE256_ALGNAME"); if (getenv("OQS_ENCODING_DILITHIUM5")) - oqs_alg_encoding_list[10] = getenv("OQS_ENCODING_DILITHIUM5"); + oqs_alg_encoding_list[42] = getenv("OQS_ENCODING_DILITHIUM5"); if (getenv("OQS_ENCODING_DILITHIUM5_ALGNAME")) - oqs_alg_encoding_list[11] = getenv("OQS_ENCODING_DILITHIUM5_ALGNAME"); + oqs_alg_encoding_list[43] = getenv("OQS_ENCODING_DILITHIUM5_ALGNAME"); if (getenv("OQS_ENCODING_P521_DILITHIUM5")) - oqs_alg_encoding_list[12] = getenv("OQS_ENCODING_P521_DILITHIUM5"); + oqs_alg_encoding_list[44] = getenv("OQS_ENCODING_P521_DILITHIUM5"); if (getenv("OQS_ENCODING_P521_DILITHIUM5_ALGNAME")) - oqs_alg_encoding_list[13] + oqs_alg_encoding_list[45] = getenv("OQS_ENCODING_P521_DILITHIUM5_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA256")) + oqs_alg_encoding_list[46] = getenv("OQS_ENCODING_DILITHIUM5WITHSHA256"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA256_ALGNAME")) + oqs_alg_encoding_list[47] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHA256_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA384")) + oqs_alg_encoding_list[48] = getenv("OQS_ENCODING_DILITHIUM5WITHSHA384"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA384_ALGNAME")) + oqs_alg_encoding_list[49] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHA384_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA512")) + oqs_alg_encoding_list[50] = getenv("OQS_ENCODING_DILITHIUM5WITHSHA512"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA512_ALGNAME")) + oqs_alg_encoding_list[51] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHA512_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT256")) + oqs_alg_encoding_list[52] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT256"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT256_ALGNAME")) + oqs_alg_encoding_list[53] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT256_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT384")) + oqs_alg_encoding_list[54] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT384"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT384_ALGNAME")) + oqs_alg_encoding_list[55] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT384_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT512")) + oqs_alg_encoding_list[56] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT512"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT512_ALGNAME")) + oqs_alg_encoding_list[57] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHA3AT512_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHAKE128")) + oqs_alg_encoding_list[58] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHAKE128"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHAKE128_ALGNAME")) + oqs_alg_encoding_list[59] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHAKE128_ALGNAME"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHAKE256")) + oqs_alg_encoding_list[60] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHAKE256"); + if (getenv("OQS_ENCODING_DILITHIUM5WITHSHAKE256_ALGNAME")) + oqs_alg_encoding_list[61] + = getenv("OQS_ENCODING_DILITHIUM5WITHSHAKE256_ALGNAME"); if (getenv("OQS_ENCODING_FALCON512")) - oqs_alg_encoding_list[14] = getenv("OQS_ENCODING_FALCON512"); + oqs_alg_encoding_list[62] = getenv("OQS_ENCODING_FALCON512"); if (getenv("OQS_ENCODING_FALCON512_ALGNAME")) - oqs_alg_encoding_list[15] = getenv("OQS_ENCODING_FALCON512_ALGNAME"); + oqs_alg_encoding_list[63] = getenv("OQS_ENCODING_FALCON512_ALGNAME"); if (getenv("OQS_ENCODING_P256_FALCON512")) - oqs_alg_encoding_list[16] = getenv("OQS_ENCODING_P256_FALCON512"); + oqs_alg_encoding_list[64] = getenv("OQS_ENCODING_P256_FALCON512"); if (getenv("OQS_ENCODING_P256_FALCON512_ALGNAME")) - oqs_alg_encoding_list[17] + oqs_alg_encoding_list[65] = getenv("OQS_ENCODING_P256_FALCON512_ALGNAME"); if (getenv("OQS_ENCODING_RSA3072_FALCON512")) - oqs_alg_encoding_list[18] = getenv("OQS_ENCODING_RSA3072_FALCON512"); + oqs_alg_encoding_list[66] = getenv("OQS_ENCODING_RSA3072_FALCON512"); if (getenv("OQS_ENCODING_RSA3072_FALCON512_ALGNAME")) - oqs_alg_encoding_list[19] + oqs_alg_encoding_list[67] = getenv("OQS_ENCODING_RSA3072_FALCON512_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA256")) + oqs_alg_encoding_list[68] = getenv("OQS_ENCODING_FALCON512WITHSHA256"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA256_ALGNAME")) + oqs_alg_encoding_list[69] + = getenv("OQS_ENCODING_FALCON512WITHSHA256_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA384")) + oqs_alg_encoding_list[70] = getenv("OQS_ENCODING_FALCON512WITHSHA384"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA384_ALGNAME")) + oqs_alg_encoding_list[71] + = getenv("OQS_ENCODING_FALCON512WITHSHA384_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA512")) + oqs_alg_encoding_list[72] = getenv("OQS_ENCODING_FALCON512WITHSHA512"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA512_ALGNAME")) + oqs_alg_encoding_list[73] + = getenv("OQS_ENCODING_FALCON512WITHSHA512_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA3AT256")) + oqs_alg_encoding_list[74] + = getenv("OQS_ENCODING_FALCON512WITHSHA3AT256"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA3AT256_ALGNAME")) + oqs_alg_encoding_list[75] + = getenv("OQS_ENCODING_FALCON512WITHSHA3AT256_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA3AT384")) + oqs_alg_encoding_list[76] + = getenv("OQS_ENCODING_FALCON512WITHSHA3AT384"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA3AT384_ALGNAME")) + oqs_alg_encoding_list[77] + = getenv("OQS_ENCODING_FALCON512WITHSHA3AT384_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA3AT512")) + oqs_alg_encoding_list[78] + = getenv("OQS_ENCODING_FALCON512WITHSHA3AT512"); + if (getenv("OQS_ENCODING_FALCON512WITHSHA3AT512_ALGNAME")) + oqs_alg_encoding_list[79] + = getenv("OQS_ENCODING_FALCON512WITHSHA3AT512_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON512WITHSHAKE128")) + oqs_alg_encoding_list[80] + = getenv("OQS_ENCODING_FALCON512WITHSHAKE128"); + if (getenv("OQS_ENCODING_FALCON512WITHSHAKE128_ALGNAME")) + oqs_alg_encoding_list[81] + = getenv("OQS_ENCODING_FALCON512WITHSHAKE128_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON512WITHSHAKE256")) + oqs_alg_encoding_list[82] + = getenv("OQS_ENCODING_FALCON512WITHSHAKE256"); + if (getenv("OQS_ENCODING_FALCON512WITHSHAKE256_ALGNAME")) + oqs_alg_encoding_list[83] + = getenv("OQS_ENCODING_FALCON512WITHSHAKE256_ALGNAME"); if (getenv("OQS_ENCODING_FALCON1024")) - oqs_alg_encoding_list[20] = getenv("OQS_ENCODING_FALCON1024"); + oqs_alg_encoding_list[84] = getenv("OQS_ENCODING_FALCON1024"); if (getenv("OQS_ENCODING_FALCON1024_ALGNAME")) - oqs_alg_encoding_list[21] = getenv("OQS_ENCODING_FALCON1024_ALGNAME"); + oqs_alg_encoding_list[85] = getenv("OQS_ENCODING_FALCON1024_ALGNAME"); if (getenv("OQS_ENCODING_P521_FALCON1024")) - oqs_alg_encoding_list[22] = getenv("OQS_ENCODING_P521_FALCON1024"); + oqs_alg_encoding_list[86] = getenv("OQS_ENCODING_P521_FALCON1024"); if (getenv("OQS_ENCODING_P521_FALCON1024_ALGNAME")) - oqs_alg_encoding_list[23] + oqs_alg_encoding_list[87] = getenv("OQS_ENCODING_P521_FALCON1024_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA256")) + oqs_alg_encoding_list[88] = getenv("OQS_ENCODING_FALCON1024WITHSHA256"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA256_ALGNAME")) + oqs_alg_encoding_list[89] + = getenv("OQS_ENCODING_FALCON1024WITHSHA256_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA384")) + oqs_alg_encoding_list[90] = getenv("OQS_ENCODING_FALCON1024WITHSHA384"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA384_ALGNAME")) + oqs_alg_encoding_list[91] + = getenv("OQS_ENCODING_FALCON1024WITHSHA384_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA512")) + oqs_alg_encoding_list[92] = getenv("OQS_ENCODING_FALCON1024WITHSHA512"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA512_ALGNAME")) + oqs_alg_encoding_list[93] + = getenv("OQS_ENCODING_FALCON1024WITHSHA512_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA3AT256")) + oqs_alg_encoding_list[94] + = getenv("OQS_ENCODING_FALCON1024WITHSHA3AT256"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA3AT256_ALGNAME")) + oqs_alg_encoding_list[95] + = getenv("OQS_ENCODING_FALCON1024WITHSHA3AT256_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA3AT384")) + oqs_alg_encoding_list[96] + = getenv("OQS_ENCODING_FALCON1024WITHSHA3AT384"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA3AT384_ALGNAME")) + oqs_alg_encoding_list[97] + = getenv("OQS_ENCODING_FALCON1024WITHSHA3AT384_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA3AT512")) + oqs_alg_encoding_list[98] + = getenv("OQS_ENCODING_FALCON1024WITHSHA3AT512"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHA3AT512_ALGNAME")) + oqs_alg_encoding_list[99] + = getenv("OQS_ENCODING_FALCON1024WITHSHA3AT512_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHAKE128")) + oqs_alg_encoding_list[100] + = getenv("OQS_ENCODING_FALCON1024WITHSHAKE128"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHAKE128_ALGNAME")) + oqs_alg_encoding_list[101] + = getenv("OQS_ENCODING_FALCON1024WITHSHAKE128_ALGNAME"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHAKE256")) + oqs_alg_encoding_list[102] + = getenv("OQS_ENCODING_FALCON1024WITHSHAKE256"); + if (getenv("OQS_ENCODING_FALCON1024WITHSHAKE256_ALGNAME")) + oqs_alg_encoding_list[103] + = getenv("OQS_ENCODING_FALCON1024WITHSHAKE256_ALGNAME"); if (getenv("OQS_ENCODING_SPHINCSSHA2128FSIMPLE")) - oqs_alg_encoding_list[24] + oqs_alg_encoding_list[104] = getenv("OQS_ENCODING_SPHINCSSHA2128FSIMPLE"); if (getenv("OQS_ENCODING_SPHINCSSHA2128FSIMPLE_ALGNAME")) - oqs_alg_encoding_list[25] + oqs_alg_encoding_list[105] = getenv("OQS_ENCODING_SPHINCSSHA2128FSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_P256_SPHINCSSHA2128FSIMPLE")) - oqs_alg_encoding_list[26] + oqs_alg_encoding_list[106] = getenv("OQS_ENCODING_P256_SPHINCSSHA2128FSIMPLE"); if (getenv("OQS_ENCODING_P256_SPHINCSSHA2128FSIMPLE_ALGNAME")) - oqs_alg_encoding_list[27] + oqs_alg_encoding_list[107] = getenv("OQS_ENCODING_P256_SPHINCSSHA2128FSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_RSA3072_SPHINCSSHA2128FSIMPLE")) - oqs_alg_encoding_list[28] + oqs_alg_encoding_list[108] = getenv("OQS_ENCODING_RSA3072_SPHINCSSHA2128FSIMPLE"); if (getenv("OQS_ENCODING_RSA3072_SPHINCSSHA2128FSIMPLE_ALGNAME")) - oqs_alg_encoding_list[29] + oqs_alg_encoding_list[109] = getenv("OQS_ENCODING_RSA3072_SPHINCSSHA2128FSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_SPHINCSSHA2128SSIMPLE")) - oqs_alg_encoding_list[30] + oqs_alg_encoding_list[110] = getenv("OQS_ENCODING_SPHINCSSHA2128SSIMPLE"); if (getenv("OQS_ENCODING_SPHINCSSHA2128SSIMPLE_ALGNAME")) - oqs_alg_encoding_list[31] + oqs_alg_encoding_list[111] = getenv("OQS_ENCODING_SPHINCSSHA2128SSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_P256_SPHINCSSHA2128SSIMPLE")) - oqs_alg_encoding_list[32] + oqs_alg_encoding_list[112] = getenv("OQS_ENCODING_P256_SPHINCSSHA2128SSIMPLE"); if (getenv("OQS_ENCODING_P256_SPHINCSSHA2128SSIMPLE_ALGNAME")) - oqs_alg_encoding_list[33] + oqs_alg_encoding_list[113] = getenv("OQS_ENCODING_P256_SPHINCSSHA2128SSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_RSA3072_SPHINCSSHA2128SSIMPLE")) - oqs_alg_encoding_list[34] + oqs_alg_encoding_list[114] = getenv("OQS_ENCODING_RSA3072_SPHINCSSHA2128SSIMPLE"); if (getenv("OQS_ENCODING_RSA3072_SPHINCSSHA2128SSIMPLE_ALGNAME")) - oqs_alg_encoding_list[35] + oqs_alg_encoding_list[115] = getenv("OQS_ENCODING_RSA3072_SPHINCSSHA2128SSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_SPHINCSSHA2192FSIMPLE")) - oqs_alg_encoding_list[36] + oqs_alg_encoding_list[116] = getenv("OQS_ENCODING_SPHINCSSHA2192FSIMPLE"); if (getenv("OQS_ENCODING_SPHINCSSHA2192FSIMPLE_ALGNAME")) - oqs_alg_encoding_list[37] + oqs_alg_encoding_list[117] = getenv("OQS_ENCODING_SPHINCSSHA2192FSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_P384_SPHINCSSHA2192FSIMPLE")) - oqs_alg_encoding_list[38] + oqs_alg_encoding_list[118] = getenv("OQS_ENCODING_P384_SPHINCSSHA2192FSIMPLE"); if (getenv("OQS_ENCODING_P384_SPHINCSSHA2192FSIMPLE_ALGNAME")) - oqs_alg_encoding_list[39] + oqs_alg_encoding_list[119] = getenv("OQS_ENCODING_P384_SPHINCSSHA2192FSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_SPHINCSSHAKE128FSIMPLE")) - oqs_alg_encoding_list[40] + oqs_alg_encoding_list[120] = getenv("OQS_ENCODING_SPHINCSSHAKE128FSIMPLE"); if (getenv("OQS_ENCODING_SPHINCSSHAKE128FSIMPLE_ALGNAME")) - oqs_alg_encoding_list[41] + oqs_alg_encoding_list[121] = getenv("OQS_ENCODING_SPHINCSSHAKE128FSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_P256_SPHINCSSHAKE128FSIMPLE")) - oqs_alg_encoding_list[42] + oqs_alg_encoding_list[122] = getenv("OQS_ENCODING_P256_SPHINCSSHAKE128FSIMPLE"); if (getenv("OQS_ENCODING_P256_SPHINCSSHAKE128FSIMPLE_ALGNAME")) - oqs_alg_encoding_list[43] + oqs_alg_encoding_list[123] = getenv("OQS_ENCODING_P256_SPHINCSSHAKE128FSIMPLE_ALGNAME"); if (getenv("OQS_ENCODING_RSA3072_SPHINCSSHAKE128FSIMPLE")) - oqs_alg_encoding_list[44] + oqs_alg_encoding_list[124] = getenv("OQS_ENCODING_RSA3072_SPHINCSSHAKE128FSIMPLE"); if (getenv("OQS_ENCODING_RSA3072_SPHINCSSHAKE128FSIMPLE_ALGNAME")) - oqs_alg_encoding_list[45] + oqs_alg_encoding_list[125] = getenv("OQS_ENCODING_RSA3072_SPHINCSSHAKE128FSIMPLE_ALGNAME"); ///// OQS_TEMPLATE_FRAGMENT_ENCODING_PATCHING_END return 1; @@ -547,23 +972,143 @@ static const OSSL_ALGORITHM oqsprovider_signatures[] = { SIGALG("p256_dilithium2", 128, oqs_signature_functions), SIGALG("rsa3072_dilithium2", 128, oqs_signature_functions), #endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha256", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha384", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha512", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha3At256", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha3At384", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha3At512", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithShake128", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithShake256", 128, oqs_signature_functions), +#endif #ifdef OQS_ENABLE_SIG_dilithium_3 SIGALG("dilithium3", 192, oqs_signature_functions), SIGALG("p384_dilithium3", 192, oqs_signature_functions), #endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha256", 192, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha384", 192, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha512", 192, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha3At256", 192, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha3At384", 192, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha3At512", 192, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithShake128", 192, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithShake256", 192, oqs_signature_functions), +#endif #ifdef OQS_ENABLE_SIG_dilithium_5 SIGALG("dilithium5", 256, oqs_signature_functions), SIGALG("p521_dilithium5", 256, oqs_signature_functions), #endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha256", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha384", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha512", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha3At256", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha3At384", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha3At512", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithShake128", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithShake256", 256, oqs_signature_functions), +#endif #ifdef OQS_ENABLE_SIG_falcon_512 SIGALG("falcon512", 128, oqs_signature_functions), SIGALG("p256_falcon512", 128, oqs_signature_functions), SIGALG("rsa3072_falcon512", 128, oqs_signature_functions), #endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha256", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha384", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha512", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha3At256", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha3At384", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha3At512", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithShake128", 128, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithShake256", 128, oqs_signature_functions), +#endif #ifdef OQS_ENABLE_SIG_falcon_1024 SIGALG("falcon1024", 256, oqs_signature_functions), SIGALG("p521_falcon1024", 256, oqs_signature_functions), #endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha256", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha384", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha512", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha3At256", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha3At384", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha3At512", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithShake128", 256, oqs_signature_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithShake256", 256, oqs_signature_functions), +#endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_128f_simple SIGALG("sphincssha2128fsimple", 128, oqs_signature_functions), SIGALG("p256_sphincssha2128fsimple", 128, oqs_signature_functions), @@ -674,23 +1219,143 @@ static const OSSL_ALGORITHM oqsprovider_keymgmt[] = { SIGALG("p256_dilithium2", 128, oqs_p256_dilithium2_keymgmt_functions), SIGALG("rsa3072_dilithium2", 128, oqs_rsa3072_dilithium2_keymgmt_functions), #endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha256", 128, oqs_dilithium2WithSha256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha384", 128, oqs_dilithium2WithSha384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha512", 128, oqs_dilithium2WithSha512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha3At256", 128, oqs_dilithium2WithSha3At256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha3At384", 128, oqs_dilithium2WithSha3At384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithSha3At512", 128, oqs_dilithium2WithSha3At512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithShake128", 128, oqs_dilithium2WithShake128_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_2 + SIGALG("dilithium2WithShake256", 128, oqs_dilithium2WithShake256_keymgmt_functions), +#endif #ifdef OQS_ENABLE_SIG_dilithium_3 SIGALG("dilithium3", 192, oqs_dilithium3_keymgmt_functions), SIGALG("p384_dilithium3", 192, oqs_p384_dilithium3_keymgmt_functions), #endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha256", 192, oqs_dilithium3WithSha256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha384", 192, oqs_dilithium3WithSha384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha512", 192, oqs_dilithium3WithSha512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha3At256", 192, oqs_dilithium3WithSha3At256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha3At384", 192, oqs_dilithium3WithSha3At384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithSha3At512", 192, oqs_dilithium3WithSha3At512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithShake128", 192, oqs_dilithium3WithShake128_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_3 + SIGALG("dilithium3WithShake256", 192, oqs_dilithium3WithShake256_keymgmt_functions), +#endif #ifdef OQS_ENABLE_SIG_dilithium_5 SIGALG("dilithium5", 256, oqs_dilithium5_keymgmt_functions), SIGALG("p521_dilithium5", 256, oqs_p521_dilithium5_keymgmt_functions), #endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha256", 256, oqs_dilithium5WithSha256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha384", 256, oqs_dilithium5WithSha384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha512", 256, oqs_dilithium5WithSha512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha3At256", 256, oqs_dilithium5WithSha3At256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha3At384", 256, oqs_dilithium5WithSha3At384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithSha3At512", 256, oqs_dilithium5WithSha3At512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithShake128", 256, oqs_dilithium5WithShake128_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_dilithium_5 + SIGALG("dilithium5WithShake256", 256, oqs_dilithium5WithShake256_keymgmt_functions), +#endif #ifdef OQS_ENABLE_SIG_falcon_512 SIGALG("falcon512", 128, oqs_falcon512_keymgmt_functions), SIGALG("p256_falcon512", 128, oqs_p256_falcon512_keymgmt_functions), SIGALG("rsa3072_falcon512", 128, oqs_rsa3072_falcon512_keymgmt_functions), #endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha256", 128, oqs_falcon512WithSha256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha384", 128, oqs_falcon512WithSha384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha512", 128, oqs_falcon512WithSha512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha3At256", 128, oqs_falcon512WithSha3At256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha3At384", 128, oqs_falcon512WithSha3At384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithSha3At512", 128, oqs_falcon512WithSha3At512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithShake128", 128, oqs_falcon512WithShake128_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_512 + SIGALG("falcon512WithShake256", 128, oqs_falcon512WithShake256_keymgmt_functions), +#endif #ifdef OQS_ENABLE_SIG_falcon_1024 SIGALG("falcon1024", 256, oqs_falcon1024_keymgmt_functions), SIGALG("p521_falcon1024", 256, oqs_p521_falcon1024_keymgmt_functions), #endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha256", 256, oqs_falcon1024WithSha256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha384", 256, oqs_falcon1024WithSha384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha512", 256, oqs_falcon1024WithSha512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha3At256", 256, oqs_falcon1024WithSha3At256_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha3At384", 256, oqs_falcon1024WithSha3At384_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithSha3At512", 256, oqs_falcon1024WithSha3At512_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithShake128", 256, oqs_falcon1024WithShake128_keymgmt_functions), +#endif +#ifdef OQS_ENABLE_SIG_falcon_1024 + SIGALG("falcon1024WithShake256", 256, oqs_falcon1024WithShake256_keymgmt_functions), +#endif #ifdef OQS_ENABLE_SIG_sphincs_sha2_128f_simple SIGALG("sphincssha2128fsimple", 128, oqs_sphincssha2128fsimple_keymgmt_functions), SIGALG("p256_sphincssha2128fsimple", 128, oqs_p256_sphincssha2128fsimple_keymgmt_functions), diff --git a/oqsprov/oqsprov_capabilities.c b/oqsprov/oqsprov_capabilities.c index 6255b041..3e2cc418 100644 --- a/oqsprov/oqsprov_capabilities.c +++ b/oqsprov/oqsprov_capabilities.c @@ -231,18 +231,38 @@ typedef struct oqs_sigalg_constants_st { static OQS_SIGALG_CONSTANTS oqs_sigalg_list[] = { // ad-hoc assignments - take from OQS generate data structures ///// OQS_TEMPLATE_FRAGMENT_SIGALG_ASSIGNMENTS_START + {0xfe98, 128, TLS1_3_VERSION, 0}, {0xfe99, 128, TLS1_3_VERSION, 0}, + {0xfe9a, 128, TLS1_3_VERSION, 0}, {0xfe9b, 128, TLS1_3_VERSION, 0}, + {0xfe9c, 128, TLS1_3_VERSION, 0}, {0xfe9d, 128, TLS1_3_VERSION, 0}, + {0xfe9e, 128, TLS1_3_VERSION, 0}, {0xfe9f, 128, TLS1_3_VERSION, 0}, {0xfea0, 128, TLS1_3_VERSION, 0}, {0xfea1, 128, TLS1_3_VERSION, 0}, {0xfea2, 128, TLS1_3_VERSION, 0}, {0xfea3, 192, TLS1_3_VERSION, 0}, - {0xfea4, 192, TLS1_3_VERSION, 0}, {0xfea5, 256, TLS1_3_VERSION, 0}, - {0xfea6, 256, TLS1_3_VERSION, 0}, {0xfeae, 128, TLS1_3_VERSION, 0}, - {0xfeaf, 128, TLS1_3_VERSION, 0}, {0xfeb0, 128, TLS1_3_VERSION, 0}, - {0xfeb1, 256, TLS1_3_VERSION, 0}, {0xfeb2, 256, TLS1_3_VERSION, 0}, - {0xfeb3, 128, TLS1_3_VERSION, 0}, {0xfeb4, 128, TLS1_3_VERSION, 0}, - {0xfeb5, 128, TLS1_3_VERSION, 0}, {0xfeb6, 128, TLS1_3_VERSION, 0}, - {0xfeb7, 128, TLS1_3_VERSION, 0}, {0xfeb8, 128, TLS1_3_VERSION, 0}, - {0xfeb9, 192, TLS1_3_VERSION, 0}, {0xfeba, 192, TLS1_3_VERSION, 0}, - {0xfec2, 128, TLS1_3_VERSION, 0}, {0xfec3, 128, TLS1_3_VERSION, 0}, - {0xfec4, 128, TLS1_3_VERSION, 0}, + {0xfea4, 192, TLS1_3_VERSION, 0}, {0xfea5, 192, TLS1_3_VERSION, 0}, + {0xfea6, 192, TLS1_3_VERSION, 0}, {0xfea7, 192, TLS1_3_VERSION, 0}, + {0xfea8, 192, TLS1_3_VERSION, 0}, {0xfea9, 192, TLS1_3_VERSION, 0}, + {0xfeaa, 192, TLS1_3_VERSION, 0}, {0xfeab, 192, TLS1_3_VERSION, 0}, + {0xfeac, 192, TLS1_3_VERSION, 0}, {0xfead, 256, TLS1_3_VERSION, 0}, + {0xfeae, 256, TLS1_3_VERSION, 0}, {0xfeaf, 256, TLS1_3_VERSION, 0}, + {0xfeb0, 256, TLS1_3_VERSION, 0}, {0xfeb1, 256, TLS1_3_VERSION, 0}, + {0xfeb2, 256, TLS1_3_VERSION, 0}, {0xfeb3, 256, TLS1_3_VERSION, 0}, + {0xfeb4, 256, TLS1_3_VERSION, 0}, {0xfeb5, 256, TLS1_3_VERSION, 0}, + {0xfeb6, 256, TLS1_3_VERSION, 0}, {0xfebe, 128, TLS1_3_VERSION, 0}, + {0xfebf, 128, TLS1_3_VERSION, 0}, {0xfec0, 128, TLS1_3_VERSION, 0}, + {0xfec1, 128, TLS1_3_VERSION, 0}, {0xfec2, 128, TLS1_3_VERSION, 0}, + {0xfec3, 128, TLS1_3_VERSION, 0}, {0xfec4, 128, TLS1_3_VERSION, 0}, + {0xfec5, 128, TLS1_3_VERSION, 0}, {0xfec6, 128, TLS1_3_VERSION, 0}, + {0xfec7, 128, TLS1_3_VERSION, 0}, {0xfec8, 128, TLS1_3_VERSION, 0}, + {0xfec9, 256, TLS1_3_VERSION, 0}, {0xfeca, 256, TLS1_3_VERSION, 0}, + {0xfecb, 256, TLS1_3_VERSION, 0}, {0xfecc, 256, TLS1_3_VERSION, 0}, + {0xfecd, 256, TLS1_3_VERSION, 0}, {0xfece, 256, TLS1_3_VERSION, 0}, + {0xfecf, 256, TLS1_3_VERSION, 0}, {0xfed0, 256, TLS1_3_VERSION, 0}, + {0xfed1, 256, TLS1_3_VERSION, 0}, {0xfed2, 256, TLS1_3_VERSION, 0}, + {0xfe61, 128, TLS1_3_VERSION, 0}, {0xfe62, 128, TLS1_3_VERSION, 0}, + {0xfe63, 128, TLS1_3_VERSION, 0}, {0xfe6a, 128, TLS1_3_VERSION, 0}, + {0xfe6b, 128, TLS1_3_VERSION, 0}, {0xfe6c, 128, TLS1_3_VERSION, 0}, + {0xfe72, 192, TLS1_3_VERSION, 0}, {0xfe73, 192, TLS1_3_VERSION, 0}, + {0xff03, 128, TLS1_3_VERSION, 0}, {0xff04, 128, TLS1_3_VERSION, 0}, + {0xff05, 128, TLS1_3_VERSION, 0}, ///// OQS_TEMPLATE_FRAGMENT_SIGALG_ASSIGNMENTS_END }; @@ -367,64 +387,185 @@ int oqs_patch_codepoints() if (getenv("OQS_CODEPOINT_RSA3072_DILITHIUM2")) oqs_sigalg_list[2].code_point = atoi(getenv("OQS_CODEPOINT_RSA3072_DILITHIUM2")); - if (getenv("OQS_CODEPOINT_DILITHIUM3")) + if (getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA256")) oqs_sigalg_list[3].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA256")); + if (getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA384")) + oqs_sigalg_list[4].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA384")); + if (getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA512")) + oqs_sigalg_list[5].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA512")); + if (getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA3AT256")) + oqs_sigalg_list[6].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA3AT256")); + if (getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA3AT384")) + oqs_sigalg_list[7].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA3AT384")); + if (getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA3AT512")) + oqs_sigalg_list[8].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM2WITHSHA3AT512")); + if (getenv("OQS_CODEPOINT_DILITHIUM2WITHSHAKE128")) + oqs_sigalg_list[9].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM2WITHSHAKE128")); + if (getenv("OQS_CODEPOINT_DILITHIUM2WITHSHAKE256")) + oqs_sigalg_list[10].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM2WITHSHAKE256")); + if (getenv("OQS_CODEPOINT_DILITHIUM3")) + oqs_sigalg_list[11].code_point = atoi(getenv("OQS_CODEPOINT_DILITHIUM3")); if (getenv("OQS_CODEPOINT_P384_DILITHIUM3")) - oqs_sigalg_list[4].code_point + oqs_sigalg_list[12].code_point = atoi(getenv("OQS_CODEPOINT_P384_DILITHIUM3")); + if (getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA256")) + oqs_sigalg_list[13].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA256")); + if (getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA384")) + oqs_sigalg_list[14].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA384")); + if (getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA512")) + oqs_sigalg_list[15].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA512")); + if (getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA3AT256")) + oqs_sigalg_list[16].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA3AT256")); + if (getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA3AT384")) + oqs_sigalg_list[17].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA3AT384")); + if (getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA3AT512")) + oqs_sigalg_list[18].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM3WITHSHA3AT512")); + if (getenv("OQS_CODEPOINT_DILITHIUM3WITHSHAKE128")) + oqs_sigalg_list[19].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM3WITHSHAKE128")); + if (getenv("OQS_CODEPOINT_DILITHIUM3WITHSHAKE256")) + oqs_sigalg_list[20].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM3WITHSHAKE256")); if (getenv("OQS_CODEPOINT_DILITHIUM5")) - oqs_sigalg_list[5].code_point + oqs_sigalg_list[21].code_point = atoi(getenv("OQS_CODEPOINT_DILITHIUM5")); if (getenv("OQS_CODEPOINT_P521_DILITHIUM5")) - oqs_sigalg_list[6].code_point + oqs_sigalg_list[22].code_point = atoi(getenv("OQS_CODEPOINT_P521_DILITHIUM5")); + if (getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA256")) + oqs_sigalg_list[23].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA256")); + if (getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA384")) + oqs_sigalg_list[24].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA384")); + if (getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA512")) + oqs_sigalg_list[25].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA512")); + if (getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA3AT256")) + oqs_sigalg_list[26].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA3AT256")); + if (getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA3AT384")) + oqs_sigalg_list[27].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA3AT384")); + if (getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA3AT512")) + oqs_sigalg_list[28].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM5WITHSHA3AT512")); + if (getenv("OQS_CODEPOINT_DILITHIUM5WITHSHAKE128")) + oqs_sigalg_list[29].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM5WITHSHAKE128")); + if (getenv("OQS_CODEPOINT_DILITHIUM5WITHSHAKE256")) + oqs_sigalg_list[30].code_point + = atoi(getenv("OQS_CODEPOINT_DILITHIUM5WITHSHAKE256")); if (getenv("OQS_CODEPOINT_FALCON512")) - oqs_sigalg_list[7].code_point = atoi(getenv("OQS_CODEPOINT_FALCON512")); + oqs_sigalg_list[31].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON512")); if (getenv("OQS_CODEPOINT_P256_FALCON512")) - oqs_sigalg_list[8].code_point + oqs_sigalg_list[32].code_point = atoi(getenv("OQS_CODEPOINT_P256_FALCON512")); if (getenv("OQS_CODEPOINT_RSA3072_FALCON512")) - oqs_sigalg_list[9].code_point + oqs_sigalg_list[33].code_point = atoi(getenv("OQS_CODEPOINT_RSA3072_FALCON512")); + if (getenv("OQS_CODEPOINT_FALCON512WITHSHA256")) + oqs_sigalg_list[34].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON512WITHSHA256")); + if (getenv("OQS_CODEPOINT_FALCON512WITHSHA384")) + oqs_sigalg_list[35].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON512WITHSHA384")); + if (getenv("OQS_CODEPOINT_FALCON512WITHSHA512")) + oqs_sigalg_list[36].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON512WITHSHA512")); + if (getenv("OQS_CODEPOINT_FALCON512WITHSHA3AT256")) + oqs_sigalg_list[37].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON512WITHSHA3AT256")); + if (getenv("OQS_CODEPOINT_FALCON512WITHSHA3AT384")) + oqs_sigalg_list[38].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON512WITHSHA3AT384")); + if (getenv("OQS_CODEPOINT_FALCON512WITHSHA3AT512")) + oqs_sigalg_list[39].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON512WITHSHA3AT512")); + if (getenv("OQS_CODEPOINT_FALCON512WITHSHAKE128")) + oqs_sigalg_list[40].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON512WITHSHAKE128")); + if (getenv("OQS_CODEPOINT_FALCON512WITHSHAKE256")) + oqs_sigalg_list[41].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON512WITHSHAKE256")); if (getenv("OQS_CODEPOINT_FALCON1024")) - oqs_sigalg_list[10].code_point + oqs_sigalg_list[42].code_point = atoi(getenv("OQS_CODEPOINT_FALCON1024")); if (getenv("OQS_CODEPOINT_P521_FALCON1024")) - oqs_sigalg_list[11].code_point + oqs_sigalg_list[43].code_point = atoi(getenv("OQS_CODEPOINT_P521_FALCON1024")); + if (getenv("OQS_CODEPOINT_FALCON1024WITHSHA256")) + oqs_sigalg_list[44].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON1024WITHSHA256")); + if (getenv("OQS_CODEPOINT_FALCON1024WITHSHA384")) + oqs_sigalg_list[45].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON1024WITHSHA384")); + if (getenv("OQS_CODEPOINT_FALCON1024WITHSHA512")) + oqs_sigalg_list[46].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON1024WITHSHA512")); + if (getenv("OQS_CODEPOINT_FALCON1024WITHSHA3AT256")) + oqs_sigalg_list[47].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON1024WITHSHA3AT256")); + if (getenv("OQS_CODEPOINT_FALCON1024WITHSHA3AT384")) + oqs_sigalg_list[48].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON1024WITHSHA3AT384")); + if (getenv("OQS_CODEPOINT_FALCON1024WITHSHA3AT512")) + oqs_sigalg_list[49].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON1024WITHSHA3AT512")); + if (getenv("OQS_CODEPOINT_FALCON1024WITHSHAKE128")) + oqs_sigalg_list[50].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON1024WITHSHAKE128")); + if (getenv("OQS_CODEPOINT_FALCON1024WITHSHAKE256")) + oqs_sigalg_list[51].code_point + = atoi(getenv("OQS_CODEPOINT_FALCON1024WITHSHAKE256")); if (getenv("OQS_CODEPOINT_SPHINCSSHA2128FSIMPLE")) - oqs_sigalg_list[12].code_point + oqs_sigalg_list[52].code_point = atoi(getenv("OQS_CODEPOINT_SPHINCSSHA2128FSIMPLE")); if (getenv("OQS_CODEPOINT_P256_SPHINCSSHA2128FSIMPLE")) - oqs_sigalg_list[13].code_point + oqs_sigalg_list[53].code_point = atoi(getenv("OQS_CODEPOINT_P256_SPHINCSSHA2128FSIMPLE")); if (getenv("OQS_CODEPOINT_RSA3072_SPHINCSSHA2128FSIMPLE")) - oqs_sigalg_list[14].code_point + oqs_sigalg_list[54].code_point = atoi(getenv("OQS_CODEPOINT_RSA3072_SPHINCSSHA2128FSIMPLE")); if (getenv("OQS_CODEPOINT_SPHINCSSHA2128SSIMPLE")) - oqs_sigalg_list[15].code_point + oqs_sigalg_list[55].code_point = atoi(getenv("OQS_CODEPOINT_SPHINCSSHA2128SSIMPLE")); if (getenv("OQS_CODEPOINT_P256_SPHINCSSHA2128SSIMPLE")) - oqs_sigalg_list[16].code_point + oqs_sigalg_list[56].code_point = atoi(getenv("OQS_CODEPOINT_P256_SPHINCSSHA2128SSIMPLE")); if (getenv("OQS_CODEPOINT_RSA3072_SPHINCSSHA2128SSIMPLE")) - oqs_sigalg_list[17].code_point + oqs_sigalg_list[57].code_point = atoi(getenv("OQS_CODEPOINT_RSA3072_SPHINCSSHA2128SSIMPLE")); if (getenv("OQS_CODEPOINT_SPHINCSSHA2192FSIMPLE")) - oqs_sigalg_list[18].code_point + oqs_sigalg_list[58].code_point = atoi(getenv("OQS_CODEPOINT_SPHINCSSHA2192FSIMPLE")); if (getenv("OQS_CODEPOINT_P384_SPHINCSSHA2192FSIMPLE")) - oqs_sigalg_list[19].code_point + oqs_sigalg_list[59].code_point = atoi(getenv("OQS_CODEPOINT_P384_SPHINCSSHA2192FSIMPLE")); if (getenv("OQS_CODEPOINT_SPHINCSSHAKE128FSIMPLE")) - oqs_sigalg_list[20].code_point + oqs_sigalg_list[60].code_point = atoi(getenv("OQS_CODEPOINT_SPHINCSSHAKE128FSIMPLE")); if (getenv("OQS_CODEPOINT_P256_SPHINCSSHAKE128FSIMPLE")) - oqs_sigalg_list[21].code_point + oqs_sigalg_list[61].code_point = atoi(getenv("OQS_CODEPOINT_P256_SPHINCSSHAKE128FSIMPLE")); if (getenv("OQS_CODEPOINT_RSA3072_SPHINCSSHAKE128FSIMPLE")) - oqs_sigalg_list[22].code_point + oqs_sigalg_list[62].code_point = atoi(getenv("OQS_CODEPOINT_RSA3072_SPHINCSSHAKE128FSIMPLE")); ///// OQS_TEMPLATE_FRAGMENT_CODEPOINT_PATCHING_END return 1; @@ -474,62 +615,238 @@ static const OSSL_PARAM oqs_param_sigalg_list[][12] = { OQS_SIGALG_ENTRY(rsa3072_dilithium2, rsa3072_dilithium2, rsa3072_dilithium2, "1.3.9999.2.7.2", 2), # endif +# ifdef OQS_ENABLE_SIG_dilithium_2 + OQS_SIGALG_ENTRY(dilithium2WithSha256, dilithium2WithSha256, + dilithium2WithSha256, "1.3.6.1.4.1.18227.999.1.1.1", 3), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_2 + OQS_SIGALG_ENTRY(dilithium2WithSha384, dilithium2WithSha384, + dilithium2WithSha384, "1.3.6.1.4.1.18227.999.1.1.2", 4), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_2 + OQS_SIGALG_ENTRY(dilithium2WithSha512, dilithium2WithSha512, + dilithium2WithSha512, "1.3.6.1.4.1.18227.999.1.1.3", 5), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_2 + OQS_SIGALG_ENTRY(dilithium2WithSha3At256, dilithium2WithSha3At256, + dilithium2WithSha3At256, "1.3.6.1.4.1.18227.999.1.1.4", 6), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_2 + OQS_SIGALG_ENTRY(dilithium2WithSha3At384, dilithium2WithSha3At384, + dilithium2WithSha3At384, "1.3.6.1.4.1.18227.999.1.1.5", 7), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_2 + OQS_SIGALG_ENTRY(dilithium2WithSha3At512, dilithium2WithSha3At512, + dilithium2WithSha3At512, "1.3.6.1.4.1.18227.999.1.1.6", 8), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_2 + OQS_SIGALG_ENTRY(dilithium2WithShake128, dilithium2WithShake128, + dilithium2WithShake128, "1.3.6.1.4.1.18227.999.1.1.7", 9), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_2 + OQS_SIGALG_ENTRY(dilithium2WithShake256, dilithium2WithShake256, + dilithium2WithShake256, "1.3.6.1.4.1.18227.999.1.1.8", 10), +# endif # ifdef OQS_ENABLE_SIG_dilithium_3 OQS_SIGALG_ENTRY(dilithium3, dilithium3, dilithium3, - "1.3.6.1.4.1.2.267.7.6.5", 3), + "1.3.6.1.4.1.2.267.7.6.5", 11), OQS_SIGALG_ENTRY(p384_dilithium3, p384_dilithium3, p384_dilithium3, - "1.3.9999.2.7.3", 4), + "1.3.9999.2.7.3", 12), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_3 + OQS_SIGALG_ENTRY(dilithium3WithSha256, dilithium3WithSha256, + dilithium3WithSha256, "1.3.6.1.4.1.18227.999.1.2.1", 13), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_3 + OQS_SIGALG_ENTRY(dilithium3WithSha384, dilithium3WithSha384, + dilithium3WithSha384, "1.3.6.1.4.1.18227.999.1.2.2", 14), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_3 + OQS_SIGALG_ENTRY(dilithium3WithSha512, dilithium3WithSha512, + dilithium3WithSha512, "1.3.6.1.4.1.18227.999.1.2.3", 15), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_3 + OQS_SIGALG_ENTRY(dilithium3WithSha3At256, dilithium3WithSha3At256, + dilithium3WithSha3At256, "1.3.6.1.4.1.18227.999.1.2.4", + 16), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_3 + OQS_SIGALG_ENTRY(dilithium3WithSha3At384, dilithium3WithSha3At384, + dilithium3WithSha3At384, "1.3.6.1.4.1.18227.999.1.2.5", + 17), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_3 + OQS_SIGALG_ENTRY(dilithium3WithSha3At512, dilithium3WithSha3At512, + dilithium3WithSha3At512, "1.3.6.1.4.1.18227.999.1.2.6", + 18), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_3 + OQS_SIGALG_ENTRY(dilithium3WithShake128, dilithium3WithShake128, + dilithium3WithShake128, "1.3.6.1.4.1.18227.999.1.2.7", 19), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_3 + OQS_SIGALG_ENTRY(dilithium3WithShake256, dilithium3WithShake256, + dilithium3WithShake256, "1.3.6.1.4.1.18227.999.1.2.8", 20), # endif # ifdef OQS_ENABLE_SIG_dilithium_5 OQS_SIGALG_ENTRY(dilithium5, dilithium5, dilithium5, - "1.3.6.1.4.1.2.267.7.8.7", 5), + "1.3.6.1.4.1.2.267.7.8.7", 21), OQS_SIGALG_ENTRY(p521_dilithium5, p521_dilithium5, p521_dilithium5, - "1.3.9999.2.7.4", 6), + "1.3.9999.2.7.4", 22), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_5 + OQS_SIGALG_ENTRY(dilithium5WithSha256, dilithium5WithSha256, + dilithium5WithSha256, "1.3.6.1.4.1.18227.999.1.3.1", 23), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_5 + OQS_SIGALG_ENTRY(dilithium5WithSha384, dilithium5WithSha384, + dilithium5WithSha384, "1.3.6.1.4.1.18227.999.1.3.2", 24), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_5 + OQS_SIGALG_ENTRY(dilithium5WithSha512, dilithium5WithSha512, + dilithium5WithSha512, "1.3.6.1.4.1.18227.999.1.3.3", 25), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_5 + OQS_SIGALG_ENTRY(dilithium5WithSha3At256, dilithium5WithSha3At256, + dilithium5WithSha3At256, "1.3.6.1.4.1.18227.999.1.3.4", + 26), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_5 + OQS_SIGALG_ENTRY(dilithium5WithSha3At384, dilithium5WithSha3At384, + dilithium5WithSha3At384, "1.3.6.1.4.1.18227.999.1.3.5", + 27), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_5 + OQS_SIGALG_ENTRY(dilithium5WithSha3At512, dilithium5WithSha3At512, + dilithium5WithSha3At512, "1.3.6.1.4.1.18227.999.1.3.6", + 28), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_5 + OQS_SIGALG_ENTRY(dilithium5WithShake128, dilithium5WithShake128, + dilithium5WithShake128, "1.3.6.1.4.1.18227.999.1.3.7", 29), +# endif +# ifdef OQS_ENABLE_SIG_dilithium_5 + OQS_SIGALG_ENTRY(dilithium5WithShake256, dilithium5WithShake256, + dilithium5WithShake256, "1.3.6.1.4.1.18227.999.1.3.8", 30), # endif # ifdef OQS_ENABLE_SIG_falcon_512 - OQS_SIGALG_ENTRY(falcon512, falcon512, falcon512, "1.3.9999.3.6", 7), + OQS_SIGALG_ENTRY(falcon512, falcon512, falcon512, "1.3.9999.3.6", 31), OQS_SIGALG_ENTRY(p256_falcon512, p256_falcon512, p256_falcon512, - "1.3.9999.3.7", 8), + "1.3.9999.3.7", 32), OQS_SIGALG_ENTRY(rsa3072_falcon512, rsa3072_falcon512, rsa3072_falcon512, - "1.3.9999.3.8", 9), + "1.3.9999.3.8", 33), +# endif +# ifdef OQS_ENABLE_SIG_falcon_512 + OQS_SIGALG_ENTRY(falcon512WithSha256, falcon512WithSha256, + falcon512WithSha256, "1.3.6.1.4.1.18227.999.2.3.1.1", 34), +# endif +# ifdef OQS_ENABLE_SIG_falcon_512 + OQS_SIGALG_ENTRY(falcon512WithSha384, falcon512WithSha384, + falcon512WithSha384, "1.3.6.1.4.1.18227.999.2.3.2.1", 35), +# endif +# ifdef OQS_ENABLE_SIG_falcon_512 + OQS_SIGALG_ENTRY(falcon512WithSha512, falcon512WithSha512, + falcon512WithSha512, "1.3.6.1.4.1.18227.999.2.3.3.1", 36), +# endif +# ifdef OQS_ENABLE_SIG_falcon_512 + OQS_SIGALG_ENTRY(falcon512WithSha3At256, falcon512WithSha3At256, + falcon512WithSha3At256, "1.3.6.1.4.1.18227.999.2.3.4.1", + 37), +# endif +# ifdef OQS_ENABLE_SIG_falcon_512 + OQS_SIGALG_ENTRY(falcon512WithSha3At384, falcon512WithSha3At384, + falcon512WithSha3At384, "1.3.6.1.4.1.18227.999.2.3.5.1", + 38), +# endif +# ifdef OQS_ENABLE_SIG_falcon_512 + OQS_SIGALG_ENTRY(falcon512WithSha3At512, falcon512WithSha3At512, + falcon512WithSha3At512, "1.3.6.1.4.1.18227.999.2.3.6.1", + 39), +# endif +# ifdef OQS_ENABLE_SIG_falcon_512 + OQS_SIGALG_ENTRY(falcon512WithShake128, falcon512WithShake128, + falcon512WithShake128, "1.3.6.1.4.1.18227.999.2.3.7.1", + 40), +# endif +# ifdef OQS_ENABLE_SIG_falcon_512 + OQS_SIGALG_ENTRY(falcon512WithShake256, falcon512WithShake256, + falcon512WithShake256, "1.3.6.1.4.1.18227.999.2.3.8.1", + 41), # endif # ifdef OQS_ENABLE_SIG_falcon_1024 - OQS_SIGALG_ENTRY(falcon1024, falcon1024, falcon1024, "1.3.9999.3.9", 10), + OQS_SIGALG_ENTRY(falcon1024, falcon1024, falcon1024, "1.3.9999.3.9", 42), OQS_SIGALG_ENTRY(p521_falcon1024, p521_falcon1024, p521_falcon1024, - "1.3.9999.3.10", 11), + "1.3.9999.3.10", 43), +# endif +# ifdef OQS_ENABLE_SIG_falcon_1024 + OQS_SIGALG_ENTRY(falcon1024WithSha256, falcon1024WithSha256, + falcon1024WithSha256, "1.3.6.1.4.1.18227.999.2.2.1.1", 44), +# endif +# ifdef OQS_ENABLE_SIG_falcon_1024 + OQS_SIGALG_ENTRY(falcon1024WithSha384, falcon1024WithSha384, + falcon1024WithSha384, "1.3.6.1.4.1.18227.999.2.2.2.1", 45), +# endif +# ifdef OQS_ENABLE_SIG_falcon_1024 + OQS_SIGALG_ENTRY(falcon1024WithSha512, falcon1024WithSha512, + falcon1024WithSha512, "1.3.6.1.4.1.18227.999.2.2.3.1", 46), +# endif +# ifdef OQS_ENABLE_SIG_falcon_1024 + OQS_SIGALG_ENTRY(falcon1024WithSha3At256, falcon1024WithSha3At256, + falcon1024WithSha3At256, "1.3.6.1.4.1.18227.999.2.2.4.1", + 47), +# endif +# ifdef OQS_ENABLE_SIG_falcon_1024 + OQS_SIGALG_ENTRY(falcon1024WithSha3At384, falcon1024WithSha3At384, + falcon1024WithSha3At384, "1.3.6.1.4.1.18227.999.2.2.5.1", + 48), +# endif +# ifdef OQS_ENABLE_SIG_falcon_1024 + OQS_SIGALG_ENTRY(falcon1024WithSha3At512, falcon1024WithSha3At512, + falcon1024WithSha3At512, "1.3.6.1.4.1.18227.999.2.2.6.1", + 49), +# endif +# ifdef OQS_ENABLE_SIG_falcon_1024 + OQS_SIGALG_ENTRY(falcon1024WithShake128, falcon1024WithShake128, + falcon1024WithShake128, "1.3.6.1.4.1.18227.999.2.2.7.1", + 50), +# endif +# ifdef OQS_ENABLE_SIG_falcon_1024 + OQS_SIGALG_ENTRY(falcon1024WithShake256, falcon1024WithShake256, + falcon1024WithShake256, "1.3.6.1.4.1.18227.999.2.2.8.1", + 51), # endif # ifdef OQS_ENABLE_SIG_sphincs_sha2_128f_simple OQS_SIGALG_ENTRY(sphincssha2128fsimple, sphincssha2128fsimple, - sphincssha2128fsimple, "1.3.9999.6.4.13", 12), + sphincssha2128fsimple, "1.3.9999.6.4.13", 52), OQS_SIGALG_ENTRY(p256_sphincssha2128fsimple, p256_sphincssha2128fsimple, - p256_sphincssha2128fsimple, "1.3.9999.6.4.14", 13), + p256_sphincssha2128fsimple, "1.3.9999.6.4.14", 53), OQS_SIGALG_ENTRY(rsa3072_sphincssha2128fsimple, rsa3072_sphincssha2128fsimple, - rsa3072_sphincssha2128fsimple, "1.3.9999.6.4.15", 14), + rsa3072_sphincssha2128fsimple, "1.3.9999.6.4.15", 54), # endif # ifdef OQS_ENABLE_SIG_sphincs_sha2_128s_simple OQS_SIGALG_ENTRY(sphincssha2128ssimple, sphincssha2128ssimple, - sphincssha2128ssimple, "1.3.9999.6.4.16", 15), + sphincssha2128ssimple, "1.3.9999.6.4.16", 55), OQS_SIGALG_ENTRY(p256_sphincssha2128ssimple, p256_sphincssha2128ssimple, - p256_sphincssha2128ssimple, "1.3.9999.6.4.17", 16), + p256_sphincssha2128ssimple, "1.3.9999.6.4.17", 56), OQS_SIGALG_ENTRY(rsa3072_sphincssha2128ssimple, rsa3072_sphincssha2128ssimple, - rsa3072_sphincssha2128ssimple, "1.3.9999.6.4.18", 17), + rsa3072_sphincssha2128ssimple, "1.3.9999.6.4.18", 57), # endif # ifdef OQS_ENABLE_SIG_sphincs_sha2_192f_simple OQS_SIGALG_ENTRY(sphincssha2192fsimple, sphincssha2192fsimple, - sphincssha2192fsimple, "1.3.9999.6.5.10", 18), + sphincssha2192fsimple, "1.3.9999.6.5.10", 58), OQS_SIGALG_ENTRY(p384_sphincssha2192fsimple, p384_sphincssha2192fsimple, - p384_sphincssha2192fsimple, "1.3.9999.6.5.11", 19), + p384_sphincssha2192fsimple, "1.3.9999.6.5.11", 59), # endif # ifdef OQS_ENABLE_SIG_sphincs_shake_128f_simple OQS_SIGALG_ENTRY(sphincsshake128fsimple, sphincsshake128fsimple, - sphincsshake128fsimple, "1.3.9999.6.7.13", 20), + sphincsshake128fsimple, "1.3.9999.6.7.13", 60), OQS_SIGALG_ENTRY(p256_sphincsshake128fsimple, p256_sphincsshake128fsimple, - p256_sphincsshake128fsimple, "1.3.9999.6.7.14", 21), + p256_sphincsshake128fsimple, "1.3.9999.6.7.14", 61), OQS_SIGALG_ENTRY(rsa3072_sphincsshake128fsimple, rsa3072_sphincsshake128fsimple, - rsa3072_sphincsshake128fsimple, "1.3.9999.6.7.15", 22), + rsa3072_sphincsshake128fsimple, "1.3.9999.6.7.15", 62), # endif ///// OQS_TEMPLATE_FRAGMENT_SIGALG_NAMES_END }; diff --git a/oqsprov/oqsprov_keys.c b/oqsprov/oqsprov_keys.c index 1b7d062e..33358779 100644 --- a/oqsprov/oqsprov_keys.c +++ b/oqsprov/oqsprov_keys.c @@ -54,9 +54,9 @@ static int oqsx_key_recreate_classickey(OQSX_KEY *key, oqsx_key_op_t op); ///// OQS_TEMPLATE_FRAGMENT_OQSNAMES_START #ifdef OQS_KEM_ENCODERS -# define NID_TABLE_LEN 65 +# define NID_TABLE_LEN 105 #else -# define NID_TABLE_LEN 23 +# define NID_TABLE_LEN 63 #endif static oqs_nid_name_t nid_names[NID_TABLE_LEN] = { @@ -119,15 +119,55 @@ static oqs_nid_name_t nid_names[NID_TABLE_LEN] = { {0, "dilithium2", OQS_SIG_alg_dilithium_2, KEY_TYPE_SIG, 128}, {0, "p256_dilithium2", OQS_SIG_alg_dilithium_2, KEY_TYPE_HYB_SIG, 128}, {0, "rsa3072_dilithium2", OQS_SIG_alg_dilithium_2, KEY_TYPE_HYB_SIG, 128}, + {0, "dilithium2WithSha256", OQS_SIG_alg_dilithium_2, KEY_TYPE_SIG, 128}, + {0, "dilithium2WithSha384", OQS_SIG_alg_dilithium_2, KEY_TYPE_SIG, 128}, + {0, "dilithium2WithSha512", OQS_SIG_alg_dilithium_2, KEY_TYPE_SIG, 128}, + {0, "dilithium2WithSha3At256", OQS_SIG_alg_dilithium_2, KEY_TYPE_SIG, 128}, + {0, "dilithium2WithSha3At384", OQS_SIG_alg_dilithium_2, KEY_TYPE_SIG, 128}, + {0, "dilithium2WithSha3At512", OQS_SIG_alg_dilithium_2, KEY_TYPE_SIG, 128}, + {0, "dilithium2WithShake128", OQS_SIG_alg_dilithium_2, KEY_TYPE_SIG, 128}, + {0, "dilithium2WithShake256", OQS_SIG_alg_dilithium_2, KEY_TYPE_SIG, 128}, {0, "dilithium3", OQS_SIG_alg_dilithium_3, KEY_TYPE_SIG, 192}, {0, "p384_dilithium3", OQS_SIG_alg_dilithium_3, KEY_TYPE_HYB_SIG, 192}, + {0, "dilithium3WithSha256", OQS_SIG_alg_dilithium_3, KEY_TYPE_SIG, 192}, + {0, "dilithium3WithSha384", OQS_SIG_alg_dilithium_3, KEY_TYPE_SIG, 192}, + {0, "dilithium3WithSha512", OQS_SIG_alg_dilithium_3, KEY_TYPE_SIG, 192}, + {0, "dilithium3WithSha3At256", OQS_SIG_alg_dilithium_3, KEY_TYPE_SIG, 192}, + {0, "dilithium3WithSha3At384", OQS_SIG_alg_dilithium_3, KEY_TYPE_SIG, 192}, + {0, "dilithium3WithSha3At512", OQS_SIG_alg_dilithium_3, KEY_TYPE_SIG, 192}, + {0, "dilithium3WithShake128", OQS_SIG_alg_dilithium_3, KEY_TYPE_SIG, 192}, + {0, "dilithium3WithShake256", OQS_SIG_alg_dilithium_3, KEY_TYPE_SIG, 192}, {0, "dilithium5", OQS_SIG_alg_dilithium_5, KEY_TYPE_SIG, 256}, {0, "p521_dilithium5", OQS_SIG_alg_dilithium_5, KEY_TYPE_HYB_SIG, 256}, + {0, "dilithium5WithSha256", OQS_SIG_alg_dilithium_5, KEY_TYPE_SIG, 256}, + {0, "dilithium5WithSha384", OQS_SIG_alg_dilithium_5, KEY_TYPE_SIG, 256}, + {0, "dilithium5WithSha512", OQS_SIG_alg_dilithium_5, KEY_TYPE_SIG, 256}, + {0, "dilithium5WithSha3At256", OQS_SIG_alg_dilithium_5, KEY_TYPE_SIG, 256}, + {0, "dilithium5WithSha3At384", OQS_SIG_alg_dilithium_5, KEY_TYPE_SIG, 256}, + {0, "dilithium5WithSha3At512", OQS_SIG_alg_dilithium_5, KEY_TYPE_SIG, 256}, + {0, "dilithium5WithShake128", OQS_SIG_alg_dilithium_5, KEY_TYPE_SIG, 256}, + {0, "dilithium5WithShake256", OQS_SIG_alg_dilithium_5, KEY_TYPE_SIG, 256}, {0, "falcon512", OQS_SIG_alg_falcon_512, KEY_TYPE_SIG, 128}, {0, "p256_falcon512", OQS_SIG_alg_falcon_512, KEY_TYPE_HYB_SIG, 128}, {0, "rsa3072_falcon512", OQS_SIG_alg_falcon_512, KEY_TYPE_HYB_SIG, 128}, + {0, "falcon512WithSha256", OQS_SIG_alg_falcon_512, KEY_TYPE_SIG, 128}, + {0, "falcon512WithSha384", OQS_SIG_alg_falcon_512, KEY_TYPE_SIG, 128}, + {0, "falcon512WithSha512", OQS_SIG_alg_falcon_512, KEY_TYPE_SIG, 128}, + {0, "falcon512WithSha3At256", OQS_SIG_alg_falcon_512, KEY_TYPE_SIG, 128}, + {0, "falcon512WithSha3At384", OQS_SIG_alg_falcon_512, KEY_TYPE_SIG, 128}, + {0, "falcon512WithSha3At512", OQS_SIG_alg_falcon_512, KEY_TYPE_SIG, 128}, + {0, "falcon512WithShake128", OQS_SIG_alg_falcon_512, KEY_TYPE_SIG, 128}, + {0, "falcon512WithShake256", OQS_SIG_alg_falcon_512, KEY_TYPE_SIG, 128}, {0, "falcon1024", OQS_SIG_alg_falcon_1024, KEY_TYPE_SIG, 256}, {0, "p521_falcon1024", OQS_SIG_alg_falcon_1024, KEY_TYPE_HYB_SIG, 256}, + {0, "falcon1024WithSha256", OQS_SIG_alg_falcon_1024, KEY_TYPE_SIG, 256}, + {0, "falcon1024WithSha384", OQS_SIG_alg_falcon_1024, KEY_TYPE_SIG, 256}, + {0, "falcon1024WithSha512", OQS_SIG_alg_falcon_1024, KEY_TYPE_SIG, 256}, + {0, "falcon1024WithSha3At256", OQS_SIG_alg_falcon_1024, KEY_TYPE_SIG, 256}, + {0, "falcon1024WithSha3At384", OQS_SIG_alg_falcon_1024, KEY_TYPE_SIG, 256}, + {0, "falcon1024WithSha3At512", OQS_SIG_alg_falcon_1024, KEY_TYPE_SIG, 256}, + {0, "falcon1024WithShake128", OQS_SIG_alg_falcon_1024, KEY_TYPE_SIG, 256}, + {0, "falcon1024WithShake256", OQS_SIG_alg_falcon_1024, KEY_TYPE_SIG, 256}, {0, "sphincssha2128fsimple", OQS_SIG_alg_sphincs_sha2_128f_simple, KEY_TYPE_SIG, 128}, {0, "p256_sphincssha2128fsimple", OQS_SIG_alg_sphincs_sha2_128f_simple, diff --git a/scripts/common.py b/scripts/common.py index 7b936214..300c4a52 100644 --- a/scripts/common.py +++ b/scripts/common.py @@ -16,7 +16,7 @@ 'ecdsap256', 'rsa3072', ##### OQS_TEMPLATE_FRAGMENT_SIG_ALGS_START # post-quantum signatures - 'dilithium2','dilithium3','dilithium5','falcon512','falcon1024','sphincssha2128fsimple','sphincssha2128ssimple','sphincssha2192fsimple','sphincsshake128fsimple', + 'dilithium2','dilithium2WithSha256','dilithium2WithSha384','dilithium2WithSha512','dilithium2WithSha3At256','dilithium2WithSha3At384','dilithium2WithSha3At512','dilithium2WithShake128','dilithium2WithShake256','dilithium3','dilithium3WithSha256','dilithium3WithSha384','dilithium3WithSha512','dilithium3WithSha3At256','dilithium3WithSha3At384','dilithium3WithSha3At512','dilithium3WithShake128','dilithium3WithShake256','dilithium5','dilithium5WithSha256','dilithium5WithSha384','dilithium5WithSha512','dilithium5WithSha3At256','dilithium5WithSha3At384','dilithium5WithSha3At512','dilithium5WithShake128','dilithium5WithShake256','falcon512','falcon512WithSha256','falcon512WithSha384','falcon512WithSha512','falcon512WithSha3At256','falcon512WithSha3At384','falcon512WithSha3At512','falcon512WithShake128','falcon512WithShake256','falcon1024','falcon1024WithSha256','falcon1024WithSha384','falcon1024WithSha512','falcon1024WithSha3At256','falcon1024WithSha3At384','falcon1024WithSha3At512','falcon1024WithShake128','falcon1024WithShake256','sphincssha2128fsimple','sphincssha2128ssimple','sphincssha2192fsimple','sphincsshake128fsimple', # post-quantum + classical signatures 'p256_dilithium2','rsa3072_dilithium2','p384_dilithium3','p521_dilithium5','p256_falcon512','rsa3072_falcon512','p521_falcon1024','p256_sphincssha2128fsimple','rsa3072_sphincssha2128fsimple','p256_sphincssha2128ssimple','rsa3072_sphincssha2128ssimple','p384_sphincssha2192fsimple','p256_sphincsshake128fsimple','rsa3072_sphincsshake128fsimple', ##### OQS_TEMPLATE_FRAGMENT_SIG_ALGS_END diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 1c5fd96a..aebe3108 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -68,6 +68,26 @@ endif() add_executable(oqs_test_groups oqs_test_groups.c test_common.c tlstest_helpers.c) target_link_libraries(oqs_test_groups PRIVATE ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} ${OQS_ADDL_SOCKET_LIBS}) +add_test( + NAME oqs_test_hashnsign + COMMAND oqs_test_hashnsign + "oqsprovider" + "${CMAKE_SOURCE_DIR}/test/oqs.cnf" +) +# openssl under MSVC seems to have a bug registering NIDs: +# It only works when setting OPENSSL_CONF, not when loading the same cnf file: +if (MSVC) +set_tests_properties(oqs_test_hashnsign + PROPERTIES ENVIRONMENT "OPENSSL_MODULES=${OQS_PROV_BINARY_DIR};OPENSSL_CONF=${CMAKE_CURRENT_SOURCE_DIR}/openssl-ca.cnf" +) +else() +set_tests_properties(oqs_test_hashnsign + PROPERTIES ENVIRONMENT "OPENSSL_MODULES=${OQS_PROV_BINARY_DIR}" +) +endif() +add_executable(oqs_test_hashnsign oqs_test_hashnsign.c test_common.c) +target_link_libraries(oqs_test_hashnsign PRIVATE ${OPENSSL_CRYPTO_LIBRARY} ${OQS_ADDL_SOCKET_LIBS}) + add_test( NAME oqs_tlssig COMMAND oqs_test_tlssig @@ -116,5 +136,6 @@ if (OQS_PROVIDER_BUILD_STATIC) oqs_test_groups oqs_test_tlssig oqs_test_endecode + oqs_test_hashnsign ) endif() diff --git a/test/oqs_test_hashnsign.c b/test/oqs_test_hashnsign.c new file mode 100644 index 00000000..65eb4f92 --- /dev/null +++ b/test/oqs_test_hashnsign.c @@ -0,0 +1,201 @@ +// SPDX-License-Identifier: Apache-2.0 AND MIT +#include "oqs/oqs.h" +#include "test_common.h" +#include +#include +#include +#include + +static OSSL_LIB_CTX *libctx = NULL; +static char *modulename = NULL; +static char *configfile = NULL; +static char *cert = NULL; +static char *privkey = NULL; +static char *certsdir = NULL; +static char *srpvfile = NULL; +static char *tmpfilename = NULL; + +void string_to_lower(char *str) +{ + if (str) { + for (; *str; ++str) + *str = tolower((unsigned char)*str); + } +} + +static const EVP_MD *get_digest_for_algorithm(const char *alg_name) +{ + char *lowercase_alg_name = strdup(alg_name); + if (!lowercase_alg_name) { + return NULL; + } + + string_to_lower(lowercase_alg_name); + + const EVP_MD *md = NULL; + + if (strstr(lowercase_alg_name, "sha256")) + md = EVP_sha256(); + else if (strstr(lowercase_alg_name, "sha384")) + md = EVP_sha384(); + else if (strstr(lowercase_alg_name, "sha512")) + md = EVP_sha512(); + else if (strstr(lowercase_alg_name, "sha3-256")) + md = EVP_sha3_256(); + else if (strstr(lowercase_alg_name, "sha3-384")) + md = EVP_sha3_384(); + else if (strstr(lowercase_alg_name, "sha3-512")) + md = EVP_sha3_512(); + else if (strstr(lowercase_alg_name, "shake128")) + md = EVP_shake128(); + else if (strstr(lowercase_alg_name, "shake256")) + md = EVP_shake256(); + + free(lowercase_alg_name); + return md; +} + +static int test_hash_n_sign(const char *sigalg_name) +{ + EVP_MD_CTX *mdctx = NULL; + EVP_PKEY_CTX *pkey_ctx = NULL; + EVP_PKEY *key = NULL; + const char msg[] = "The quick brown fox jumps over the lazy dog"; + unsigned char *sig = NULL; + size_t siglen; + int testresult = 0; + + if (!alg_is_enabled(sigalg_name)) { + fprintf(stderr, "Not testing disabled algorithm %s.\n", sigalg_name); + return 1; + } + + const EVP_MD *md_type = get_digest_for_algorithm(sigalg_name); + if (!md_type) { + fprintf( + stderr, + "Unsupported digest type for algorithm %s.\n Not failing over unsupported hash algs.", + sigalg_name); + return 1; + } + + pkey_ctx = EVP_PKEY_CTX_new_from_name(libctx, sigalg_name, NULL); + if (!pkey_ctx) { + fprintf(stderr, "EVP_PKEY_CTX_new_from_name failed for %s.\n", + sigalg_name); + goto cleanup; + } + + if (EVP_PKEY_keygen_init(pkey_ctx) <= 0) { + fprintf(stderr, "EVP_PKEY_keygen_init failed for %s.\n", sigalg_name); + goto cleanup; + } + + if (EVP_PKEY_generate(pkey_ctx, &key) <= 0) { + fprintf(stderr, "EVP_PKEY_generate failed for %s.\n", sigalg_name); + goto cleanup; + } + + mdctx = EVP_MD_CTX_new(); + if (mdctx == NULL) { + fprintf(stderr, "EVP_MD_CTX_new failed for %s.\n", sigalg_name); + goto cleanup; + } + + if (EVP_DigestSignInit(mdctx, NULL, md_type, NULL, key) <= 0) { + fprintf(stderr, "EVP_DigestSignInit failed for %s.\n", sigalg_name); + testresult = 0; + goto cleanup; + } + + if (EVP_DigestSignUpdate(mdctx, msg, strlen(msg)) <= 0) { + fprintf(stderr, "EVP_DigestSignUpdate failed for %s.\n", sigalg_name); + testresult = 0; + goto cleanup; + } + + if (EVP_DigestSignFinal(mdctx, NULL, &siglen) <= 0) { + fprintf(stderr, "EVP_DigestSignFinal (get length) failed for %s.\n", + sigalg_name); + testresult = 0; + goto cleanup; + } + + sig = OPENSSL_malloc(siglen); + if (sig == NULL) { + fprintf(stderr, "OPENSSL_malloc failed for %s.\n", sigalg_name); + testresult = 0; + goto cleanup; + } + + if (EVP_DigestSignFinal(mdctx, sig, &siglen) <= 0) { + fprintf(stderr, "EVP_DigestSignFinal (get signature) failed for %s.\n", + sigalg_name); + testresult = 0; + goto cleanup; + } + + printf("Signature operation successful for %s.\n", sigalg_name); + testresult = 1; + +cleanup: + if (sig) + OPENSSL_free(sig); + if (mdctx) + EVP_MD_CTX_free(mdctx); + if (key) + EVP_PKEY_free(key); + if (pkey_ctx) + EVP_PKEY_CTX_free(pkey_ctx); + + return testresult; +} + +#define nelem(a) (sizeof(a) / sizeof((a)[0])) + +int main(int argc, char *argv[]) +{ + size_t i; + int errcnt = 0, test = 0, query_nocache; + OSSL_PROVIDER *oqsprov = NULL; + const OSSL_ALGORITHM *sigalgs; + + T((libctx = OSSL_LIB_CTX_new()) != NULL); + T(argc == 3); + modulename = argv[1]; + configfile = argv[2]; + + printf("Config file: %s\n", configfile); + + load_oqs_provider(libctx, modulename, configfile); + + oqsprov = OSSL_PROVIDER_load(libctx, modulename); + + sigalgs = OSSL_PROVIDER_query_operation(oqsprov, OSSL_OP_SIGNATURE, + &query_nocache); + + if (sigalgs) { + for (; sigalgs->algorithm_names != NULL; sigalgs++) { + if (strstr(sigalgs->algorithm_names, "With") != NULL) { + if (test_hash_n_sign(sigalgs->algorithm_names)) { + fprintf(stderr, + cGREEN " Signature test succeeded: %s" cNORM "\n", + sigalgs->algorithm_names); + } else { + fprintf(stderr, + cRED " Signature test failed: %s" cNORM "\n", + sigalgs->algorithm_names); + ERR_print_errors_fp(stderr); + errcnt++; + } + } + } + } else { + fprintf(stderr, "No signature algorithms available.\n"); + } + + OSSL_LIB_CTX_free(libctx); + + TEST_ASSERT(errcnt == 0) + return !test; +} diff --git a/test/oqs_test_tlssig.c b/test/oqs_test_tlssig.c index a735570a..a2f4bd73 100644 --- a/test/oqs_test_tlssig.c +++ b/test/oqs_test_tlssig.c @@ -59,6 +59,8 @@ static int test_oqs_tlssig(const char *sig_name) = create_tls1_3_ctx_pair(libctx, &sctx, &cctx, certpath, privkeypath); if (!testresult) { + fprintf(stderr, "Failed to create TLS context pair.\n"); + ERR_print_errors_fp(stderr); // Log SSL errors ret = -1; goto err; } @@ -72,6 +74,11 @@ static int test_oqs_tlssig(const char *sig_name) testresult = create_tls_connection(serverssl, clientssl, SSL_ERROR_NONE); if (!testresult) { + fprintf(stderr, "TLS handshake failed for %s.\n", sig_name); + int ssl_err = SSL_get_error( + clientssl, testresult); // Or serverssl, depending on which failed + fprintf(stderr, "SSL error code: %d\n", ssl_err); + ERR_print_errors_fp(stderr); // Detailed SSL error logging ret = -5; goto err; }