Path: blob/main/crypto/openssl/providers/implementations/include/prov/names.h
48534 views
/*1* Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved.2*3* Licensed under the Apache License 2.0 (the "License"). You may not use4* this file except in compliance with the License. You can obtain a copy5* in the file LICENSE in the source distribution or at6* https://www.openssl.org/source/license.html7*/89/*10* Macros for use as names and descriptions in our providers' OSSL_ALGORITHM.11*12* All the strings are formatted the same way:13*14* Our primary name[:other names][:numeric OID]15*16* 'other names' include historical OpenSSL names, NIST names, ASN.1 OBJECT17* IDENTIFIER names, and commonly known aliases.18*19* Where it matters, our primary names follow this format:20*21* ALGNAME[VERSION?][-SUBNAME[VERSION?]?][-SIZE?][-MODE?]22*23* VERSION is only present if there are multiple versions of24* an alg (MD2, MD4, MD5). It may be omitted if there is only25* one version (if a subsequent version is released in the future,26* we can always change the canonical name, and add the old name27* as an alias).28*29* SUBNAME may be present where we are combining multiple30* algorithms together, e.g. MD5-SHA1.31*32* SIZE is only present if multiple versions of an algorithm exist33* with different sizes (e.g. AES-128-CBC, AES-256-CBC)34*35* MODE is only present where applicable.36*/3738/*-39* Symmetric ciphers40* -----------------41*/42#define PROV_NAMES_AES "AES:2.16.840.1.101.3.4.1"43#define PROV_DESCS_AES "OpenSSL AES opaque secret key"44#define PROV_NAMES_GENERIC "GENERIC-SECRET"45#define PROV_DESCS_GENERIC "OpenSSL generic opaque secret key"4647#define PROV_NAMES_AES_256_ECB "AES-256-ECB:2.16.840.1.101.3.4.1.41"48#define PROV_NAMES_AES_192_ECB "AES-192-ECB:2.16.840.1.101.3.4.1.21"49#define PROV_NAMES_AES_128_ECB "AES-128-ECB:2.16.840.1.101.3.4.1.1"50#define PROV_NAMES_AES_256_CBC "AES-256-CBC:AES256:2.16.840.1.101.3.4.1.42"51#define PROV_NAMES_AES_192_CBC "AES-192-CBC:AES192:2.16.840.1.101.3.4.1.22"52#define PROV_NAMES_AES_128_CBC "AES-128-CBC:AES128:2.16.840.1.101.3.4.1.2"53#define PROV_NAMES_AES_256_CBC_CTS "AES-256-CBC-CTS"54#define PROV_NAMES_AES_192_CBC_CTS "AES-192-CBC-CTS"55#define PROV_NAMES_AES_128_CBC_CTS "AES-128-CBC-CTS"56#define PROV_NAMES_AES_256_OFB "AES-256-OFB:2.16.840.1.101.3.4.1.43"57#define PROV_NAMES_AES_192_OFB "AES-192-OFB:2.16.840.1.101.3.4.1.23"58#define PROV_NAMES_AES_128_OFB "AES-128-OFB:2.16.840.1.101.3.4.1.3"59#define PROV_NAMES_AES_256_CFB "AES-256-CFB:2.16.840.1.101.3.4.1.44"60#define PROV_NAMES_AES_192_CFB "AES-192-CFB:2.16.840.1.101.3.4.1.24"61#define PROV_NAMES_AES_128_CFB "AES-128-CFB:2.16.840.1.101.3.4.1.4"62#define PROV_NAMES_AES_256_CFB1 "AES-256-CFB1"63#define PROV_NAMES_AES_192_CFB1 "AES-192-CFB1"64#define PROV_NAMES_AES_128_CFB1 "AES-128-CFB1"65#define PROV_NAMES_AES_256_CFB8 "AES-256-CFB8"66#define PROV_NAMES_AES_192_CFB8 "AES-192-CFB8"67#define PROV_NAMES_AES_128_CFB8 "AES-128-CFB8"68#define PROV_NAMES_AES_256_CTR "AES-256-CTR"69#define PROV_NAMES_AES_192_CTR "AES-192-CTR"70#define PROV_NAMES_AES_128_CTR "AES-128-CTR"71#define PROV_NAMES_AES_256_XTS "AES-256-XTS:1.3.111.2.1619.0.1.2"72#define PROV_NAMES_AES_128_XTS "AES-128-XTS:1.3.111.2.1619.0.1.1"73#define PROV_NAMES_AES_256_GCM "AES-256-GCM:id-aes256-GCM:2.16.840.1.101.3.4.1.46"74#define PROV_NAMES_AES_192_GCM "AES-192-GCM:id-aes192-GCM:2.16.840.1.101.3.4.1.26"75#define PROV_NAMES_AES_128_GCM "AES-128-GCM:id-aes128-GCM:2.16.840.1.101.3.4.1.6"76#define PROV_NAMES_AES_256_CCM "AES-256-CCM:id-aes256-CCM:2.16.840.1.101.3.4.1.47"77#define PROV_NAMES_AES_192_CCM "AES-192-CCM:id-aes192-CCM:2.16.840.1.101.3.4.1.27"78#define PROV_NAMES_AES_128_CCM "AES-128-CCM:id-aes128-CCM:2.16.840.1.101.3.4.1.7"79#define PROV_NAMES_AES_256_WRAP "AES-256-WRAP:id-aes256-wrap:AES256-WRAP:2.16.840.1.101.3.4.1.45"80#define PROV_NAMES_AES_192_WRAP "AES-192-WRAP:id-aes192-wrap:AES192-WRAP:2.16.840.1.101.3.4.1.25"81#define PROV_NAMES_AES_128_WRAP "AES-128-WRAP:id-aes128-wrap:AES128-WRAP:2.16.840.1.101.3.4.1.5"82#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"83#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"84#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"85#define PROV_NAMES_AES_256_WRAP_INV "AES-256-WRAP-INV:AES256-WRAP-INV"86#define PROV_NAMES_AES_192_WRAP_INV "AES-192-WRAP-INV:AES192-WRAP-INV"87#define PROV_NAMES_AES_128_WRAP_INV "AES-128-WRAP-INV:AES128-WRAP-INV"88#define PROV_NAMES_AES_256_WRAP_PAD_INV "AES-256-WRAP-PAD-INV:AES256-WRAP-PAD-INV"89#define PROV_NAMES_AES_192_WRAP_PAD_INV "AES-192-WRAP-PAD-INV:AES192-WRAP-PAD-INV"90#define PROV_NAMES_AES_128_WRAP_PAD_INV "AES-128-WRAP-PAD-INV:AES128-WRAP-PAD-INV"91#define PROV_NAMES_AES_128_CBC_HMAC_SHA1 "AES-128-CBC-HMAC-SHA1"92#define PROV_NAMES_AES_256_CBC_HMAC_SHA1 "AES-256-CBC-HMAC-SHA1"93#define PROV_NAMES_AES_128_CBC_HMAC_SHA256 "AES-128-CBC-HMAC-SHA256"94#define PROV_NAMES_AES_256_CBC_HMAC_SHA256 "AES-256-CBC-HMAC-SHA256"95#define PROV_NAMES_DES_EDE3_ECB "DES-EDE3-ECB:DES-EDE3"96#define PROV_NAMES_DES_EDE3_CBC "DES-EDE3-CBC:DES3:1.2.840.113549.3.7"97#define PROV_NAMES_NULL "NULL"98#define PROV_NAMES_AES_256_OCB "AES-256-OCB"99#define PROV_NAMES_AES_192_OCB "AES-192-OCB"100#define PROV_NAMES_AES_128_OCB "AES-128-OCB"101#define PROV_NAMES_AES_128_SIV "AES-128-SIV"102#define PROV_NAMES_AES_192_SIV "AES-192-SIV"103#define PROV_NAMES_AES_256_SIV "AES-256-SIV"104#define PROV_NAMES_AES_128_GCM_SIV "AES-128-GCM-SIV"105#define PROV_NAMES_AES_192_GCM_SIV "AES-192-GCM-SIV"106#define PROV_NAMES_AES_256_GCM_SIV "AES-256-GCM-SIV"107#define PROV_NAMES_ARIA_256_GCM "ARIA-256-GCM:1.2.410.200046.1.1.36"108#define PROV_NAMES_ARIA_192_GCM "ARIA-192-GCM:1.2.410.200046.1.1.35"109#define PROV_NAMES_ARIA_128_GCM "ARIA-128-GCM:1.2.410.200046.1.1.34"110#define PROV_NAMES_ARIA_256_CCM "ARIA-256-CCM:1.2.410.200046.1.1.39"111#define PROV_NAMES_ARIA_192_CCM "ARIA-192-CCM:1.2.410.200046.1.1.38"112#define PROV_NAMES_ARIA_128_CCM "ARIA-128-CCM:1.2.410.200046.1.1.37"113#define PROV_NAMES_ARIA_256_ECB "ARIA-256-ECB:1.2.410.200046.1.1.11"114#define PROV_NAMES_ARIA_192_ECB "ARIA-192-ECB:1.2.410.200046.1.1.6"115#define PROV_NAMES_ARIA_128_ECB "ARIA-128-ECB:1.2.410.200046.1.1.1"116#define PROV_NAMES_ARIA_256_CBC "ARIA-256-CBC:ARIA256:1.2.410.200046.1.1.12"117#define PROV_NAMES_ARIA_192_CBC "ARIA-192-CBC:ARIA192:1.2.410.200046.1.1.7"118#define PROV_NAMES_ARIA_128_CBC "ARIA-128-CBC:ARIA128:1.2.410.200046.1.1.2"119#define PROV_NAMES_ARIA_256_OFB "ARIA-256-OFB:1.2.410.200046.1.1.14"120#define PROV_NAMES_ARIA_192_OFB "ARIA-192-OFB:1.2.410.200046.1.1.9"121#define PROV_NAMES_ARIA_128_OFB "ARIA-128-OFB:1.2.410.200046.1.1.4"122#define PROV_NAMES_ARIA_256_CFB "ARIA-256-CFB:1.2.410.200046.1.1.13"123#define PROV_NAMES_ARIA_192_CFB "ARIA-192-CFB:1.2.410.200046.1.1.8"124#define PROV_NAMES_ARIA_128_CFB "ARIA-128-CFB:1.2.410.200046.1.1.3"125#define PROV_NAMES_ARIA_256_CFB1 "ARIA-256-CFB1"126#define PROV_NAMES_ARIA_192_CFB1 "ARIA-192-CFB1"127#define PROV_NAMES_ARIA_128_CFB1 "ARIA-128-CFB1"128#define PROV_NAMES_ARIA_256_CFB8 "ARIA-256-CFB8"129#define PROV_NAMES_ARIA_192_CFB8 "ARIA-192-CFB8"130#define PROV_NAMES_ARIA_128_CFB8 "ARIA-128-CFB8"131#define PROV_NAMES_ARIA_256_CTR "ARIA-256-CTR:1.2.410.200046.1.1.15"132#define PROV_NAMES_ARIA_192_CTR "ARIA-192-CTR:1.2.410.200046.1.1.10"133#define PROV_NAMES_ARIA_128_CTR "ARIA-128-CTR:1.2.410.200046.1.1.5"134#define PROV_NAMES_CAMELLIA_256_ECB "CAMELLIA-256-ECB:0.3.4401.5.3.1.9.41"135#define PROV_NAMES_CAMELLIA_192_ECB "CAMELLIA-192-ECB:0.3.4401.5.3.1.9.21"136#define PROV_NAMES_CAMELLIA_128_ECB "CAMELLIA-128-ECB:0.3.4401.5.3.1.9.1"137#define PROV_NAMES_CAMELLIA_256_CBC "CAMELLIA-256-CBC:CAMELLIA256:1.2.392.200011.61.1.1.1.4"138#define PROV_NAMES_CAMELLIA_192_CBC "CAMELLIA-192-CBC:CAMELLIA192:1.2.392.200011.61.1.1.1.3"139#define PROV_NAMES_CAMELLIA_128_CBC "CAMELLIA-128-CBC:CAMELLIA128:1.2.392.200011.61.1.1.1.2"140#define PROV_NAMES_CAMELLIA_256_CBC_CTS "CAMELLIA-256-CBC-CTS"141#define PROV_NAMES_CAMELLIA_192_CBC_CTS "CAMELLIA-192-CBC-CTS"142#define PROV_NAMES_CAMELLIA_128_CBC_CTS "CAMELLIA-128-CBC-CTS"143#define PROV_NAMES_CAMELLIA_256_OFB "CAMELLIA-256-OFB:0.3.4401.5.3.1.9.43"144#define PROV_NAMES_CAMELLIA_192_OFB "CAMELLIA-192-OFB:0.3.4401.5.3.1.9.23"145#define PROV_NAMES_CAMELLIA_128_OFB "CAMELLIA-128-OFB:0.3.4401.5.3.1.9.3"146#define PROV_NAMES_CAMELLIA_256_CFB "CAMELLIA-256-CFB:0.3.4401.5.3.1.9.44"147#define PROV_NAMES_CAMELLIA_192_CFB "CAMELLIA-192-CFB:0.3.4401.5.3.1.9.24"148#define PROV_NAMES_CAMELLIA_128_CFB "CAMELLIA-128-CFB:0.3.4401.5.3.1.9.4"149#define PROV_NAMES_CAMELLIA_256_CFB1 "CAMELLIA-256-CFB1"150#define PROV_NAMES_CAMELLIA_192_CFB1 "CAMELLIA-192-CFB1"151#define PROV_NAMES_CAMELLIA_128_CFB1 "CAMELLIA-128-CFB1"152#define PROV_NAMES_CAMELLIA_256_CFB8 "CAMELLIA-256-CFB8"153#define PROV_NAMES_CAMELLIA_192_CFB8 "CAMELLIA-192-CFB8"154#define PROV_NAMES_CAMELLIA_128_CFB8 "CAMELLIA-128-CFB8"155#define PROV_NAMES_CAMELLIA_256_CTR "CAMELLIA-256-CTR:0.3.4401.5.3.1.9.49"156#define PROV_NAMES_CAMELLIA_192_CTR "CAMELLIA-192-CTR:0.3.4401.5.3.1.9.29"157#define PROV_NAMES_CAMELLIA_128_CTR "CAMELLIA-128-CTR:0.3.4401.5.3.1.9.9"158#define PROV_NAMES_DES_EDE3_OFB "DES-EDE3-OFB"159#define PROV_NAMES_DES_EDE3_CFB "DES-EDE3-CFB"160#define PROV_NAMES_DES_EDE3_CFB8 "DES-EDE3-CFB8"161#define PROV_NAMES_DES_EDE3_CFB1 "DES-EDE3-CFB1"162#define PROV_NAMES_DES3_WRAP "DES3-WRAP:id-smime-alg-CMS3DESwrap:1.2.840.113549.1.9.16.3.6"163#define PROV_NAMES_DES_EDE_ECB "DES-EDE-ECB:DES-EDE:1.3.14.3.2.17"164#define PROV_NAMES_DES_EDE_CBC "DES-EDE-CBC"165#define PROV_NAMES_DES_EDE_OFB "DES-EDE-OFB"166#define PROV_NAMES_DES_EDE_CFB "DES-EDE-CFB"167#define PROV_NAMES_SM4_ECB "SM4-ECB:1.2.156.10197.1.104.1"168#define PROV_NAMES_SM4_CBC "SM4-CBC:SM4:1.2.156.10197.1.104.2"169#define PROV_NAMES_SM4_CTR "SM4-CTR:1.2.156.10197.1.104.7"170#define PROV_NAMES_SM4_OFB "SM4-OFB:SM4-OFB128:1.2.156.10197.1.104.3"171#define PROV_NAMES_SM4_CFB "SM4-CFB:SM4-CFB128:1.2.156.10197.1.104.4"172#define PROV_NAMES_SM4_GCM "SM4-GCM:1.2.156.10197.1.104.8"173#define PROV_NAMES_SM4_CCM "SM4-CCM:1.2.156.10197.1.104.9"174#define PROV_NAMES_SM4_XTS "SM4-XTS:1.2.156.10197.1.104.10"175#define PROV_NAMES_ChaCha20 "ChaCha20"176#define PROV_NAMES_ChaCha20_Poly1305 "ChaCha20-Poly1305"177#define PROV_NAMES_CAST5_ECB "CAST5-ECB"178#define PROV_NAMES_CAST5_CBC "CAST5-CBC:CAST-CBC:CAST:1.2.840.113533.7.66.10"179#define PROV_NAMES_CAST5_OFB "CAST5-OFB"180#define PROV_NAMES_CAST5_CFB "CAST5-CFB"181#define PROV_NAMES_BF_ECB "BF-ECB"182#define PROV_NAMES_BF_CBC "BF-CBC:BF:BLOWFISH:1.3.6.1.4.1.3029.1.2"183#define PROV_NAMES_BF_OFB "BF-OFB"184#define PROV_NAMES_BF_CFB "BF-CFB"185#define PROV_NAMES_IDEA_ECB "IDEA-ECB"186#define PROV_NAMES_IDEA_CBC "IDEA-CBC:IDEA:1.3.6.1.4.1.188.7.1.1.2"187#define PROV_NAMES_IDEA_OFB "IDEA-OFB:IDEA-OFB64"188#define PROV_NAMES_IDEA_CFB "IDEA-CFB:IDEA-CFB64"189#define PROV_NAMES_SEED_ECB "SEED-ECB:1.2.410.200004.1.3"190#define PROV_NAMES_SEED_CBC "SEED-CBC:SEED:1.2.410.200004.1.4"191#define PROV_NAMES_SEED_OFB "SEED-OFB:SEED-OFB128:1.2.410.200004.1.6"192#define PROV_NAMES_SEED_CFB "SEED-CFB:SEED-CFB128:1.2.410.200004.1.5"193#define PROV_NAMES_RC2_ECB "RC2-ECB"194#define PROV_NAMES_RC2_CBC "RC2-CBC:RC2:RC2-128:1.2.840.113549.3.2"195#define PROV_NAMES_RC2_40_CBC "RC2-40-CBC:RC2-40"196#define PROV_NAMES_RC2_64_CBC "RC2-64-CBC:RC2-64"197#define PROV_NAMES_RC2_CFB "RC2-CFB"198#define PROV_NAMES_RC2_OFB "RC2-OFB"199#define PROV_NAMES_RC4 "RC4:1.2.840.113549.3.4"200#define PROV_NAMES_RC4_40 "RC4-40"201#define PROV_NAMES_RC4_HMAC_MD5 "RC4-HMAC-MD5"202#define PROV_NAMES_RC5_ECB "RC5-ECB"203#define PROV_NAMES_RC5_CBC "RC5-CBC:RC5:1.2.840.113549.3.8"204#define PROV_NAMES_RC5_OFB "RC5-OFB"205#define PROV_NAMES_RC5_CFB "RC5-CFB"206#define PROV_NAMES_DESX_CBC "DESX-CBC:DESX"207#define PROV_NAMES_DES_ECB "DES-ECB:1.3.14.3.2.6"208#define PROV_NAMES_DES_CBC "DES-CBC:DES:1.3.14.3.2.7"209#define PROV_NAMES_DES_OFB "DES-OFB:1.3.14.3.2.8"210#define PROV_NAMES_DES_CFB "DES-CFB:1.3.14.3.2.9"211#define PROV_NAMES_DES_CFB1 "DES-CFB1"212#define PROV_NAMES_DES_CFB8 "DES-CFB8"213214/*-215* Digests216* -------217*/218#define PROV_NAMES_SHA1 "SHA1:SHA-1:SSL3-SHA1:1.3.14.3.2.26"219#define PROV_NAMES_SHA2_224 "SHA2-224:SHA-224:SHA224:2.16.840.1.101.3.4.2.4"220#define PROV_NAMES_SHA2_256 "SHA2-256:SHA-256:SHA256:2.16.840.1.101.3.4.2.1"221#define PROV_NAMES_SHA2_256_192 "SHA2-256/192:SHA-256/192:SHA256-192"222#define PROV_NAMES_SHA2_384 "SHA2-384:SHA-384:SHA384:2.16.840.1.101.3.4.2.2"223#define PROV_NAMES_SHA2_512 "SHA2-512:SHA-512:SHA512:2.16.840.1.101.3.4.2.3"224#define PROV_NAMES_SHA2_512_224 "SHA2-512/224:SHA-512/224:SHA512-224:2.16.840.1.101.3.4.2.5"225#define PROV_NAMES_SHA2_512_256 "SHA2-512/256:SHA-512/256:SHA512-256:2.16.840.1.101.3.4.2.6"226227/* We agree with NIST here, so one name only */228#define PROV_NAMES_SHA3_224 "SHA3-224:2.16.840.1.101.3.4.2.7"229#define PROV_NAMES_SHA3_256 "SHA3-256:2.16.840.1.101.3.4.2.8"230#define PROV_NAMES_SHA3_384 "SHA3-384:2.16.840.1.101.3.4.2.9"231#define PROV_NAMES_SHA3_512 "SHA3-512:2.16.840.1.101.3.4.2.10"232233#define PROV_NAMES_KECCAK_224 "KECCAK-224"234#define PROV_NAMES_KECCAK_256 "KECCAK-256"235#define PROV_NAMES_KECCAK_384 "KECCAK-384"236#define PROV_NAMES_KECCAK_512 "KECCAK-512"237238#define PROV_NAMES_SHAKE_128 "SHAKE-128:SHAKE128:2.16.840.1.101.3.4.2.11"239#define PROV_NAMES_SHAKE_256 "SHAKE-256:SHAKE256:2.16.840.1.101.3.4.2.12"240241/*242* KECCAK-KMAC-128 and KECCAK-KMAC-256 as hashes are mostly useful for243* KMAC128 and KMAC256.244*/245#define PROV_NAMES_KECCAK_KMAC_128 "KECCAK-KMAC-128:KECCAK-KMAC128"246#define PROV_NAMES_KECCAK_KMAC_256 "KECCAK-KMAC-256:KECCAK-KMAC256"247/*248* https://blake2.net/ doesn't specify size variants, but mentions that249* Bouncy Castle uses the names BLAKE2b-160, BLAKE2b-256, BLAKE2b-384, and250* BLAKE2b-512251* If we assume that "2b" and "2s" are versions, that pattern fits with ours.252* We also add our historical names.253*/254#define PROV_NAMES_BLAKE2S_256 "BLAKE2S-256:BLAKE2s256:1.3.6.1.4.1.1722.12.2.2.8"255#define PROV_NAMES_BLAKE2B_512 "BLAKE2B-512:BLAKE2b512:1.3.6.1.4.1.1722.12.2.1.16"256#define PROV_NAMES_SM3 "SM3:1.2.156.10197.1.401"257#define PROV_NAMES_MD5 "MD5:SSL3-MD5:1.2.840.113549.2.5"258#define PROV_NAMES_MD5_SHA1 "MD5-SHA1"259#define PROV_NAMES_MD2 "MD2:1.2.840.113549.2.2"260#define PROV_NAMES_MD4 "MD4:1.2.840.113549.2.4"261#define PROV_NAMES_MDC2 "MDC2:2.5.8.3.101"262#define PROV_NAMES_WHIRLPOOL "WHIRLPOOL:1.0.10118.3.0.55"263#define PROV_NAMES_RIPEMD_160 "RIPEMD-160:RIPEMD160:RIPEMD:RMD160:1.3.36.3.2.1"264265/*-266* KDFs / PRFs267* -----------268*/269#define PROV_NAMES_HKDF "HKDF"270#define PROV_DESCS_HKDF_SIGN "OpenSSL HKDF via EVP_PKEY implementation"271#define PROV_NAMES_TLS1_3_KDF "TLS13-KDF"272#define PROV_NAMES_SSKDF "SSKDF"273#define PROV_NAMES_PBKDF1 "PBKDF1"274#define PROV_NAMES_PBKDF2 "PBKDF2:1.2.840.113549.1.5.12"275#define PROV_NAMES_PVKKDF "PVKKDF"276#define PROV_NAMES_SSHKDF "SSHKDF"277#define PROV_NAMES_X963KDF "X963KDF:X942KDF-CONCAT"278#define PROV_NAMES_X942KDF_ASN1 "X942KDF-ASN1:X942KDF"279#define PROV_NAMES_TLS1_PRF "TLS1-PRF"280#define PROV_DESCS_TLS1_PRF_SIGN "OpenSSL TLS1_PRF via EVP_PKEY implementation"281#define PROV_NAMES_KBKDF "KBKDF"282#define PROV_NAMES_PKCS12KDF "PKCS12KDF"283#define PROV_NAMES_SCRYPT "SCRYPT:id-scrypt:1.3.6.1.4.1.11591.4.11"284#define PROV_DESCS_SCRYPT_SIGN "OpenSSL SCRYPT via EVP_PKEY implementation"285#define PROV_NAMES_KRB5KDF "KRB5KDF"286#define PROV_NAMES_HMAC_DRBG_KDF "HMAC-DRBG-KDF"287#define PROV_NAMES_ARGON2I "ARGON2I"288#define PROV_NAMES_ARGON2D "ARGON2D"289#define PROV_NAMES_ARGON2ID "ARGON2ID"290291/*-292* MACs293* ----294*/295#define PROV_NAMES_HMAC "HMAC"296#define PROV_DESCS_HMAC_SIGN "OpenSSL HMAC via EVP_PKEY implementation"297#define PROV_NAMES_CMAC "CMAC"298#define PROV_DESCS_CMAC_SIGN "OpenSSL CMAC via EVP_PKEY implementation"299#define PROV_NAMES_SIPHASH "SIPHASH"300#define PROV_DESCS_SIPHASH_SIGN "OpenSSL SIPHASH via EVP_PKEY implementation"301#define PROV_NAMES_POLY1305 "POLY1305"302#define PROV_DESCS_POLY1305_SIGN "OpenSSL POLY1305 via EVP_PKEY implementation"303#define PROV_NAMES_GMAC "GMAC:1.0.9797.3.4"304#define PROV_NAMES_KMAC_128 "KMAC-128:KMAC128:2.16.840.1.101.3.4.2.19"305#define PROV_NAMES_KMAC_256 "KMAC-256:KMAC256:2.16.840.1.101.3.4.2.20"306#define PROV_NAMES_BLAKE2BMAC "BLAKE2BMAC:1.3.6.1.4.1.1722.12.2.1"307#define PROV_NAMES_BLAKE2SMAC "BLAKE2SMAC:1.3.6.1.4.1.1722.12.2.2"308309/*-310* RANDs311* -----312*/313#define PROV_NAMES_CRNG_TEST "CRNG-TEST"314#define PROV_NAMES_CTR_DRBG "CTR-DRBG"315#define PROV_NAMES_HASH_DRBG "HASH-DRBG"316#define PROV_NAMES_HMAC_DRBG "HMAC-DRBG"317#define PROV_NAMES_TEST_RAND "TEST-RAND"318#define PROV_NAMES_SEED_SRC "SEED-SRC"319#define PROV_NAMES_JITTER "JITTER"320321/*-322* Asymmetric algos323* ----------------324*/325#define PROV_NAMES_EC "EC:id-ecPublicKey:1.2.840.10045.2.1"326#define PROV_DESCS_EC "OpenSSL EC implementation"327#define PROV_NAMES_ECDH "ECDH"328#define PROV_DESCS_ECDH "OpenSSL ECDH implementation"329#define PROV_NAMES_ECDSA "ECDSA"330#define PROV_NAMES_ECDSA_SHA1 "ECDSA-SHA1:ECDSA-SHA-1:ecdsa-with-SHA1:1.2.840.10045.4.1"331#define PROV_NAMES_ECDSA_SHA224 "ECDSA-SHA2-224:ECDSA-SHA224:ecdsa-with-SHA224:1.2.840.10045.4.3.1"332#define PROV_NAMES_ECDSA_SHA256 "ECDSA-SHA2-256:ECDSA-SHA256:ecdsa-with-SHA256:1.2.840.10045.4.3.2"333#define PROV_NAMES_ECDSA_SHA384 "ECDSA-SHA2-384:ECDSA-SHA384:ecdsa-with-SHA384:1.2.840.10045.4.3.3"334#define PROV_NAMES_ECDSA_SHA512 "ECDSA-SHA2-512:ECDSA-SHA512:ecdsa-with-SHA512:1.2.840.10045.4.3.4"335#define PROV_NAMES_ECDSA_SHA3_224 "ECDSA-SHA3-224:ecdsa_with_SHA3-224:id-ecdsa-with-sha3-224:2.16.840.1.101.3.4.3.9"336#define PROV_NAMES_ECDSA_SHA3_256 "ECDSA-SHA3-256:ecdsa_with_SHA3-256:id-ecdsa-with-sha3-256:2.16.840.1.101.3.4.3.10"337#define PROV_NAMES_ECDSA_SHA3_384 "ECDSA-SHA3-384:ecdsa_with_SHA3-384:id-ecdsa-with-sha3-384:2.16.840.1.101.3.4.3.11"338#define PROV_NAMES_ECDSA_SHA3_512 "ECDSA-SHA3-512:ecdsa_with_SHA3-512:id-ecdsa-with-sha3-512:2.16.840.1.101.3.4.3.12"339#define PROV_DESCS_ECDSA "OpenSSL ECDSA implementation"340#define PROV_NAMES_X25519 "X25519:1.3.101.110"341#define PROV_DESCS_X25519 "OpenSSL X25519 implementation"342#define PROV_NAMES_X448 "X448:1.3.101.111"343#define PROV_DESCS_X448 "OpenSSL X448 implementation"344#define PROV_NAMES_ED25519 "ED25519:1.3.101.112"345#define PROV_DESCS_ED25519 "OpenSSL ED25519 implementation"346#define PROV_NAMES_ED25519ph "ED25519ph"347#define PROV_DESCS_ED25519ph "OpenSSL ED25519ph implementation"348#define PROV_NAMES_ED25519ctx "ED25519ctx"349#define PROV_DESCS_ED25519ctx "OpenSSL ED25519ctx implementation"350#define PROV_NAMES_ED448 "ED448:1.3.101.113"351#define PROV_DESCS_ED448 "OpenSSL ED448 implementation"352#define PROV_NAMES_ED448ph "ED448ph"353#define PROV_DESCS_ED448ph "OpenSSL ED448ph implementation"354#define PROV_NAMES_DH "DH:dhKeyAgreement:1.2.840.113549.1.3.1"355#define PROV_DESCS_DH "OpenSSL PKCS#3 DH implementation"356#define PROV_NAMES_DHX "DHX:X9.42 DH:dhpublicnumber:1.2.840.10046.2.1"357#define PROV_DESCS_DHX "OpenSSL X9.42 DH implementation"358#define PROV_NAMES_DSA "DSA:dsaEncryption:1.2.840.10040.4.1"359#define PROV_NAMES_DSA_SHA1 "DSA-SHA1:DSA-SHA-1:dsaWithSHA1:1.2.840.10040.4.3"360#define PROV_NAMES_DSA_SHA224 "DSA-SHA2-224:DSA-SHA224:dsa_with_SHA224:2.16.840.1.101.3.4.3.1"361#define PROV_NAMES_DSA_SHA256 "DSA-SHA2-256:DSA-SHA256:dsa_with_SHA256:2.16.840.1.101.3.4.3.2"362#define PROV_NAMES_DSA_SHA384 "DSA-SHA2-384:DSA-SHA384:dsa_with_SHA384:id-dsa-with-sha384:1.2.840.1.101.3.4.3.3"363#define PROV_NAMES_DSA_SHA512 "DSA-SHA2-512:DSA-SHA512:dsa_with_SHA512:id-dsa-with-sha512:1.2.840.1.101.3.4.3.4"364#define PROV_NAMES_DSA_SHA3_224 "DSA-SHA3-224:dsa_with_SHA3-224:id-dsa-with-sha3-224:2.16.840.1.101.3.4.3.5"365#define PROV_NAMES_DSA_SHA3_256 "DSA-SHA3-256:dsa_with_SHA3-256:id-dsa-with-sha3-256:2.16.840.1.101.3.4.3.6"366#define PROV_NAMES_DSA_SHA3_384 "DSA-SHA3-384:dsa_with_SHA3-384:id-dsa-with-sha3-384:2.16.840.1.101.3.4.3.7"367#define PROV_NAMES_DSA_SHA3_512 "DSA-SHA3-512:dsa_with_SHA3-512:id-dsa-with-sha3-512:2.16.840.1.101.3.4.3.8"368#define PROV_DESCS_DSA "OpenSSL DSA implementation"369#define PROV_NAMES_RSA "RSA:rsaEncryption:1.2.840.113549.1.1.1"370#define PROV_NAMES_RSA_MD2 "RSA-MD2:md2WithRSAEncryption:1.2.840.113549.1.1.2"371#define PROV_NAMES_RSA_MD4 "RSA-MD4:md4WithEncryption:1.2.840.113549.1.1.3"372#define PROV_NAMES_RSA_MD5 "RSA-MD5:md5WithRSAEncryption:1.2.840.113549.1.1.4"373#define PROV_NAMES_RSA_RIPEMD160 "RSA-RIPEMD160:ripemd160WithRSA:1.3.36.3.3.1.2"374#define PROV_NAMES_RSA_SHA1 "RSA-SHA1:RSA-SHA-1:sha1WithRSAEncryption:1.2.840.113549.1.1.5"375#define PROV_NAMES_RSA_SHA256 "RSA-SHA2-256:RSA-SHA256:sha256WithRSAEncryption:1.2.840.113549.1.1.11"376#define PROV_NAMES_RSA_SHA384 "RSA-SHA2-384:RSA-SHA384:sha384WithRSAEncryption:1.2.840.113549.1.1.12"377#define PROV_NAMES_RSA_SHA512 "RSA-SHA2-512:RSA-SHA512:sha512WithRSAEncryption:1.2.840.113549.1.1.13"378#define PROV_NAMES_RSA_SHA224 "RSA-SHA2-224:RSA-SHA224:sha224WithRSAEncryption:1.2.840.113549.1.1.14"379#define PROV_NAMES_RSA_SHA512_224 "RSA-SHA2-512/224:RSA-SHA512-224:sha512-224WithRSAEncryption:1.2.840.113549.1.1.15"380#define PROV_NAMES_RSA_SHA512_256 "RSA-SHA2-512/256:RSA-SHA512-256:sha512-256WithRSAEncryption:1.2.840.113549.1.1.16"381#define PROV_NAMES_RSA_SM3 "RSA-SM3:sm3WithRSAEncryption:1.2.156.10197.1.504"382#define PROV_NAMES_RSA_SHA3_224 "RSA-SHA3-224:id-rsassa-pkcs1-v1_5-with-sha3-224:2.16.840.1.101.3.4.3.13"383#define PROV_NAMES_RSA_SHA3_256 "RSA-SHA3-256:id-rsassa-pkcs1-v1_5-with-sha3-256:2.16.840.1.101.3.4.3.14"384#define PROV_NAMES_RSA_SHA3_384 "RSA-SHA3-384:id-rsassa-pkcs1-v1_5-with-sha3-384:2.16.840.1.101.3.4.3.15"385#define PROV_NAMES_RSA_SHA3_512 "RSA-SHA3-512:id-rsassa-pkcs1-v1_5-with-sha3-512:2.16.840.1.101.3.4.3.16"386#define PROV_DESCS_RSA "OpenSSL RSA implementation"387#define PROV_NAMES_RSA_PSS "RSA-PSS:RSASSA-PSS:1.2.840.113549.1.1.10"388#define PROV_DESCS_RSA_PSS "OpenSSL RSA-PSS implementation"389#define PROV_NAMES_SM2 "SM2:1.2.156.10197.1.301"390#define PROV_DESCS_SM2 "OpenSSL SM2 implementation"391#define PROV_NAMES_ML_DSA_44 "ML-DSA-44:MLDSA44:2.16.840.1.101.3.4.3.17:id-ml-dsa-44"392#define PROV_DESCS_ML_DSA_44 "OpenSSL ML-DSA-44 implementation"393#define PROV_NAMES_ML_DSA_65 "ML-DSA-65:MLDSA65:2.16.840.1.101.3.4.3.18:id-ml-dsa-65"394#define PROV_DESCS_ML_DSA_65 "OpenSSL ML-DSA-65 implementation"395#define PROV_NAMES_ML_DSA_87 "ML-DSA-87:MLDSA87:2.16.840.1.101.3.4.3.19:id-ml-dsa-87"396#define PROV_DESCS_ML_DSA_87 "OpenSSL ML-DSA-87 implementation"397#define PROV_NAMES_ML_KEM_512 "ML-KEM-512:MLKEM512:id-alg-ml-kem-512:2.16.840.1.101.3.4.4.1"398#define PROV_DESCS_ML_KEM_512 "OpenSSL ML-KEM-512 implementation"399#define PROV_NAMES_ML_KEM_768 "ML-KEM-768:MLKEM768:id-alg-ml-kem-768:2.16.840.1.101.3.4.4.2"400#define PROV_DESCS_ML_KEM_768 "OpenSSL ML-KEM-768 implementation"401#define PROV_NAMES_ML_KEM_1024 "ML-KEM-1024:MLKEM1024:id-alg-ml-kem-1024:2.16.840.1.101.3.4.4.3"402#define PROV_DESCS_ML_KEM_1024 "OpenSSL ML-KEM-1024 implementation"403#define PROV_NAMES_X25519MLKEM768 "X25519MLKEM768"404#define PROV_DESCS_X25519MLKEM768 "X25519+ML-KEM-768 TLS hybrid implementation"405#define PROV_NAMES_X448MLKEM1024 "X448MLKEM1024"406#define PROV_DESCS_X448MLKEM1024 "X448+ML-KEM-1024 TLS hybrid implementation"407#define PROV_NAMES_SecP256r1MLKEM768 "SecP256r1MLKEM768"408#define PROV_DESCS_SecP256r1MLKEM768 "P-256+ML-KEM-768 TLS hybrid implementation"409#define PROV_NAMES_SecP384r1MLKEM1024 "SecP384r1MLKEM1024"410#define PROV_DESCS_SecP384r1MLKEM1024 "P-384+ML-KEM-1024 TLS hybrid implementation"411#define PROV_NAMES_SLH_DSA_SHA2_128S "SLH-DSA-SHA2-128s:id-slh-dsa-sha2-128s:2.16.840.1.101.3.4.3.20"412#define PROV_NAMES_SLH_DSA_SHA2_128F "SLH-DSA-SHA2-128f:id-slh-dsa-sha2-128f:2.16.840.1.101.3.4.3.21"413#define PROV_NAMES_SLH_DSA_SHA2_192S "SLH-DSA-SHA2-192s:id-slh-dsa-sha2-192s:2.16.840.1.101.3.4.3.22"414#define PROV_NAMES_SLH_DSA_SHA2_192F "SLH-DSA-SHA2-192f:id-slh-dsa-sha2-192f:2.16.840.1.101.3.4.3.23"415#define PROV_NAMES_SLH_DSA_SHA2_256S "SLH-DSA-SHA2-256s:id-slh-dsa-sha2-256s:2.16.840.1.101.3.4.3.24"416#define PROV_NAMES_SLH_DSA_SHA2_256F "SLH-DSA-SHA2-256f:id-slh-dsa-sha2-256f:2.16.840.1.101.3.4.3.25"417#define PROV_NAMES_SLH_DSA_SHAKE_128S "SLH-DSA-SHAKE-128s:id-slh-dsa-shake-128s:2.16.840.1.101.3.4.3.26"418#define PROV_NAMES_SLH_DSA_SHAKE_128F "SLH-DSA-SHAKE-128f:id-slh-dsa-shake-128f:2.16.840.1.101.3.4.3.27"419#define PROV_NAMES_SLH_DSA_SHAKE_192S "SLH-DSA-SHAKE-192s:id-slh-dsa-shake-192s:2.16.840.1.101.3.4.3.28"420#define PROV_NAMES_SLH_DSA_SHAKE_192F "SLH-DSA-SHAKE-192f:id-slh-dsa-shake-192f:2.16.840.1.101.3.4.3.29"421#define PROV_NAMES_SLH_DSA_SHAKE_256S "SLH-DSA-SHAKE-256s:id-slh-dsa-shake-256s:2.16.840.1.101.3.4.3.30"422#define PROV_NAMES_SLH_DSA_SHAKE_256F "SLH-DSA-SHAKE-256f:id-slh-dsa-shake-256f:2.16.840.1.101.3.4.3.31"423#define PROV_DESCS_SLH_DSA_SHA2_128S "OpenSSL SLH-DSA-SHA2-128s implementation"424#define PROV_DESCS_SLH_DSA_SHA2_128F "OpenSSL SLH-DSA-SHA2-128f implementation"425#define PROV_DESCS_SLH_DSA_SHA2_192S "OpenSSL SLH-DSA-SHA2-192s implementation"426#define PROV_DESCS_SLH_DSA_SHA2_192F "OpenSSL SLH-DSA-SHA2-192f implementation"427#define PROV_DESCS_SLH_DSA_SHA2_256S "OpenSSL SLH-DSA-SHA2-256s implementation"428#define PROV_DESCS_SLH_DSA_SHA2_256F "OpenSSL SLH-DSA-SHA2-256f implementation"429#define PROV_DESCS_SLH_DSA_SHAKE_128S "OpenSSL SLH-DSA-SHAKE-128s implementation"430#define PROV_DESCS_SLH_DSA_SHAKE_128F "OpenSSL SLH-DSA-SHAKE-128f implementation"431#define PROV_DESCS_SLH_DSA_SHAKE_192S "OpenSSL SLH-DSA-SHAKE-192s implementation"432#define PROV_DESCS_SLH_DSA_SHAKE_192F "OpenSSL SLH-DSA-SHAKE-192f implementation"433#define PROV_DESCS_SLH_DSA_SHAKE_256S "OpenSSL SLH-DSA-SHAKE-256s implementation"434#define PROV_DESCS_SLH_DSA_SHAKE_256F "OpenSSL SLH-DSA-SHAKE-256f implementation"435436437