From e2f5df36138a8888bcc1f989c6739b23bf7e23fe Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 10 Mar 2021 11:22:55 +0100 Subject: PROV: Add OIDs we know to all provider applicable algorithms The OIDs were extracted with the help of libcrypto's ASN1 OID database. While doing this, we move all the names strings to macro definitions, to avoid duplication and conflicting names declarations. Those macros are all in providers/implementations/include/prov/names.h Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/14498) --- providers/defltprov.c | 453 ++++++++++----------- providers/fips/fipsprov.c | 265 ++++++------ .../implementations/include/prov/implementations.h | 2 +- providers/implementations/include/prov/names.h | 322 +++++++++++++++ .../implementations/keymgmt/mac_legacy_kmgmt.c | 2 +- providers/legacyprov.c | 83 ++-- 6 files changed, 716 insertions(+), 411 deletions(-) create mode 100644 providers/implementations/include/prov/names.h (limited to 'providers') diff --git a/providers/defltprov.c b/providers/defltprov.c index 0e076dd019..cb8a90f1cd 100644 --- a/providers/defltprov.c +++ b/providers/defltprov.c @@ -18,6 +18,7 @@ #include "prov/provider_ctx.h" #include "prov/providercommon.h" #include "prov/implementations.h" +#include "prov/names.h" #include "prov/provider_util.h" #include "prov/seeding.h" #include "internal/nelem.h" @@ -99,34 +100,32 @@ static int deflt_get_params(void *provctx, OSSL_PARAM params[]) */ static const OSSL_ALGORITHM deflt_digests[] = { /* Our primary name:NIST name[:our older names] */ - { "SHA1:SHA-1:SSL3-SHA1", "provider=default", ossl_sha1_functions }, - { "SHA2-224:SHA-224:SHA224", "provider=default", ossl_sha224_functions }, - { "SHA2-256:SHA-256:SHA256", "provider=default", ossl_sha256_functions }, - { "SHA2-384:SHA-384:SHA384", "provider=default", ossl_sha384_functions }, - { "SHA2-512:SHA-512:SHA512", "provider=default", ossl_sha512_functions }, - { "SHA2-512/224:SHA-512/224:SHA512-224", "provider=default", - ossl_sha512_224_functions }, - { "SHA2-512/256:SHA-512/256:SHA512-256", "provider=default", - ossl_sha512_256_functions }, + { PROV_NAMES_SHA1, "provider=default", ossl_sha1_functions }, + { PROV_NAMES_SHA2_224, "provider=default", ossl_sha224_functions }, + { PROV_NAMES_SHA2_256, "provider=default", ossl_sha256_functions }, + { PROV_NAMES_SHA2_384, "provider=default", ossl_sha384_functions }, + { PROV_NAMES_SHA2_512, "provider=default", ossl_sha512_functions }, + { PROV_NAMES_SHA2_512_224, "provider=default", ossl_sha512_224_functions }, + { PROV_NAMES_SHA2_512_256, "provider=default", ossl_sha512_256_functions }, /* We agree with NIST here, so one name only */ - { "SHA3-224", "provider=default", ossl_sha3_224_functions }, - { "SHA3-256", "provider=default", ossl_sha3_256_functions }, - { "SHA3-384", "provider=default", ossl_sha3_384_functions }, - { "SHA3-512", "provider=default", ossl_sha3_512_functions }, + { PROV_NAMES_SHA3_224, "provider=default", ossl_sha3_224_functions }, + { PROV_NAMES_SHA3_256, "provider=default", ossl_sha3_256_functions }, + { PROV_NAMES_SHA3_384, "provider=default", ossl_sha3_384_functions }, + { PROV_NAMES_SHA3_512, "provider=default", ossl_sha3_512_functions }, /* * KECCAK-KMAC-128 and KECCAK-KMAC-256 as hashes are mostly useful for * the KMAC-128 and KMAC-256. */ - { "KECCAK-KMAC-128:KECCAK-KMAC128", "provider=default", + { PROV_NAMES_KECCAK_KMAC_128, "provider=default", ossl_keccak_kmac_128_functions }, - { "KECCAK-KMAC-256:KECCAK-KMAC256", "provider=default", + { PROV_NAMES_KECCAK_KMAC_256, "provider=default", ossl_keccak_kmac_256_functions }, /* Our primary name:NIST name */ - { "SHAKE-128:SHAKE128", "provider=default", ossl_shake_128_functions }, - { "SHAKE-256:SHAKE256", "provider=default", ossl_shake_256_functions }, + { PROV_NAMES_SHAKE_128, "provider=default", ossl_shake_128_functions }, + { PROV_NAMES_SHAKE_256, "provider=default", ossl_shake_256_functions }, #ifndef OPENSSL_NO_BLAKE2 /* @@ -136,168 +135,162 @@ static const OSSL_ALGORITHM deflt_digests[] = { * If we assume that "2b" and "2s" are versions, that pattern * fits with ours. We also add our historical names. */ - { "BLAKE2S-256:BLAKE2s256", "provider=default", ossl_blake2s256_functions }, - { "BLAKE2B-512:BLAKE2b512", "provider=default", ossl_blake2b512_functions }, + { PROV_NAMES_BLAKE2S_256, "provider=default", ossl_blake2s256_functions }, + { PROV_NAMES_BLAKE2B_512, "provider=default", ossl_blake2b512_functions }, #endif /* OPENSSL_NO_BLAKE2 */ #ifndef OPENSSL_NO_SM3 - { "SM3", "provider=default", ossl_sm3_functions }, + { PROV_NAMES_SM3, "provider=default", ossl_sm3_functions }, #endif /* OPENSSL_NO_SM3 */ #ifndef OPENSSL_NO_MD5 - { "MD5:SSL3-MD5", "provider=default", ossl_md5_functions }, - { "MD5-SHA1", "provider=default", ossl_md5_sha1_functions }, + { PROV_NAMES_MD5, "provider=default", ossl_md5_functions }, + { PROV_NAMES_MD5_SHA1, "provider=default", ossl_md5_sha1_functions }, #endif /* OPENSSL_NO_MD5 */ { NULL, NULL, NULL } }; static const OSSL_ALGORITHM_CAPABLE deflt_ciphers[] = { - ALG("NULL", ossl_null_functions), - ALG("AES-256-ECB", ossl_aes256ecb_functions), - ALG("AES-192-ECB", ossl_aes192ecb_functions), - ALG("AES-128-ECB", ossl_aes128ecb_functions), - ALG("AES-256-CBC:AES256", ossl_aes256cbc_functions), - ALG("AES-192-CBC:AES192", ossl_aes192cbc_functions), - ALG("AES-128-CBC:AES128", ossl_aes128cbc_functions), - ALG("AES-128-CBC-CTS", ossl_aes128cbc_cts_functions), - ALG("AES-192-CBC-CTS", ossl_aes192cbc_cts_functions), - ALG("AES-256-CBC-CTS", ossl_aes256cbc_cts_functions), - ALG("AES-256-OFB", ossl_aes256ofb_functions), - ALG("AES-192-OFB", ossl_aes192ofb_functions), - ALG("AES-128-OFB", ossl_aes128ofb_functions), - ALG("AES-256-CFB", ossl_aes256cfb_functions), - ALG("AES-192-CFB", ossl_aes192cfb_functions), - ALG("AES-128-CFB", ossl_aes128cfb_functions), - ALG("AES-256-CFB1", ossl_aes256cfb1_functions), - ALG("AES-192-CFB1", ossl_aes192cfb1_functions), - ALG("AES-128-CFB1", ossl_aes128cfb1_functions), - ALG("AES-256-CFB8", ossl_aes256cfb8_functions), - ALG("AES-192-CFB8", ossl_aes192cfb8_functions), - ALG("AES-128-CFB8", ossl_aes128cfb8_functions), - ALG("AES-256-CTR", ossl_aes256ctr_functions), - ALG("AES-192-CTR", ossl_aes192ctr_functions), - ALG("AES-128-CTR", ossl_aes128ctr_functions), - ALG("AES-256-XTS", ossl_aes256xts_functions), - ALG("AES-128-XTS", ossl_aes128xts_functions), + ALG(PROV_NAMES_NULL, ossl_null_functions), + ALG(PROV_NAMES_AES_256_ECB, ossl_aes256ecb_functions), + ALG(PROV_NAMES_AES_192_ECB, ossl_aes192ecb_functions), + ALG(PROV_NAMES_AES_128_ECB, ossl_aes128ecb_functions), + ALG(PROV_NAMES_AES_256_CBC, ossl_aes256cbc_functions), + ALG(PROV_NAMES_AES_192_CBC, ossl_aes192cbc_functions), + ALG(PROV_NAMES_AES_128_CBC, ossl_aes128cbc_functions), + ALG(PROV_NAMES_AES_128_CBC_CTS, ossl_aes128cbc_cts_functions), + ALG(PROV_NAMES_AES_192_CBC_CTS, ossl_aes192cbc_cts_functions), + ALG(PROV_NAMES_AES_256_CBC_CTS, ossl_aes256cbc_cts_functions), + ALG(PROV_NAMES_AES_256_OFB, ossl_aes256ofb_functions), + ALG(PROV_NAMES_AES_192_OFB, ossl_aes192ofb_functions), + ALG(PROV_NAMES_AES_128_OFB, ossl_aes128ofb_functions), + ALG(PROV_NAMES_AES_256_CFB, ossl_aes256cfb_functions), + ALG(PROV_NAMES_AES_192_CFB, ossl_aes192cfb_functions), + ALG(PROV_NAMES_AES_128_CFB, ossl_aes128cfb_functions), + ALG(PROV_NAMES_AES_256_CFB1, ossl_aes256cfb1_functions), + ALG(PROV_NAMES_AES_192_CFB1, ossl_aes192cfb1_functions), + ALG(PROV_NAMES_AES_128_CFB1, ossl_aes128cfb1_functions), + ALG(PROV_NAMES_AES_256_CFB8, ossl_aes256cfb8_functions), + ALG(PROV_NAMES_AES_192_CFB8, ossl_aes192cfb8_functions), + ALG(PROV_NAMES_AES_128_CFB8, ossl_aes128cfb8_functions), + ALG(PROV_NAMES_AES_256_CTR, ossl_aes256ctr_functions), + ALG(PROV_NAMES_AES_192_CTR, ossl_aes192ctr_functions), + ALG(PROV_NAMES_AES_128_CTR, ossl_aes128ctr_functions), + ALG(PROV_NAMES_AES_256_XTS, ossl_aes256xts_functions), + ALG(PROV_NAMES_AES_128_XTS, ossl_aes128xts_functions), #ifndef OPENSSL_NO_OCB - ALG("AES-256-OCB", ossl_aes256ocb_functions), - ALG("AES-192-OCB", ossl_aes192ocb_functions), - ALG("AES-128-OCB", ossl_aes128ocb_functions), + ALG(PROV_NAMES_AES_256_OCB, ossl_aes256ocb_functions), + ALG(PROV_NAMES_AES_192_OCB, ossl_aes192ocb_functions), + ALG(PROV_NAMES_AES_128_OCB, ossl_aes128ocb_functions), #endif /* OPENSSL_NO_OCB */ #ifndef OPENSSL_NO_SIV - ALG("AES-128-SIV", ossl_aes128siv_functions), - ALG("AES-192-SIV", ossl_aes192siv_functions), - ALG("AES-256-SIV", ossl_aes256siv_functions), + ALG(PROV_NAMES_AES_128_SIV, ossl_aes128siv_functions), + ALG(PROV_NAMES_AES_192_SIV, ossl_aes192siv_functions), + ALG(PROV_NAMES_AES_256_SIV, ossl_aes256siv_functions), #endif /* OPENSSL_NO_SIV */ - ALG("AES-256-GCM:id-aes256-GCM", ossl_aes256gcm_functions), - ALG("AES-192-GCM:id-aes192-GCM", ossl_aes192gcm_functions), - ALG("AES-128-GCM:id-aes128-GCM", ossl_aes128gcm_functions), - ALG("AES-256-CCM:id-aes256-CCM", ossl_aes256ccm_functions), - ALG("AES-192-CCM:id-aes192-CCM", ossl_aes192ccm_functions), - ALG("AES-128-CCM:id-aes128-CCM", ossl_aes128ccm_functions), - ALG("AES-256-WRAP:id-aes256-wrap:AES256-WRAP", ossl_aes256wrap_functions), - ALG("AES-192-WRAP:id-aes192-wrap:AES192-WRAP", ossl_aes192wrap_functions), - ALG("AES-128-WRAP:id-aes128-wrap:AES128-WRAP", ossl_aes128wrap_functions), - ALG("AES-256-WRAP-PAD:id-aes256-wrap-pad:AES256-WRAP-PAD", - ossl_aes256wrappad_functions), - ALG("AES-192-WRAP-PAD:id-aes192-wrap-pad:AES192-WRAP-PAD", - ossl_aes192wrappad_functions), - ALG("AES-128-WRAP-PAD:id-aes128-wrap-pad:AES128-WRAP-PAD", - ossl_aes128wrappad_functions), - ALG("AES-256-WRAP-INV:AES256-WRAP-INV", ossl_aes256wrapinv_functions), - ALG("AES-192-WRAP-INV:AES192-WRAP-INV", ossl_aes192wrapinv_functions), - ALG("AES-128-WRAP-INV:AES128-WRAP-INV", ossl_aes128wrapinv_functions), - ALG("AES-256-WRAP-PAD-INV:AES256-WRAP-PAD-INV", - ossl_aes256wrappadinv_functions), - ALG("AES-192-WRAP-PAD-INV:AES192-WRAP-PAD-INV", - ossl_aes192wrappadinv_functions), - ALG("AES-128-WRAP-PAD-INV:AES128-WRAP-PAD-INV", - ossl_aes128wrappadinv_functions), - ALGC("AES-128-CBC-HMAC-SHA1", ossl_aes128cbc_hmac_sha1_functions, + ALG(PROV_NAMES_AES_256_GCM, ossl_aes256gcm_functions), + ALG(PROV_NAMES_AES_192_GCM, ossl_aes192gcm_functions), + ALG(PROV_NAMES_AES_128_GCM, ossl_aes128gcm_functions), + ALG(PROV_NAMES_AES_256_CCM, ossl_aes256ccm_functions), + ALG(PROV_NAMES_AES_192_CCM, ossl_aes192ccm_functions), + ALG(PROV_NAMES_AES_128_CCM, ossl_aes128ccm_functions), + ALG(PROV_NAMES_AES_256_WRAP, ossl_aes256wrap_functions), + ALG(PROV_NAMES_AES_192_WRAP, ossl_aes192wrap_functions), + ALG(PROV_NAMES_AES_128_WRAP, ossl_aes128wrap_functions), + ALG(PROV_NAMES_AES_256_WRAP_PAD, ossl_aes256wrappad_functions), + ALG(PROV_NAMES_AES_192_WRAP_PAD, ossl_aes192wrappad_functions), + ALG(PROV_NAMES_AES_128_WRAP_PAD, ossl_aes128wrappad_functions), + ALG(PROV_NAMES_AES_256_WRAP_INV, ossl_aes256wrapinv_functions), + ALG(PROV_NAMES_AES_192_WRAP_INV, ossl_aes192wrapinv_functions), + ALG(PROV_NAMES_AES_128_WRAP_INV, ossl_aes128wrapinv_functions), + ALG(PROV_NAMES_AES_256_WRAP_PAD_INV, ossl_aes256wrappadinv_functions), + ALG(PROV_NAMES_AES_192_WRAP_PAD_INV, ossl_aes192wrappadinv_functions), + ALG(PROV_NAMES_AES_128_WRAP_PAD_INV, ossl_aes128wrappadinv_functions), + ALGC(PROV_NAMES_AES_128_CBC_HMAC_SHA1, ossl_aes128cbc_hmac_sha1_functions, ossl_cipher_capable_aes_cbc_hmac_sha1), - ALGC("AES-256-CBC-HMAC-SHA1", ossl_aes256cbc_hmac_sha1_functions, + ALGC(PROV_NAMES_AES_256_CBC_HMAC_SHA1, ossl_aes256cbc_hmac_sha1_functions, ossl_cipher_capable_aes_cbc_hmac_sha1), - ALGC("AES-128-CBC-HMAC-SHA256", ossl_aes128cbc_hmac_sha256_functions, + ALGC(PROV_NAMES_AES_128_CBC_HMAC_SHA256, ossl_aes128cbc_hmac_sha256_functions, ossl_cipher_capable_aes_cbc_hmac_sha256), - ALGC("AES-256-CBC-HMAC-SHA256", ossl_aes256cbc_hmac_sha256_functions, + ALGC(PROV_NAMES_AES_256_CBC_HMAC_SHA256, ossl_aes256cbc_hmac_sha256_functions, ossl_cipher_capable_aes_cbc_hmac_sha256), #ifndef OPENSSL_NO_ARIA - ALG("ARIA-256-GCM", ossl_aria256gcm_functions), - ALG("ARIA-192-GCM", ossl_aria192gcm_functions), - ALG("ARIA-128-GCM", ossl_aria128gcm_functions), - ALG("ARIA-256-CCM", ossl_aria256ccm_functions), - ALG("ARIA-192-CCM", ossl_aria192ccm_functions), - ALG("ARIA-128-CCM", ossl_aria128ccm_functions), - ALG("ARIA-256-ECB", ossl_aria256ecb_functions), - ALG("ARIA-192-ECB", ossl_aria192ecb_functions), - ALG("ARIA-128-ECB", ossl_aria128ecb_functions), - ALG("ARIA-256-CBC:ARIA256", ossl_aria256cbc_functions), - ALG("ARIA-192-CBC:ARIA192", ossl_aria192cbc_functions), - ALG("ARIA-128-CBC:ARIA128", ossl_aria128cbc_functions), - ALG("ARIA-256-OFB", ossl_aria256ofb_functions), - ALG("ARIA-192-OFB", ossl_aria192ofb_functions), - ALG("ARIA-128-OFB", ossl_aria128ofb_functions), - ALG("ARIA-256-CFB", ossl_aria256cfb_functions), - ALG("ARIA-192-CFB", ossl_aria192cfb_functions), - ALG("ARIA-128-CFB", ossl_aria128cfb_functions), - ALG("ARIA-256-CFB1", ossl_aria256cfb1_functions), - ALG("ARIA-192-CFB1", ossl_aria192cfb1_functions), - ALG("ARIA-128-CFB1", ossl_aria128cfb1_functions), - ALG("ARIA-256-CFB8", ossl_aria256cfb8_functions), - ALG("ARIA-192-CFB8", ossl_aria192cfb8_functions), - ALG("ARIA-128-CFB8", ossl_aria128cfb8_functions), - ALG("ARIA-256-CTR", ossl_aria256ctr_functions), - ALG("ARIA-192-CTR", ossl_aria192ctr_functions), - ALG("ARIA-128-CTR", ossl_aria128ctr_functions), + ALG(PROV_NAMES_ARIA_256_GCM, ossl_aria256gcm_functions), + ALG(PROV_NAMES_ARIA_192_GCM, ossl_aria192gcm_functions), + ALG(PROV_NAMES_ARIA_128_GCM, ossl_aria128gcm_functions), + ALG(PROV_NAMES_ARIA_256_CCM, ossl_aria256ccm_functions), + ALG(PROV_NAMES_ARIA_192_CCM, ossl_aria192ccm_functions), + ALG(PROV_NAMES_ARIA_128_CCM, ossl_aria128ccm_functions), + ALG(PROV_NAMES_ARIA_256_ECB, ossl_aria256ecb_functions), + ALG(PROV_NAMES_ARIA_192_ECB, ossl_aria192ecb_functions), + ALG(PROV_NAMES_ARIA_128_ECB, ossl_aria128ecb_functions), + ALG(PROV_NAMES_ARIA_256_CBC, ossl_aria256cbc_functions), + ALG(PROV_NAMES_ARIA_192_CBC, ossl_aria192cbc_functions), + ALG(PROV_NAMES_ARIA_128_CBC, ossl_aria128cbc_functions), + ALG(PROV_NAMES_ARIA_256_OFB, ossl_aria256ofb_functions), + ALG(PROV_NAMES_ARIA_192_OFB, ossl_aria192ofb_functions), + ALG(PROV_NAMES_ARIA_128_OFB, ossl_aria128ofb_functions), + ALG(PROV_NAMES_ARIA_256_CFB, ossl_aria256cfb_functions), + ALG(PROV_NAMES_ARIA_192_CFB, ossl_aria192cfb_functions), + ALG(PROV_NAMES_ARIA_128_CFB, ossl_aria128cfb_functions), + ALG(PROV_NAMES_ARIA_256_CFB1, ossl_aria256cfb1_functions), + ALG(PROV_NAMES_ARIA_192_CFB1, ossl_aria192cfb1_functions), + ALG(PROV_NAMES_ARIA_128_CFB1, ossl_aria128cfb1_functions), + ALG(PROV_NAMES_ARIA_256_CFB8, ossl_aria256cfb8_functions), + ALG(PROV_NAMES_ARIA_192_CFB8, ossl_aria192cfb8_functions), + ALG(PROV_NAMES_ARIA_128_CFB8, ossl_aria128cfb8_functions), + ALG(PROV_NAMES_ARIA_256_CTR, ossl_aria256ctr_functions), + ALG(PROV_NAMES_ARIA_192_CTR, ossl_aria192ctr_functions), + ALG(PROV_NAMES_ARIA_128_CTR, ossl_aria128ctr_functions), #endif /* OPENSSL_NO_ARIA */ #ifndef OPENSSL_NO_CAMELLIA - ALG("CAMELLIA-256-ECB", ossl_camellia256ecb_functions), - ALG("CAMELLIA-192-ECB", ossl_camellia192ecb_functions), - ALG("CAMELLIA-128-ECB", ossl_camellia128ecb_functions), - ALG("CAMELLIA-256-CBC:CAMELLIA256", ossl_camellia256cbc_functions), - ALG("CAMELLIA-192-CBC:CAMELLIA192", ossl_camellia192cbc_functions), - ALG("CAMELLIA-128-CBC:CAMELLIA128", ossl_camellia128cbc_functions), - ALG("CAMELLIA-256-OFB", ossl_camellia256ofb_functions), - ALG("CAMELLIA-192-OFB", ossl_camellia192ofb_functions), - ALG("CAMELLIA-128-OFB", ossl_camellia128ofb_functions), - ALG("CAMELLIA-256-CFB", ossl_camellia256cfb_functions), - ALG("CAMELLIA-192-CFB", ossl_camellia192cfb_functions), - ALG("CAMELLIA-128-CFB", ossl_camellia128cfb_functions), - ALG("CAMELLIA-256-CFB1", ossl_camellia256cfb1_functions), - ALG("CAMELLIA-192-CFB1", ossl_camellia192cfb1_functions), - ALG("CAMELLIA-128-CFB1", ossl_camellia128cfb1_functions), - ALG("CAMELLIA-256-CFB8", ossl_camellia256cfb8_functions), - ALG("CAMELLIA-192-CFB8", ossl_camellia192cfb8_functions), - ALG("CAMELLIA-128-CFB8", ossl_camellia128cfb8_functions), - ALG("CAMELLIA-256-CTR", ossl_camellia256ctr_functions), - ALG("CAMELLIA-192-CTR", ossl_camellia192ctr_functions), - ALG("CAMELLIA-128-CTR", ossl_camellia128ctr_functions), + ALG(PROV_NAMES_CAMELLIA_256_ECB, ossl_camellia256ecb_functions), + ALG(PROV_NAMES_CAMELLIA_192_ECB, ossl_camellia192ecb_functions), + ALG(PROV_NAMES_CAMELLIA_128_ECB, ossl_camellia128ecb_functions), + ALG(PROV_NAMES_CAMELLIA_256_CBC, ossl_camellia256cbc_functions), + ALG(PROV_NAMES_CAMELLIA_192_CBC, ossl_camellia192cbc_functions), + ALG(PROV_NAMES_CAMELLIA_128_CBC, ossl_camellia128cbc_functions), + ALG(PROV_NAMES_CAMELLIA_256_OFB, ossl_camellia256ofb_functions), + ALG(PROV_NAMES_CAMELLIA_192_OFB, ossl_camellia192ofb_functions), + ALG(PROV_NAMES_CAMELLIA_128_OFB, ossl_camellia128ofb_functions), + ALG(PROV_NAMES_CAMELLIA_256_CFB, ossl_camellia256cfb_functions), + ALG(PROV_NAMES_CAMELLIA_192_CFB, ossl_camellia192cfb_functions), + ALG(PROV_NAMES_CAMELLIA_128_CFB, ossl_camellia128cfb_functions), + ALG(PROV_NAMES_CAMELLIA_256_CFB1, ossl_camellia256cfb1_functions), + ALG(PROV_NAMES_CAMELLIA_192_CFB1, ossl_camellia192cfb1_functions), + ALG(PROV_NAMES_CAMELLIA_128_CFB1, ossl_camellia128cfb1_functions), + ALG(PROV_NAMES_CAMELLIA_256_CFB8, ossl_camellia256cfb8_functions), + ALG(PROV_NAMES_CAMELLIA_192_CFB8, ossl_camellia192cfb8_functions), + ALG(PROV_NAMES_CAMELLIA_128_CFB8, ossl_camellia128cfb8_functions), + ALG(PROV_NAMES_CAMELLIA_256_CTR, ossl_camellia256ctr_functions), + ALG(PROV_NAMES_CAMELLIA_192_CTR, ossl_camellia192ctr_functions), + ALG(PROV_NAMES_CAMELLIA_128_CTR, ossl_camellia128ctr_functions), #endif /* OPENSSL_NO_CAMELLIA */ #ifndef OPENSSL_NO_DES - ALG("DES-EDE3-ECB:DES-EDE3", ossl_tdes_ede3_ecb_functions), - ALG("DES-EDE3-CBC:DES3", ossl_tdes_ede3_cbc_functions), - ALG("DES-EDE3-OFB", ossl_tdes_ede3_ofb_functions), - ALG("DES-EDE3-CFB", ossl_tdes_ede3_cfb_functions), - ALG("DES-EDE3-CFB8", ossl_tdes_ede3_cfb8_functions), - ALG("DES-EDE3-CFB1", ossl_tdes_ede3_cfb1_functions), - ALG("DES3-WRAP:id-smime-alg-CMS3DESwrap", ossl_tdes_wrap_cbc_functions), - ALG("DES-EDE-ECB:DES-EDE", ossl_tdes_ede2_ecb_functions), - ALG("DES-EDE-CBC", ossl_tdes_ede2_cbc_functions), - ALG("DES-EDE-OFB", ossl_tdes_ede2_ofb_functions), - ALG("DES-EDE-CFB", ossl_tdes_ede2_cfb_functions), + ALG(PROV_NAMES_DES_EDE3_ECB, ossl_tdes_ede3_ecb_functions), + ALG(PROV_NAMES_DES_EDE3_CBC, ossl_tdes_ede3_cbc_functions), + ALG(PROV_NAMES_DES_EDE3_OFB, ossl_tdes_ede3_ofb_functions), + ALG(PROV_NAMES_DES_EDE3_CFB, ossl_tdes_ede3_cfb_functions), + ALG(PROV_NAMES_DES_EDE3_CFB8, ossl_tdes_ede3_cfb8_functions), + ALG(PROV_NAMES_DES_EDE3_CFB1, ossl_tdes_ede3_cfb1_functions), + ALG(PROV_NAMES_DES3_WRAP, ossl_tdes_wrap_cbc_functions), + ALG(PROV_NAMES_DES_EDE_ECB, ossl_tdes_ede2_ecb_functions), + ALG(PROV_NAMES_DES_EDE_CBC, ossl_tdes_ede2_cbc_functions), + ALG(PROV_NAMES_DES_EDE_OFB, ossl_tdes_ede2_ofb_functions), + ALG(PROV_NAMES_DES_EDE_CFB, ossl_tdes_ede2_cfb_functions), #endif /* OPENSSL_NO_DES */ #ifndef OPENSSL_NO_SM4 - ALG("SM4-ECB", ossl_sm4128ecb_functions), - ALG("SM4-CBC:SM4", ossl_sm4128cbc_functions), - ALG("SM4-CTR", ossl_sm4128ctr_functions), - ALG("SM4-OFB:SM4-OFB128", ossl_sm4128ofb128_functions), - ALG("SM4-CFB:SM4-CFB128", ossl_sm4128cfb128_functions), + ALG(PROV_NAMES_SM4_ECB, ossl_sm4128ecb_functions), + ALG(PROV_NAMES_SM4_CBC, ossl_sm4128cbc_functions), + ALG(PROV_NAMES_SM4_CTR, ossl_sm4128ctr_functions), + ALG(PROV_NAMES_SM4_OFB, ossl_sm4128ofb128_functions), + ALG(PROV_NAMES_SM4_CFB, ossl_sm4128cfb128_functions), #endif /* OPENSSL_NO_SM4 */ #ifndef OPENSSL_NO_CHACHA - ALG("ChaCha20", ossl_chacha20_functions), + ALG(PROV_NAMES_ChaCha20, ossl_chacha20_functions), # ifndef OPENSSL_NO_POLY1305 - ALG("ChaCha20-Poly1305", ossl_chacha20_ossl_poly1305_functions), + ALG(PROV_NAMES_ChaCha20_Poly1305, ossl_chacha20_ossl_poly1305_functions), # endif /* OPENSSL_NO_POLY1305 */ #endif /* OPENSSL_NO_CHACHA */ { { NULL, NULL, NULL }, NULL } @@ -306,154 +299,154 @@ static OSSL_ALGORITHM exported_ciphers[OSSL_NELEM(deflt_ciphers)]; static const OSSL_ALGORITHM deflt_macs[] = { #ifndef OPENSSL_NO_BLAKE2 - { "BLAKE2BMAC", "provider=default", ossl_blake2bmac_functions }, - { "BLAKE2SMAC", "provider=default", ossl_blake2smac_functions }, + { PROV_NAMES_BLAKE2BMAC, "provider=default", ossl_blake2bmac_functions }, + { PROV_NAMES_BLAKE2SMAC, "provider=default", ossl_blake2smac_functions }, #endif #ifndef OPENSSL_NO_CMAC - { "CMAC", "provider=default", ossl_cmac_functions }, + { PROV_NAMES_CMAC, "provider=default", ossl_cmac_functions }, #endif - { "GMAC", "provider=default", ossl_gmac_functions }, - { "HMAC", "provider=default", ossl_hmac_functions }, - { "KMAC-128:KMAC128", "provider=default", ossl_kmac128_functions }, - { "KMAC-256:KMAC256", "provider=default", ossl_kmac256_functions }, + { PROV_NAMES_GMAC, "provider=default", ossl_gmac_functions }, + { PROV_NAMES_HMAC, "provider=default", ossl_hmac_functions }, + { PROV_NAMES_KMAC_128, "provider=default", ossl_kmac128_functions }, + { PROV_NAMES_KMAC_256, "provider=default", ossl_kmac256_functions }, #ifndef OPENSSL_NO_SIPHASH - { "SIPHASH", "provider=default", ossl_siphash_functions }, + { PROV_NAMES_SIPHASH, "provider=default", ossl_siphash_functions }, #endif #ifndef OPENSSL_NO_POLY1305 - { "POLY1305", "provider=default", ossl_poly1305_functions }, + { PROV_NAMES_POLY1305, "provider=default", ossl_poly1305_functions }, #endif { NULL, NULL, NULL } }; static const OSSL_ALGORITHM deflt_kdfs[] = { - { "HKDF", "provider=default", ossl_kdf_hkdf_functions }, - { "SSKDF", "provider=default", ossl_kdf_sskdf_functions }, - { "PBKDF2", "provider=default", ossl_kdf_pbkdf2_functions }, - { "PKCS12KDF", "provider=default", ossl_kdf_pkcs12_functions }, - { "SSHKDF", "provider=default", ossl_kdf_sshkdf_functions }, - { "X963KDF:X942KDF-CONCAT", "provider=default", ossl_kdf_x963_kdf_functions }, - { "TLS1-PRF", "provider=default", ossl_kdf_tls1_prf_functions }, - { "KBKDF", "provider=default", ossl_kdf_kbkdf_functions }, - { "X942KDF-ASN1:X942KDF", "provider=default", ossl_kdf_x942_kdf_functions }, + { PROV_NAMES_HKDF, "provider=default", ossl_kdf_hkdf_functions }, + { PROV_NAMES_SSKDF, "provider=default", ossl_kdf_sskdf_functions }, + { PROV_NAMES_PBKDF2, "provider=default", ossl_kdf_pbkdf2_functions }, + { PROV_NAMES_PKCS12KDF, "provider=default", ossl_kdf_pkcs12_functions }, + { PROV_NAMES_SSHKDF, "provider=default", ossl_kdf_sshkdf_functions }, + { PROV_NAMES_X963KDF, "provider=default", ossl_kdf_x963_kdf_functions }, + { PROV_NAMES_TLS1_PRF, "provider=default", ossl_kdf_tls1_prf_functions }, + { PROV_NAMES_KBKDF, "provider=default", ossl_kdf_kbkdf_functions }, + { PROV_NAMES_X942KDF_ASN1, "provider=default", ossl_kdf_x942_kdf_functions }, #ifndef OPENSSL_NO_SCRYPT - { "SCRYPT:id-scrypt", "provider=default", ossl_kdf_scrypt_functions }, + { PROV_NAMES_SCRYPT, "provider=default", ossl_kdf_scrypt_functions }, #endif - { "KRB5KDF", "provider=default", ossl_kdf_krb5kdf_functions }, + { PROV_NAMES_KRB5KDF, "provider=default", ossl_kdf_krb5kdf_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM deflt_keyexch[] = { #ifndef OPENSSL_NO_DH - { "DH:dhKeyAgreement", "provider=default", ossl_dh_keyexch_functions }, + { PROV_NAMES_DH, "provider=default", ossl_dh_keyexch_functions }, #endif #ifndef OPENSSL_NO_EC - { "ECDH", "provider=default", ossl_ecdh_keyexch_functions }, - { "X25519", "provider=default", ossl_x25519_keyexch_functions }, - { "X448", "provider=default", ossl_x448_keyexch_functions }, + { PROV_NAMES_ECDH, "provider=default", ossl_ecdh_keyexch_functions }, + { PROV_NAMES_X25519, "provider=default", ossl_x25519_keyexch_functions }, + { PROV_NAMES_X448, "provider=default", ossl_x448_keyexch_functions }, #endif - { "TLS1-PRF", "provider=default", ossl_kdf_tls1_prf_keyexch_functions }, - { "HKDF", "provider=default", ossl_kdf_hkdf_keyexch_functions }, - { "SCRYPT:id-scrypt", "provider=default", + { PROV_NAMES_TLS1_PRF, "provider=default", ossl_kdf_tls1_prf_keyexch_functions }, + { PROV_NAMES_HKDF, "provider=default", ossl_kdf_hkdf_keyexch_functions }, + { PROV_NAMES_SCRYPT, "provider=default", ossl_kdf_scrypt_keyexch_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM deflt_rands[] = { - { "CTR-DRBG", "provider=default", ossl_drbg_ctr_functions }, - { "HASH-DRBG", "provider=default", ossl_drbg_hash_functions }, - { "HMAC-DRBG", "provider=default", ossl_drbg_ossl_hmac_functions }, - { "SEED-SRC", "provider=default", ossl_seed_src_functions }, - { "TEST-RAND", "provider=default", ossl_test_rng_functions }, + { PROV_NAMES_CTR_DRBG, "provider=default", ossl_drbg_ctr_functions }, + { PROV_NAMES_HASH_DRBG, "provider=default", ossl_drbg_hash_functions }, + { PROV_NAMES_HMAC_DRBG, "provider=default", ossl_drbg_ossl_hmac_functions }, + { PROV_NAMES_SEED_SRC, "provider=default", ossl_seed_src_functions }, + { PROV_NAMES_TEST_RAND, "provider=default", ossl_test_rng_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM deflt_signature[] = { #ifndef OPENSSL_NO_DSA - { "DSA:dsaEncryption", "provider=default", ossl_dsa_signature_functions }, + { PROV_NAMES_DSA, "provider=default", ossl_dsa_signature_functions }, #endif - { "RSA:rsaEncryption", "provider=default", ossl_rsa_signature_functions }, + { PROV_NAMES_RSA, "provider=default", ossl_rsa_signature_functions }, #ifndef OPENSSL_NO_EC - { "ED25519", "provider=default", ossl_ed25519_signature_functions }, - { "ED448", "provider=default", ossl_ed448_signature_functions }, - { "ECDSA", "provider=default", ossl_ecdsa_signature_functions }, + { PROV_NAMES_ED25519, "provider=default", ossl_ed25519_signature_functions }, + { PROV_NAMES_ED448, "provider=default", ossl_ed448_signature_functions }, + { PROV_NAMES_ECDSA, "provider=default", ossl_ecdsa_signature_functions }, # ifndef OPENSSL_NO_SM2 - { "SM2", "provider=default", ossl_sm2_signature_functions }, + { PROV_NAMES_SM2, "provider=default", ossl_sm2_signature_functions }, # endif #endif - { "HMAC", "provider=default", ossl_mac_legacy_hmac_signature_functions }, - { "SIPHASH", "provider=default", + { PROV_NAMES_HMAC, "provider=default", ossl_mac_legacy_hmac_signature_functions }, + { PROV_NAMES_SIPHASH, "provider=default", ossl_mac_legacy_siphash_signature_functions }, #ifndef OPENSSL_NO_POLY1305 - { "POLY1305", "provider=default", + { PROV_NAMES_POLY1305, "provider=default", ossl_mac_legacy_poly1305_signature_functions }, #endif #ifndef OPENSSL_NO_CMAC - { "CMAC", "provider=default", ossl_mac_legacy_cmac_signature_functions }, + { PROV_NAMES_CMAC, "provider=default", ossl_mac_legacy_cmac_signature_functions }, #endif { NULL, NULL, NULL } }; static const OSSL_ALGORITHM deflt_asym_cipher[] = { - { "RSA:rsaEncryption", "provider=default", ossl_rsa_asym_cipher_functions }, + { PROV_NAMES_RSA, "provider=default", ossl_rsa_asym_cipher_functions }, #ifndef OPENSSL_NO_SM2 - { "SM2", "provider=default", ossl_sm2_asym_cipher_functions }, + { PROV_NAMES_SM2, "provider=default", ossl_sm2_asym_cipher_functions }, #endif { NULL, NULL, NULL } }; static const OSSL_ALGORITHM deflt_asym_kem[] = { - { "RSA", "provider=default", ossl_rsa_asym_kem_functions }, + { PROV_NAMES_RSA, "provider=default", ossl_rsa_asym_kem_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM deflt_keymgmt[] = { #ifndef OPENSSL_NO_DH - { "DH:dhKeyAgreement", "provider=default", ossl_dh_keymgmt_functions, - "OpenSSL PKCS#3 DH implementation" }, - { "DHX:X9.42 DH:dhpublicnumber", "provider=default", - ossl_dhx_keymgmt_functions, "OpenSSL X9.42 DH implementation" }, + { PROV_NAMES_DH, "provider=default", ossl_dh_keymgmt_functions, + PROV_DESCS_DH }, + { PROV_NAMES_DHX, "provider=default", ossl_dhx_keymgmt_functions, + PROV_DESCS_DHX }, #endif #ifndef OPENSSL_NO_DSA - { "DSA:dsaEncryption", "provider=default", ossl_dsa_keymgmt_functions, - "OpenSSL DSA implementation" }, + { PROV_NAMES_DSA, "provider=default", ossl_dsa_keymgmt_functions, + PROV_DESCS_DSA}, #endif - { "RSA:rsaEncryption", "provider=default", ossl_rsa_keymgmt_functions, - "OpenSSL RSA implementation" }, - { "RSA-PSS:RSASSA-PSS", "provider=default", ossl_rsapss_keymgmt_functions, - "OpenSSL RSA-PSS implementation" }, + { PROV_NAMES_RSA, "provider=default", ossl_rsa_keymgmt_functions, + PROV_DESCS_RSA }, + { PROV_NAMES_RSA_PSS, "provider=default", ossl_rsapss_keymgmt_functions, + PROV_DESCS_RSA_PSS }, #ifndef OPENSSL_NO_EC - { "EC:id-ecPublicKey", "provider=default", ossl_ec_keymgmt_functions, - "OpenSSL EC implementation" }, - { "X25519", "provider=default", ossl_x25519_keymgmt_functions, - "OpenSSL X25519 implementation" }, - { "X448", "provider=default", ossl_x448_keymgmt_functions, - "OpenSSL X448 implementation" }, - { "ED25519", "provider=default", ossl_ed25519_keymgmt_functions, - "OpenSSL ED25519 implementation" }, - { "ED448", "provider=default", ossl_ed448_keymgmt_functions, - "OpenSSL ED448 implementation" }, + { PROV_NAMES_EC, "provider=default", ossl_ec_keymgmt_functions, + PROV_DESCS_EC }, + { PROV_NAMES_X25519, "provider=default", ossl_x25519_keymgmt_functions, + PROV_DESCS_X25519 }, + { PROV_NAMES_X448, "provider=default", ossl_x448_keymgmt_functions, + PROV_DESCS_X448 }, + { PROV_NAMES_ED25519, "provider=default", ossl_ed25519_keymgmt_functions, + PROV_DESCS_ED25519 }, + { PROV_NAMES_ED448, "provider=default", ossl_ed448_keymgmt_functions, + PROV_DESCS_ED448 }, #endif - { "TLS1-PRF", "provider=default", ossl_kdf_keymgmt_functions, - "OpenSSL TLS1-PRF via EVP_PKEY implementation" }, - { "HKDF", "provider=default", ossl_kdf_keymgmt_functions, - "OpenSSL HKDF via EVP_PKEY implementation" }, - { "SCRYPT:id-scrypt", "provider=default", ossl_kdf_keymgmt_functions, - "OpenSSL SCRYPT via EVP_PKEY implementation" }, - { "HMAC", "provider=default", ossl_mac_legacy_keymgmt_functions, - "OpenSSL HMAC via EVP_PKEY implementation" }, - { "SIPHASH", "provider=default", ossl_mac_legacy_keymgmt_functions, - "OpenSSL SIPHASH via EVP_PKEY implementation" }, + { PROV_NAMES_TLS1_PRF, "provider=default", ossl_kdf_keymgmt_functions, + PROV_DESCS_TLS1_PRF_SIGN }, + { PROV_NAMES_HKDF, "provider=default", ossl_kdf_keymgmt_functions, + PROV_DESCS_HKDF_SIGN }, + { PROV_NAMES_SCRYPT, "provider=default", ossl_kdf_keymgmt_functions, + PROV_DESCS_SCRYPT_SIGN }, + { PROV_NAMES_HMAC, "provider=default", ossl_mac_legacy_keymgmt_functions, + PROV_DESCS_HMAC_SIGN }, + { PROV_NAMES_SIPHASH, "provider=default", ossl_mac_legacy_keymgmt_functions, + PROV_DESCS_SIPHASH_SIGN }, #ifndef OPENSSL_NO_POLY1305 - { "POLY1305", "provider=default", ossl_mac_legacy_keymgmt_functions, - "OpenSSL POLY1305 via EVP_PKEY implementation" }, + { PROV_NAMES_POLY1305, "provider=default", ossl_mac_legacy_keymgmt_functions, + PROV_DESCS_POLY1305_SIGN }, #endif #ifndef OPENSSL_NO_CMAC - { "CMAC", "provider=default", ossl_cossl_mac_legacy_keymgmt_functions, - "OpenSSL CMAC via EVP_PKEY implementation" }, + { PROV_NAMES_CMAC, "provider=default", ossl_cmac_legacy_keymgmt_functions, + PROV_DESCS_CMAC_SIGN }, #endif #ifndef OPENSSL_NO_SM2 - { "SM2", "provider=default", ossl_sm2_keymgmt_functions, - "OpenSSL SM2 implementation" }, + { PROV_NAMES_SM2, "provider=default", ossl_sm2_keymgmt_functions, + PROV_DESCS_SM2 }, #endif { NULL, NULL, NULL } }; diff --git a/providers/fips/fipsprov.c b/providers/fips/fipsprov.c index aeea8f296f..a7d335b78a 100644 --- a/providers/fips/fipsprov.c +++ b/providers/fips/fipsprov.c @@ -16,6 +16,7 @@ #include #include "internal/cryptlib.h" #include "prov/implementations.h" +#include "prov/names.h" #include "prov/provider_ctx.h" #include "prov/providercommon.h" #include "prov/provider_util.h" @@ -239,103 +240,93 @@ static int fips_self_test(void *provctx) */ static const OSSL_ALGORITHM fips_digests[] = { /* Our primary name:NiST name[:our older names] */ - { "SHA1:SHA-1:SSL3-SHA1", FIPS_DEFAULT_PROPERTIES, ossl_sha1_functions }, - { "SHA2-224:SHA-224:SHA224", FIPS_DEFAULT_PROPERTIES, - ossl_sha224_functions }, - { "SHA2-256:SHA-256:SHA256", FIPS_DEFAULT_PROPERTIES, - ossl_sha256_functions }, - { "SHA2-384:SHA-384:SHA384", FIPS_DEFAULT_PROPERTIES, - ossl_sha384_functions }, - { "SHA2-512:SHA-512:SHA512", FIPS_DEFAULT_PROPERTIES, - ossl_sha512_functions }, - { "SHA2-512/224:SHA-512/224:SHA512-224", FIPS_DEFAULT_PROPERTIES, + { PROV_NAMES_SHA1, FIPS_DEFAULT_PROPERTIES, ossl_sha1_functions }, + { PROV_NAMES_SHA2_224, FIPS_DEFAULT_PROPERTIES, ossl_sha224_functions }, + { PROV_NAMES_SHA2_256, FIPS_DEFAULT_PROPERTIES, ossl_sha256_functions }, + { PROV_NAMES_SHA2_384, FIPS_DEFAULT_PROPERTIES, ossl_sha384_functions }, + { PROV_NAMES_SHA2_512, FIPS_DEFAULT_PROPERTIES, ossl_sha512_functions }, + { PROV_NAMES_SHA2_512_224, FIPS_DEFAULT_PROPERTIES, ossl_sha512_224_functions }, - { "SHA2-512/256:SHA-512/256:SHA512-256", FIPS_DEFAULT_PROPERTIES, + { PROV_NAMES_SHA2_512_256, FIPS_DEFAULT_PROPERTIES, ossl_sha512_256_functions }, /* We agree with NIST here, so one name only */ - { "SHA3-224", FIPS_DEFAULT_PROPERTIES, ossl_sha3_224_functions }, - { "SHA3-256", FIPS_DEFAULT_PROPERTIES, ossl_sha3_256_functions }, - { "SHA3-384", FIPS_DEFAULT_PROPERTIES, ossl_sha3_384_functions }, - { "SHA3-512", FIPS_DEFAULT_PROPERTIES, ossl_sha3_512_functions }, + { PROV_NAMES_SHA3_224, FIPS_DEFAULT_PROPERTIES, ossl_sha3_224_functions }, + { PROV_NAMES_SHA3_256, FIPS_DEFAULT_PROPERTIES, ossl_sha3_256_functions }, + { PROV_NAMES_SHA3_384, FIPS_DEFAULT_PROPERTIES, ossl_sha3_384_functions }, + { PROV_NAMES_SHA3_512, FIPS_DEFAULT_PROPERTIES, ossl_sha3_512_functions }, - { "SHAKE-128:SHAKE128", FIPS_DEFAULT_PROPERTIES, ossl_shake_128_functions }, - { "SHAKE-256:SHAKE256", FIPS_DEFAULT_PROPERTIES, ossl_shake_256_functions }, + { PROV_NAMES_SHAKE_128, FIPS_DEFAULT_PROPERTIES, ossl_shake_128_functions }, + { PROV_NAMES_SHAKE_256, FIPS_DEFAULT_PROPERTIES, ossl_shake_256_functions }, /* * KECCAK-KMAC-128 and KECCAK-KMAC-256 as hashes are mostly useful for * KMAC128 and KMAC256. */ - { "KECCAK-KMAC-128:KECCAK-KMAC128", FIPS_DEFAULT_PROPERTIES, + { PROV_NAMES_KECCAK_KMAC_128, FIPS_DEFAULT_PROPERTIES, ossl_keccak_kmac_128_functions }, - { "KECCAK-KMAC-256:KECCAK-KMAC256", FIPS_DEFAULT_PROPERTIES, + { PROV_NAMES_KECCAK_KMAC_256, FIPS_DEFAULT_PROPERTIES, ossl_keccak_kmac_256_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM_CAPABLE fips_ciphers[] = { /* Our primary name[:ASN.1 OID name][:our older names] */ - ALG("AES-256-ECB", ossl_aes256ecb_functions), - ALG("AES-192-ECB", ossl_aes192ecb_functions), - ALG("AES-128-ECB", ossl_aes128ecb_functions), - ALG("AES-256-CBC:AES256", ossl_aes256cbc_functions), - ALG("AES-192-CBC:AES192", ossl_aes192cbc_functions), - ALG("AES-128-CBC:AES128", ossl_aes128cbc_functions), - ALG("AES-256-CBC-CTS", ossl_aes256cbc_cts_functions), - ALG("AES-192-CBC-CTS", ossl_aes192cbc_cts_functions), - ALG("AES-128-CBC-CTS", ossl_aes128cbc_cts_functions), - ALG("AES-256-OFB", ossl_aes256ofb_functions), - ALG("AES-192-OFB", ossl_aes192ofb_functions), - ALG("AES-128-OFB", ossl_aes128ofb_functions), - ALG("AES-256-CFB", ossl_aes256cfb_functions), - ALG("AES-192-CFB", ossl_aes192cfb_functions), - ALG("AES-128-CFB", ossl_aes128cfb_functions), - ALG("AES-256-CFB1", ossl_aes256cfb1_functions), - ALG("AES-192-CFB1", ossl_aes192cfb1_functions), - ALG("AES-128-CFB1", ossl_aes128cfb1_functions), - ALG("AES-256-CFB8", ossl_aes256cfb8_functions), - ALG("AES-192-CFB8", ossl_aes192cfb8_functions), - ALG("AES-128-CFB8", ossl_aes128cfb8_functions), - ALG("AES-256-CTR", ossl_aes256ctr_functions), - ALG("AES-192-CTR", ossl_aes192ctr_functions), - ALG("AES-128-CTR", ossl_aes128ctr_functions), - ALG("AES-256-XTS", ossl_aes256xts_functions), - ALG("AES-128-XTS", ossl_aes128xts_functions), - ALG("AES-256-GCM:id-aes256-GCM", ossl_aes256gcm_functions), - ALG("AES-192-GCM:id-aes192-GCM", ossl_aes192gcm_functions), - ALG("AES-128-GCM:id-aes128-GCM", ossl_aes128gcm_functions), - ALG("AES-256-CCM:id-aes256-CCM", ossl_aes256ccm_functions), - ALG("AES-192-CCM:id-aes192-CCM", ossl_aes192ccm_functions), - ALG("AES-128-CCM:id-aes128-CCM", ossl_aes128ccm_functions), - ALG("AES-256-WRAP:id-aes256-wrap:AES256-WRAP", ossl_aes256wrap_functions), - ALG("AES-192-WRAP:id-aes192-wrap:AES192-WRAP", ossl_aes192wrap_functions), - ALG("AES-128-WRAP:id-aes128-wrap:AES128-WRAP", ossl_aes128wrap_functions), - ALG("AES-256-WRAP-PAD:id-aes256-wrap-pad:AES256-WRAP-PAD", - ossl_aes256wrappad_functions), - ALG("AES-192-WRAP-PAD:id-aes192-wrap-pad:AES192-WRAP-PAD", - ossl_aes192wrappad_functions), - ALG("AES-128-WRAP-PAD:id-aes128-wrap-pad:AES128-WRAP-PAD", - ossl_aes128wrappad_functions), - ALG("AES-256-WRAP-INV:AES256-WRAP-INV", ossl_aes256wrapinv_functions), - ALG("AES-192-WRAP-INV:AES192-WRAP-INV", ossl_aes192wrapinv_functions), - ALG("AES-128-WRAP-INV:AES128-WRAP-INV", ossl_aes128wrapinv_functions), - ALG("AES-256-WRAP-PAD-INV:AES256-WRAP-PAD-INV", - ossl_aes256wrappadinv_functions), - ALG("AES-192-WRAP-PAD-INV:AES192-WRAP-PAD-INV", - ossl_aes192wrappadinv_functions), - ALG("AES-128-WRAP-PAD-INV:AES128-WRAP-PAD-INV", - ossl_aes128wrappadinv_functions), - ALGC("AES-128-CBC-HMAC-SHA1", ossl_aes128cbc_hmac_sha1_functions, + ALG(PROV_NAMES_AES_256_ECB, ossl_aes256ecb_functions), + ALG(PROV_NAMES_AES_192_ECB, ossl_aes192ecb_functions), + ALG(PROV_NAMES_AES_128_ECB, ossl_aes128ecb_functions), + ALG(PROV_NAMES_AES_256_CBC, ossl_aes256cbc_functions), + ALG(PROV_NAMES_AES_192_CBC, ossl_aes192cbc_functions), + ALG(PROV_NAMES_AES_128_CBC, ossl_aes128cbc_functions), + ALG(PROV_NAMES_AES_256_CBC_CTS, ossl_aes256cbc_cts_functions), + ALG(PROV_NAMES_AES_192_CBC_CTS, ossl_aes192cbc_cts_functions), + ALG(PROV_NAMES_AES_128_CBC_CTS, ossl_aes128cbc_cts_functions), + ALG(PROV_NAMES_AES_256_OFB, ossl_aes256ofb_functions), + ALG(PROV_NAMES_AES_192_OFB, ossl_aes192ofb_functions), + ALG(PROV_NAMES_AES_128_OFB, ossl_aes128ofb_functions), + ALG(PROV_NAMES_AES_256_CFB, ossl_aes256cfb_functions), + ALG(PROV_NAMES_AES_192_CFB, ossl_aes192cfb_functions), + ALG(PROV_NAMES_AES_128_CFB, ossl_aes128cfb_functions), + ALG(PROV_NAMES_AES_256_CFB1, ossl_aes256cfb1_functions), + ALG(PROV_NAMES_AES_192_CFB1, ossl_aes192cfb1_functions), + ALG(PROV_NAMES_AES_128_CFB1, ossl_aes128cfb1_functions), + ALG(PROV_NAMES_AES_256_CFB8, ossl_aes256cfb8_functions), + ALG(PROV_NAMES_AES_192_CFB8, ossl_aes192cfb8_functions), + ALG(PROV_NAMES_AES_128_CFB8, ossl_aes128cfb8_functions), + ALG(PROV_NAMES_AES_256_CTR, ossl_aes256ctr_functions), + ALG(PROV_NAMES_AES_192_CTR, ossl_aes192ctr_functions), + ALG(PROV_NAMES_AES_128_CTR, ossl_aes128ctr_functions), + ALG(PROV_NAMES_AES_256_XTS, ossl_aes256xts_functions), + ALG(PROV_NAMES_AES_128_XTS, ossl_aes128xts_functions), + ALG(PROV_NAMES_AES_256_GCM, ossl_aes256gcm_functions), + ALG(PROV_NAMES_AES_192_GCM, ossl_aes192gcm_functions), + ALG(PROV_NAMES_AES_128_GCM, ossl_aes128gcm_functions), + ALG(PROV_NAMES_AES_256_CCM, ossl_aes256ccm_functions), + ALG(PROV_NAMES_AES_192_CCM, ossl_aes192ccm_functions), + ALG(PROV_NAMES_AES_128_CCM, ossl_aes128ccm_functions), + ALG(PROV_NAMES_AES_256_WRAP, ossl_aes256wrap_functions), + ALG(PROV_NAMES_AES_192_WRAP, ossl_aes192wrap_functions), + ALG(PROV_NAMES_AES_128_WRAP, ossl_aes128wrap_functions), + ALG(PROV_NAMES_AES_256_WRAP_PAD, ossl_aes256wrappad_functions), + ALG(PROV_NAMES_AES_192_WRAP_PAD, ossl_aes192wrappad_functions), + ALG(PROV_NAMES_AES_128_WRAP_PAD, ossl_aes128wrappad_functions), + ALG(PROV_NAMES_AES_256_WRAP_INV, ossl_aes256wrapinv_functions), + ALG(PROV_NAMES_AES_192_WRAP_INV, ossl_aes192wrapinv_functions), + ALG(PROV_NAMES_AES_128_WRAP_INV, ossl_aes128wrapinv_functions), + ALG(PROV_NAMES_AES_256_WRAP_PAD_INV, ossl_aes256wrappadinv_functions), + ALG(PROV_NAMES_AES_192_WRAP_PAD_INV, ossl_aes192wrappadinv_functions), + ALG(PROV_NAMES_AES_128_WRAP_PAD_INV, ossl_aes128wrappadinv_functions), + ALGC(PROV_NAMES_AES_128_CBC_HMAC_SHA1, ossl_aes128cbc_hmac_sha1_functions, ossl_cipher_capable_aes_cbc_hmac_sha1), - ALGC("AES-256-CBC-HMAC-SHA1", ossl_aes256cbc_hmac_sha1_functions, + ALGC(PROV_NAMES_AES_256_CBC_HMAC_SHA1, ossl_aes256cbc_hmac_sha1_functions, ossl_cipher_capable_aes_cbc_hmac_sha1), - ALGC("AES-128-CBC-HMAC-SHA256", ossl_aes128cbc_hmac_sha256_functions, + ALGC(PROV_NAMES_AES_128_CBC_HMAC_SHA256, ossl_aes128cbc_hmac_sha256_functions, ossl_cipher_capable_aes_cbc_hmac_sha256), - ALGC("AES-256-CBC-HMAC-SHA256", ossl_aes256cbc_hmac_sha256_functions, + ALGC(PROV_NAMES_AES_256_CBC_HMAC_SHA256, ossl_aes256cbc_hmac_sha256_functions, ossl_cipher_capable_aes_cbc_hmac_sha256), #ifndef OPENSSL_NO_DES - ALG("DES-EDE3-ECB:DES-EDE3", ossl_tdes_ede3_ecb_functions), - ALG("DES-EDE3-CBC:DES3", ossl_tdes_ede3_cbc_functions), + ALG(PROV_NAMES_DES_EDE3_ECB, ossl_tdes_ede3_ecb_functions), + ALG(PROV_NAMES_DES_EDE3_CBC, ossl_tdes_ede3_cbc_functions), #endif /* OPENSSL_NO_DES */ { { NULL, NULL, NULL }, NULL } }; @@ -343,120 +334,118 @@ static OSSL_ALGORITHM exported_fips_ciphers[OSSL_NELEM(fips_ciphers)]; static const OSSL_ALGORITHM fips_macs[] = { #ifndef OPENSSL_NO_CMAC - { "CMAC", FIPS_DEFAULT_PROPERTIES, ossl_cmac_functions }, + { PROV_NAMES_CMAC, FIPS_DEFAULT_PROPERTIES, ossl_cmac_functions }, #endif - { "GMAC", FIPS_DEFAULT_PROPERTIES, ossl_gmac_functions }, - { "HMAC", FIPS_DEFAULT_PROPERTIES, ossl_hmac_functions }, - { "KMAC-128:KMAC128", FIPS_DEFAULT_PROPERTIES, ossl_kmac128_functions }, - { "KMAC-256:KMAC256", FIPS_DEFAULT_PROPERTIES, ossl_kmac256_functions }, + { PROV_NAMES_GMAC, FIPS_DEFAULT_PROPERTIES, ossl_gmac_functions }, + { PROV_NAMES_HMAC, FIPS_DEFAULT_PROPERTIES, ossl_hmac_functions }, + { PROV_NAMES_KMAC_128, FIPS_DEFAULT_PROPERTIES, ossl_kmac128_functions }, + { PROV_NAMES_KMAC_256, FIPS_DEFAULT_PROPERTIES, ossl_kmac256_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM fips_kdfs[] = { - { "HKDF", FIPS_DEFAULT_PROPERTIES, ossl_kdf_hkdf_functions }, - { "SSKDF", FIPS_DEFAULT_PROPERTIES, ossl_kdf_sskdf_functions }, - { "PBKDF2", FIPS_DEFAULT_PROPERTIES, ossl_kdf_pbkdf2_functions }, - { "SSHKDF", FIPS_DEFAULT_PROPERTIES, ossl_kdf_sshkdf_functions }, - { "X963KDF:X942KDF-CONCAT", FIPS_DEFAULT_PROPERTIES, + { PROV_NAMES_HKDF, FIPS_DEFAULT_PROPERTIES, ossl_kdf_hkdf_functions }, + { PROV_NAMES_SSKDF, FIPS_DEFAULT_PROPERTIES, ossl_kdf_sskdf_functions }, + { PROV_NAMES_PBKDF2, FIPS_DEFAULT_PROPERTIES, ossl_kdf_pbkdf2_functions }, + { PROV_NAMES_SSHKDF, FIPS_DEFAULT_PROPERTIES, ossl_kdf_sshkdf_functions }, + { PROV_NAMES_X963KDF, FIPS_DEFAULT_PROPERTIES, ossl_kdf_x963_kdf_functions }, - { "X942KDF-ASN1:X942KDF", FIPS_DEFAULT_PROPERTIES, + { PROV_NAMES_X942KDF_ASN1, FIPS_DEFAULT_PROPERTIES, ossl_kdf_x942_kdf_functions }, - { "TLS1-PRF", FIPS_DEFAULT_PROPERTIES, ossl_kdf_tls1_prf_functions }, - { "KBKDF", FIPS_DEFAULT_PROPERTIES, ossl_kdf_kbkdf_functions }, + { PROV_NAMES_TLS1_PRF, FIPS_DEFAULT_PROPERTIES, + ossl_kdf_tls1_prf_functions }, + { PROV_NAMES_KBKDF, FIPS_DEFAULT_PROPERTIES, ossl_kdf_kbkdf_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM fips_rands[] = { - { "CTR-DRBG", FIPS_DEFAULT_PROPERTIES, ossl_drbg_ctr_functions }, - { "HASH-DRBG", FIPS_DEFAULT_PROPERTIES, ossl_drbg_hash_functions }, - { "HMAC-DRBG", FIPS_DEFAULT_PROPERTIES, ossl_drbg_ossl_hmac_functions }, - { "TEST-RAND", FIPS_UNAPPROVED_PROPERTIES, ossl_test_rng_functions }, + { PROV_NAMES_CTR_DRBG, FIPS_DEFAULT_PROPERTIES, ossl_drbg_ctr_functions }, + { PROV_NAMES_HASH_DRBG, FIPS_DEFAULT_PROPERTIES, ossl_drbg_hash_functions }, + { PROV_NAMES_HMAC_DRBG, FIPS_DEFAULT_PROPERTIES, ossl_drbg_ossl_hmac_functions }, + { PROV_NAMES_TEST_RAND, FIPS_UNAPPROVED_PROPERTIES, ossl_test_rng_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM fips_keyexch[] = { #ifndef OPENSSL_NO_DH - { "DH:dhKeyAgreement", FIPS_DEFAULT_PROPERTIES, ossl_dh_keyexch_functions }, + { PROV_NAMES_DH, FIPS_DEFAULT_PROPERTIES, ossl_dh_keyexch_functions }, #endif #ifndef OPENSSL_NO_EC - { "ECDH", FIPS_DEFAULT_PROPERTIES, ossl_ecdh_keyexch_functions }, - { "X25519", FIPS_DEFAULT_PROPERTIES, ossl_x25519_keyexch_functions }, - { "X448", FIPS_DEFAULT_PROPERTIES, ossl_x448_keyexch_functions }, + { PROV_NAMES_ECDH, FIPS_DEFAULT_PROPERTIES, ossl_ecdh_keyexch_functions }, + { PROV_NAMES_X25519, FIPS_DEFAULT_PROPERTIES, ossl_x25519_keyexch_functions }, + { PROV_NAMES_X448, FIPS_DEFAULT_PROPERTIES, ossl_x448_keyexch_functions }, #endif - { "TLS1-PRF", FIPS_DEFAULT_PROPERTIES, + { PROV_NAMES_TLS1_PRF, FIPS_DEFAULT_PROPERTIES, ossl_kdf_tls1_prf_keyexch_functions }, - { "HKDF", FIPS_DEFAULT_PROPERTIES, ossl_kdf_hkdf_keyexch_functions }, + { PROV_NAMES_HKDF, FIPS_DEFAULT_PROPERTIES, ossl_kdf_hkdf_keyexch_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM fips_signature[] = { #ifndef OPENSSL_NO_DSA - { "DSA:dsaEncryption", FIPS_DEFAULT_PROPERTIES, - ossl_dsa_signature_functions }, + { PROV_NAMES_DSA, FIPS_DEFAULT_PROPERTIES, ossl_dsa_signature_functions }, #endif - { "RSA:rsaEncryption", FIPS_DEFAULT_PROPERTIES, - ossl_rsa_signature_functions }, + { PROV_NAMES_RSA, FIPS_DEFAULT_PROPERTIES, ossl_rsa_signature_functions }, #ifndef OPENSSL_NO_EC - { "ED25519", FIPS_DEFAULT_PROPERTIES, ossl_ed25519_signature_functions }, - { "ED448", FIPS_DEFAULT_PROPERTIES, ossl_ed448_signature_functions }, - { "ECDSA", FIPS_DEFAULT_PROPERTIES, ossl_ecdsa_signature_functions }, + { PROV_NAMES_ED25519, FIPS_DEFAULT_PROPERTIES, ossl_ed25519_signature_functions }, + { PROV_NAMES_ED448, FIPS_DEFAULT_PROPERTIES, ossl_ed448_signature_functions }, + { PROV_NAMES_ECDSA, FIPS_DEFAULT_PROPERTIES, ossl_ecdsa_signature_functions }, #endif - { "HMAC", FIPS_DEFAULT_PROPERTIES, + { PROV_NAMES_HMAC, FIPS_DEFAULT_PROPERTIES, ossl_mac_legacy_hmac_signature_functions }, #ifndef OPENSSL_NO_CMAC - { "CMAC", FIPS_DEFAULT_PROPERTIES, + { PROV_NAMES_CMAC, FIPS_DEFAULT_PROPERTIES, ossl_mac_legacy_cmac_signature_functions }, #endif { NULL, NULL, NULL } }; static const OSSL_ALGORITHM fips_asym_cipher[] = { - { "RSA:rsaEncryption", FIPS_DEFAULT_PROPERTIES, - ossl_rsa_asym_cipher_functions }, + { PROV_NAMES_RSA, FIPS_DEFAULT_PROPERTIES, ossl_rsa_asym_cipher_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM fips_asym_kem[] = { - { "RSA", FIPS_DEFAULT_PROPERTIES, ossl_rsa_asym_kem_functions }, + { PROV_NAMES_RSA, FIPS_DEFAULT_PROPERTIES, ossl_rsa_asym_kem_functions }, { NULL, NULL, NULL } }; static const OSSL_ALGORITHM fips_keymgmt[] = { #ifndef OPENSSL_NO_DH - { "DH:dhKeyAgreement", FIPS_DEFAULT_PROPERTIES, ossl_dh_keymgmt_functions, - "OpenSSL PKCS#3 DH FIPS implementation" }, - { "DHX:X9.42 DH:dhpublicnumber", FIPS_DEFAULT_PROPERTIES, - ossl_dhx_keymgmt_functions, "OpenSSL X9.42 DH FIPS implementation" }, + { PROV_NAMES_DH, FIPS_DEFAULT_PROPERTIES, ossl_dh_keymgmt_functions, + PROV_DESCS_DH }, + { PROV_NAMES_DHX, FIPS_DEFAULT_PROPERTIES, ossl_dhx_keymgmt_functions, + PROV_DESCS_DHX }, #endif #ifndef OPENSSL_NO_DSA - { "DSA", FIPS_DEFAULT_PROPERTIES, ossl_dsa_keymgmt_functions, - "OpenSSL DSA FIPS implementation" }, + { PROV_NAMES_DSA, FIPS_DEFAULT_PROPERTIES, ossl_dsa_keymgmt_functions, + PROV_DESCS_DSA }, #endif - { "RSA:rsaEncryption", FIPS_DEFAULT_PROPERTIES, - ossl_rsa_keymgmt_functions, "OpenSSL RSA FIPS implementation" }, - { "RSA-PSS:RSASSA-PSS", FIPS_DEFAULT_PROPERTIES, - ossl_rsapss_keymgmt_functions, "OpenSSL RSA-PSS FIPS implementation" }, + { PROV_NAMES_RSA, FIPS_DEFAULT_PROPERTIES, ossl_rsa_keymgmt_functions, + PROV_DESCS_RSA }, + { PROV_NAMES_RSA_PSS, FIPS_DEFAULT_PROPERTIES, + ossl_rsapss_keymgmt_functions, PROV_DESCS_RSA_PSS }, #ifndef OPENSSL_NO_EC - { "EC:id-ecPublicKey", FIPS_DEFAULT_PROPERTIES, ossl_ec_keymgmt_functions, - "OpenSSL EC FIPS implementation" }, - { "X25519", FIPS_DEFAULT_PROPERTIES, ossl_x25519_keymgmt_functions, - "OpenSSL X25519 FIPS implementation" }, - { "X448", FIPS_DEFAULT_PROPERTIES, ossl_x448_keymgmt_functions, - "OpenSSL X448 FIPS implementation" }, - { "ED25519", FIPS_DEFAULT_PROPERTIES, ossl_ed25519_keymgmt_functions, - "OpenSSL ED25519 FIPS implementation" }, - { "ED448", FIPS_DEFAULT_PROPERTIES, ossl_ed448_keymgmt_functions, - "OpenSSL ED448 FIPS implementation" }, + { PROV_NAMES_EC, FIPS_DEFAULT_PROPERTIES, ossl_ec_keymgmt_functions, + PROV_DESCS_EC }, + { PROV_NAMES_X25519, FIPS_DEFAULT_PROPERTIES, ossl_x25519_keymgmt_functions, + PROV_DESCS_X25519 }, + { PROV_NAMES_X448, FIPS_DEFAULT_PROPERTIES, ossl_x448_keymgmt_functions, + PROV_DESCS_X448 }, + { PROV_NAMES_ED25519, FIPS_DEFAULT_PROPERTIES, ossl_ed25519_keymgmt_functions, + PROV_DESCS_ED25519 }, + { PROV_NAMES_ED448, FIPS_DEFAULT_PROPERTIES, ossl_ed448_keymgmt_functions, + PROV_DESCS_ED448 }, #endif - { "TLS1-PRF", FIPS_DEFAULT_PROPERTIES, ossl_kdf_keymgmt_functions, - "OpenSSL TLS1-PRF via EVP_PKEY FIPS implementation" }, - { "HKDF", FIPS_DEFAULT_PROPERTIES, ossl_kdf_keymgmt_functions, - "OpenSSL HKDF via EVP_PKEY FIPS implementation" }, - { "HMAC", FIPS_DEFAULT_PROPERTIES, ossl_mac_legacy_keymgmt_functions, - "OpenSSL HMAC via EVP_PKEY FIPS implementation" }, + { PROV_NAMES_TLS1_PRF, FIPS_DEFAULT_PROPERTIES, ossl_kdf_keymgmt_functions, + PROV_DESCS_TLS1_PRF_SIGN }, + { PROV_NAMES_HKDF, FIPS_DEFAULT_PROPERTIES, ossl_kdf_keymgmt_functions, + PROV_DESCS_HKDF_SIGN }, + { PROV_NAMES_HMAC, FIPS_DEFAULT_PROPERTIES, ossl_mac_legacy_keymgmt_functions, + PROV_DESCS_HMAC_SIGN }, #ifndef OPENSSL_NO_CMAC - { "CMAC", FIPS_DEFAULT_PROPERTIES, ossl_cossl_mac_legacy_keymgmt_functions, - "OpenSSL CMAC via EVP_PKEY FIPS implementation" }, + { PROV_NAMES_CMAC, FIPS_DEFAULT_PROPERTIES, + ossl_cmac_legacy_keymgmt_functions, PROV_DESCS_CMAC_SIGN }, #endif { NULL, NULL, NULL } }; diff --git a/providers/implementations/include/prov/implementations.h b/providers/implementations/include/prov/implementations.h index 20d6b84021..6afea01df0 100644 --- a/providers/implementations/include/prov/implementations.h +++ b/providers/implementations/include/prov/implementations.h @@ -284,7 +284,7 @@ extern const OSSL_DISPATCH ossl_ed448_keymgmt_functions[]; extern const OSSL_DISPATCH ossl_ec_keymgmt_functions[]; extern const OSSL_DISPATCH ossl_kdf_keymgmt_functions[]; extern const OSSL_DISPATCH ossl_mac_legacy_keymgmt_functions[]; -extern const OSSL_DISPATCH ossl_cossl_mac_legacy_keymgmt_functions[]; +extern const OSSL_DISPATCH ossl_cmac_legacy_keymgmt_functions[]; #ifndef OPENSSL_NO_SM2 extern const OSSL_DISPATCH ossl_sm2_keymgmt_functions[]; #endif diff --git a/providers/implementations/include/prov/names.h b/providers/implementations/include/prov/names.h new file mode 100644 index 0000000000..fd39c0229e --- /dev/null +++ b/providers/implementations/include/prov/names.h @@ -0,0 +1,322 @@ +/* + * Copyright 2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* + * Macros for use as names and descriptions in our providers' OSSL_ALGORITHM. + * + * All the strings are formatted the same way: + * + * Our primary name[:other names][:numeric OID] + * + * 'other names' include historical OpenSSL names, NIST names, ASN.1 OBJECT + * IDENTIFIER names, and commonly known aliases. + * + * Where it matters, our primary names follow this format: + * + * ALGNAME[VERSION?][-SUBNAME[VERSION?]?][-SIZE?][-MODE?] + * + * VERSION is only present if there are multiple versions of + * an alg (MD2, MD4, MD5). It may be omitted if there is only + * one version (if a subsequent version is released in the future, + * we can always change the canonical name, and add the old name + * as an alias). + * + * SUBNAME may be present where we are combining multiple + * algorithms together, e.g. MD5-SHA1. + * + * SIZE is only present if multiple versions of an algorithm exist + * with different sizes (e.g. AES-128-CBC, AES-256-CBC) + * + * MODE is only present where applicable. + */ + +/*- + * Symmetric ciphers + * ----------------- + */ +#define PROV_NAMES_AES_256_ECB "AES-256-ECB:2.16.840.1.101.3.4.1.41" +#define PROV_NAMES_AES_192_ECB "AES-192-ECB:2.16.840.1.101.3.4.1.21" +#define PROV_NAMES_AES_128_ECB "AES-128-ECB:2.16.840.1.101.3.4.1.1" +#define PROV_NAMES_AES_256_CBC "AES-256-CBC:AES256:2.16.840.1.101.3.4.1.42" +#define PROV_NAMES_AES_192_CBC "AES-192-CBC:AES192:2.16.840.1.101.3.4.1.22" +#define PROV_NAMES_AES_128_CBC "AES-128-CBC:AES128:2.16.840.1.101.3.4.1.2" +#define PROV_NAMES_AES_256_CBC_CTS "AES-256-CBC-CTS" +#define PROV_NAMES_AES_192_CBC_CTS "AES-192-CBC-CTS" +#define PROV_NAMES_AES_128_CBC_CTS "AES-128-CBC-CTS" +#define PROV_NAMES_AES_256_OFB "AES-256-OFB:2.16.840.1.101.3.4.1.43" +#define PROV_NAMES_AES_192_OFB "AES-192-OFB:2.16.840.1.101.3.4.1.23" +#define PROV_NAMES_AES_128_OFB "AES-128-OFB:2.16.840.1.101.3.4.1.3" +#define PROV_NAMES_AES_256_CFB "AES-256-CFB:2.16.840.1.101.3.4.1.44" +#define PROV_NAMES_AES_192_CFB "AES-192-CFB:2.16.840.1.101.3.4.1.24" +#define PROV_NAMES_AES_128_CFB "AES-128-CFB:2.16.840.1.101.3.4.1.4" +#define PROV_NAMES_AES_256_CFB1 "AES-256-CFB1" +#define PROV_NAMES_AES_192_CFB1 "AES-192-CFB1" +#define PROV_NAMES_AES_128_CFB1 "AES-128-CFB1" +#define PROV_NAMES_AES_256_CFB8 "AES-256-CFB8" +#define PROV_NAMES_AES_192_CFB8 "AES-192-CFB8" +#define PROV_NAMES_AES_128_CFB8 "AES-128-CFB8" +#define PROV_NAMES_AES_256_CTR "AES-256-CTR" +#define PROV_NAMES_AES_192_CTR "AES-192-CTR" +#define PROV_NAMES_AES_128_CTR "AES-128-CTR" +#define PROV_NAMES_AES_256_XTS "AES-256-XTS:1.3.111.2.1619.0.1.2" +#define PROV_NAMES_AES_128_XTS "AES-128-XTS:1.3.111.2.1619.0.1.1" +#define PROV_NAMES_AES_256_GCM "AES-256-GCM:id-aes256-GCM:2.16.840.1.101.3.4.1.46" +#define PROV_NAMES_AES_192_GCM "AES-192-GCM:id-aes192-GCM:2.16.840.1.101.3.4.1.26" +#define PROV_NAMES_AES_128_GCM "AES-128-GCM:id-aes128-GCM:2.16.840.1.101.3.4.1.6" +#define PROV_NAMES_AES_256_CCM "AES-256-CCM:id-aes256-CCM:2.16.840.1.101.3.4.1.47" +#define PROV_NAMES_AES_192_CCM "AES-192-CCM:id-aes192-CCM:2.16.840.1.101.3.4.1.27" +#define PROV_NAMES_AES_128_CCM "AES-128-CCM:id-aes128-CCM:2.16.840.1.101.3.4.1.7" +#define PROV_NAMES_AES_256_WRAP "AES-256-WRAP:id-aes256-wrap:AES256-WRAP:2.16.840.1.101.3.4.1.45" +#define PROV_NAMES_AES_192_WRAP "AES-192-WRAP:id-aes192-wrap:AES192-WRAP:2.16.840.1.101.3.4.1.25" +#define PROV_NAMES_AES_128_WRAP "AES-128-WRAP:id-aes128-wrap:AES128-WRAP:2.16.840.1.101.3.4.1.5" +#define PROV_NAMES_AES_256_WRAP_PAD "AES-256-WRAP-PAD:id-aes256-wrap-pad:AES256-WRAP-PAD:2.16.840.1.101.3.4.1.48" +#define PROV_NAMES_AES_192_WRAP_PAD "AES-192-WRAP-PAD:id-aes192-wrap-pad:AES192-WRAP-PAD:2.16.840.1.101.3.4.1.28" +#define PROV_NAMES_AES_128_WRAP_PAD "AES-128-WRAP-PAD:id-aes128-wrap-pad:AES128-WRAP-PAD:2.16.840.1.101.3.4.1.8" +#define PROV_NAMES_AES_256_WRAP_INV "AES-256-WRAP-INV:AES256-WRAP-INV" +#define PROV_NAMES_AES_192_WRAP_INV "AES-192-WRAP-INV:AES192-WRAP-INV" +#define PROV_NAMES_AES_128_WRAP_INV "AES-128-WRAP-INV:AES128-WRAP-INV" +#define PROV_NAMES_AES_256_WRAP_PAD_INV "AES-256-WRAP-PAD-INV:AES256-WRAP-PAD-INV" +#define PROV_NAMES_AES_192_WRAP_PAD_INV "AES-192-WRAP-PAD-INV:AES192-WRAP-PAD-INV" +#define PROV_NAMES_AES_128_WRAP_PAD_INV "AES-128-WRAP-PAD-INV:AES128-WRAP-PAD-INV" +#define PROV_NAMES_AES_128_CBC_HMAC_SHA1 "AES-128-CBC-HMAC-SHA1" +#define PROV_NAMES_AES_256_CBC_HMAC_SHA1 "AES-256-CBC-HMAC-SHA1" +#define PROV_NAMES_AES_128_CBC_HMAC_SHA256 "AES-128-CBC-HMAC-SHA256" +#define PROV_NAMES_AES_256_CBC_HMAC_SHA256 "AES-256-CBC-HMAC-SHA256" +#define PROV_NAMES_DES_EDE3_ECB "DES-EDE3-ECB:DES-EDE3" +#define PROV_NAMES_DES_EDE3_CBC "DES-EDE3-CBC:DES3:1.2.840.113549.3.7" +#define PROV_NAMES_NULL "NULL" +#define PROV_NAMES_AES_256_OCB "AES-256-OCB" +#define PROV_NAMES_AES_192_OCB "AES-192-OCB" +#define PROV_NAMES_AES_128_OCB "AES-128-OCB" +#define PROV_NAMES_AES_128_SIV "AES-128-SIV" +#define PROV_NAMES_AES_192_SIV "AES-192-SIV" +#define PROV_NAMES_AES_256_SIV "AES-256-SIV" +#define PROV_NAMES_ARIA_256_GCM "ARIA-256-GCM:1.2.410.200046.1.1.36" +#define PROV_NAMES_ARIA_192_GCM "ARIA-192-GCM:1.2.410.200046.1.1.35" +#define PROV_NAMES_ARIA_128_GCM "ARIA-128-GCM:1.2.410.200046.1.1.34" +#define PROV_NAMES_ARIA_256_CCM "ARIA-256-CCM:1.2.410.200046.1.1.39" +#define PROV_NAMES_ARIA_192_CCM "ARIA-192-CCM:1.2.410.200046.1.1.38" +#define PROV_NAMES_ARIA_128_CCM "ARIA-128-CCM:1.2.410.200046.1.1.37" +#define PROV_NAMES_ARIA_256_ECB "ARIA-256-ECB:1.2.410.200046.1.1.11" +#define PROV_NAMES_ARIA_192_ECB "ARIA-192-ECB:1.2.410.200046.1.1.6" +#define PROV_NAMES_ARIA_128_ECB "ARIA-128-ECB:1.2.410.200046.1.1.1" +#define PROV_NAMES_ARIA_256_CBC "ARIA-256-CBC:ARIA256:1.2.410.200046.1.1.12" +#define PROV_NAMES_ARIA_192_CBC "ARIA-192-CBC:ARIA192:1.2.410.200046.1.1.7" +#define PROV_NAMES_ARIA_128_CBC "ARIA-128-CBC:ARIA128:1.2.410.200046.1.1.2" +#define PROV_NAMES_ARIA_256_OFB "ARIA-256-OFB:1.2.410.200046.1.1.14" +#define PROV_NAMES_ARIA_192_OFB "ARIA-192-OFB:1.2.410.200046.1.1.9" +#define PROV_NAMES_ARIA_128_OFB "ARIA-128-OFB:1.2.410.200046.1.1.4" +#define PROV_NAMES_ARIA_256_CFB "ARIA-256-CFB:1.2.410.200046.1.1.13" +#define PROV_NAMES_ARIA_192_CFB "ARIA-192-CFB:1.2.410.200046.1.1.8" +#define PROV_NAMES_ARIA_128_CFB "ARIA-128-CFB:1.2.410.200046.1.1.3" +#define PROV_NAMES_ARIA_256_CFB1 "ARIA-256-CFB1" +#define PROV_NAMES_ARIA_192_CFB1 "ARIA-192-CFB1" +#define PROV_NAMES_ARIA_128_CFB1 "ARIA-128-CFB1" +#define PROV_NAMES_ARIA_256_CFB8 "ARIA-256-CFB8" +#define PROV_NAMES_ARIA_192_CFB8 "ARIA-192-CFB8" +#define PROV_NAMES_ARIA_128_CFB8 "ARIA-128-CFB8" +#define PROV_NAMES_ARIA_256_CTR "ARIA-256-CTR:1.2.410.200046.1.1.15" +#define PROV_NAMES_ARIA_192_CTR "ARIA-192-CTR:1.2.410.200046.1.1.10" +#define PROV_NAMES_ARIA_128_CTR "ARIA-128-CTR:1.2.410.200046.1.1.5" +#define PROV_NAMES_CAMELLIA_256_ECB "CAMELLIA-256-ECB:0.3.4401.5.3.1.9.41" +#define PROV_NAMES_CAMELLIA_192_ECB "CAMELLIA-192-ECB:0.3.4401.5.3.1.9.21" +#define PROV_NAMES_CAMELLIA_128_ECB "CAMELLIA-128-ECB:0.3.4401.5.3.1.9.1" +#define PROV_NAMES_CAMELLIA_256_CBC "CAMELLIA-256-CBC:CAMELLIA256:1.2.392.200011.61.1.1.1.4" +#define PROV_NAMES_CAMELLIA_192_CBC "CAMELLIA-192-CBC:CAMELLIA192:1.2.392.200011.61.1.1.1.3" +#define PROV_NAMES_CAMELLIA_128_CBC "CAMELLIA-128-CBC:CAMELLIA128:1.2.392.200011.61.1.1.1.2" +#define PROV_NAMES_CAMELLIA_256_OFB "CAMELLIA-256-OFB:0.3.4401.5.3.1.9.43" +#define PROV_NAMES_CAMELLIA_192_OFB "CAMELLIA-192-OFB:0.3.4401.5.3.1.9.23" +#define PROV_NAMES_CAMELLIA_128_OFB "CAMELLIA-128-OFB:0.3.4401.5.3.1.9.3" +#define PROV_NAMES_CAMELLIA_256_CFB "CAMELLIA-256-CFB:0.3.4401.5.3.1.9.44" +#define PROV_NAMES_CAMELLIA_192_CFB "CAMELLIA-192-CFB:0.3.4401.5.3.1.9.24" +#define PROV_NAMES_CAMELLIA_128_CFB "CAMELLIA-128-CFB:0.3.4401.5.3.1.9.4" +#define PROV_NAMES_CAMELLIA_256_CFB1 "CAMELLIA-256-CFB1" +#define PROV_NAMES_CAMELLIA_192_CFB1 "CAMELLIA-192-CFB1" +#define PROV_NAMES_CAMELLIA_128_CFB1 "CAMELLIA-128-CFB1" +#define PROV_NAMES_CAMELLIA_256_CFB8 "CAMELLIA-256-CFB8" +#define PROV_NAMES_CAMELLIA_192_CFB8 "CAMELLIA-192-CFB8" +#define PROV_NAMES_CAMELLIA_128_CFB8 "CAMELLIA-128-CFB8" +#define PROV_NAMES_CAMELLIA_256_CTR "CAMELLIA-256-CTR:0.3.4401.5.3.1.9.49" +#define PROV_NAMES_CAMELLIA_192_CTR "CAMELLIA-192-CTR:0.3.4401.5.3.1.9.29" +#define PROV_NAMES_CAMELLIA_128_CTR "CAMELLIA-128-CTR:0.3.4401.5.3.1.9.9" +#define PROV_NAMES_DES_EDE3_OFB "DES-EDE3-OFB" +#define PROV_NAMES_DES_EDE3_CFB "DES-EDE3-CFB" +#define PROV_NAMES_DES_EDE3_CFB8 "DES-EDE3-CFB8" +#define PROV_NAMES_DES_EDE3_CFB1 "DES-EDE3-CFB1" +#define PROV_NAMES_DES3_WRAP "DES3-WRAP:id-smime-alg-CMS3DESwrap:1.2.840.113549.1.9.16.3.6" +#define PROV_NAMES_DES_EDE_ECB "DES-EDE-ECB:DES-EDE:1.3.14.3.2.17" +#define PROV_NAMES_DES_EDE_CBC "DES-EDE-CBC" +#define PROV_NAMES_DES_EDE_OFB "DES-EDE-OFB" +#define PROV_NAMES_DES_EDE_CFB "DES-EDE-CFB" +#define PROV_NAMES_SM4_ECB "SM4-ECB:1.2.156.10197.1.104.1" +#define PROV_NAMES_SM4_CBC "SM4-CBC:SM4:1.2.156.10197.1.104.2" +#define PROV_NAMES_SM4_CTR "SM4-CTR:1.2.156.10197.1.104.7" +#define PROV_NAMES_SM4_OFB "SM4-OFB:SM4-OFB128:1.2.156.10197.1.104.3" +#define PROV_NAMES_SM4_CFB "SM4-CFB:SM4-CFB128:1.2.156.10197.1.104.4" +#define PROV_NAMES_ChaCha20 "ChaCha20" +#define PROV_NAMES_ChaCha20_Poly1305 "ChaCha20-Poly1305" +#define PROV_NAMES_CAST5_ECB "CAST5-ECB" +#define PROV_NAMES_CAST5_CBC "CAST5-CBC:CAST-CBC:CAST:1.2.840.113533.7.66.10" +#define PROV_NAMES_CAST5_OFB "CAST5-OFB" +#define PROV_NAMES_CAST5_CFB "CAST5-CFB" +#define PROV_NAMES_BF_ECB "BF-ECB" +#define PROV_NAMES_BF_CBC "BF-CBC:BF:BLOWFISH:1.3.6.1.4.1.3029.1.2" +#define PROV_NAMES_BF_OFB "BF-OFB" +#define PROV_NAMES_BF_CFB "BF-CFB" +#define PROV_NAMES_IDEA_ECB "IDEA-ECB" +#define PROV_NAMES_IDEA_CBC "IDEA-CBC:IDEA:1.3.6.1.4.1.188.7.1.1.2" +#define PROV_NAMES_IDEA_OFB "IDEA-OFB:IDEA-OFB64" +#define PROV_NAMES_IDEA_CFB "IDEA-CFB:IDEA-CFB64" +#define PROV_NAMES_SEED_ECB "SEED-ECB:1.2.410.200004.1.3" +#define PROV_NAMES_SEED_CBC "SEED-CBC:SEED:1.2.410.200004.1.4" +#define PROV_NAMES_SEED_OFB "SEED-OFB:SEED-OFB128:1.2.410.200004.1.6" +#define PROV_NAMES_SEED_CFB "SEED-CFB:SEED-CFB128:1.2.410.200004.1.5" +#define PROV_NAMES_RC2_ECB "RC2-ECB" +#define PROV_NAMES_RC2_CBC "RC2-CBC:RC2:RC2-128:1.2.840.113549.3.2" +#define PROV_NAMES_RC2_40_CBC "RC2-40-CBC:RC2-40" +#define PROV_NAMES_RC2_64_CBC "RC2-64-CBC:RC2-64" +#define PROV_NAMES_RC2_CFB "RC2-CFB" +#define PROV_NAMES_RC2_OFB "RC2-OFB" +#define PROV_NAMES_RC4 "RC4:1.2.840.113549.3.4" +#define PROV_NAMES_RC4_40 "RC4-40" +#define PROV_NAMES_RC4_HMAC_MD5 "RC4-HMAC-MD5" +#define PROV_NAMES_RC5_ECB "RC5-ECB" +#define PROV_NAMES_RC5_CBC "RC5-CBC:RC5:1.2.840.113549.3.8" +#define PROV_NAMES_RC5_OFB "RC5-OFB" +#define PROV_NAMES_RC5_CFB "RC5-CFB" +#define PROV_NAMES_DESX_CBC "DESX-CBC:DESX" +#define PROV_NAMES_DES_ECB "DES-ECB:1.3.14.3.2.6" +#define PROV_NAMES_DES_CBC "DES-CBC:DES:1.3.14.3.2.7" +#define PROV_NAMES_DES_OFB "DES-OFB:1.3.14.3.2.8" +#define PROV_NAMES_DES_CFB "DES-CFB:1.3.14.3.2.9" +#define PROV_NAMES_DES_CFB1 "DES-CFB1" +#define PROV_NAMES_DES_CFB8 "DES-CFB8" + +/*- + * Digests + * ------- + */ +#define PROV_NAMES_SHA1 "SHA1:SHA-1:SSL3-SHA1:1.3.14.3.2.26" +#define PROV_NAMES_SHA2_224 "SHA2-224:SHA-224:SHA224:2.16.840.1.101.3.4.2.4" +#define PROV_NAMES_SHA2_256 "SHA2-256:SHA