1 /* 2 * Copyright 2021-2024 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the Apache License 2.0 (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 /* 11 * Macros for use as names and descriptions in our providers' OSSL_ALGORITHM. 12 * 13 * All the strings are formatted the same way: 14 * 15 * Our primary name[:other names][:numeric OID] 16 * 17 * 'other names' include historical OpenSSL names, NIST names, ASN.1 OBJECT 18 * IDENTIFIER names, and commonly known aliases. 19 * 20 * Where it matters, our primary names follow this format: 21 * 22 * ALGNAME[VERSION?][-SUBNAME[VERSION?]?][-SIZE?][-MODE?] 23 * 24 * VERSION is only present if there are multiple versions of 25 * an alg (MD2, MD4, MD5). It may be omitted if there is only 26 * one version (if a subsequent version is released in the future, 27 * we can always change the canonical name, and add the old name 28 * as an alias). 29 * 30 * SUBNAME may be present where we are combining multiple 31 * algorithms together, e.g. MD5-SHA1. 32 * 33 * SIZE is only present if multiple versions of an algorithm exist 34 * with different sizes (e.g. AES-128-CBC, AES-256-CBC) 35 * 36 * MODE is only present where applicable. 37 */ 38 39 /*- 40 * Symmetric ciphers 41 * ----------------- 42 */ 43 #define PROV_NAMES_AES_256_ECB "AES-256-ECB:2.16.840.1.101.3.4.1.41" 44 #define PROV_NAMES_AES_192_ECB "AES-192-ECB:2.16.840.1.101.3.4.1.21" 45 #define PROV_NAMES_AES_128_ECB "AES-128-ECB:2.16.840.1.101.3.4.1.1" 46 #define PROV_NAMES_AES_256_CBC "AES-256-CBC:AES256:2.16.840.1.101.3.4.1.42" 47 #define PROV_NAMES_AES_192_CBC "AES-192-CBC:AES192:2.16.840.1.101.3.4.1.22" 48 #define PROV_NAMES_AES_128_CBC "AES-128-CBC:AES128:2.16.840.1.101.3.4.1.2" 49 #define PROV_NAMES_AES_256_CBC_CTS "AES-256-CBC-CTS" 50 #define PROV_NAMES_AES_192_CBC_CTS "AES-192-CBC-CTS" 51 #define PROV_NAMES_AES_128_CBC_CTS "AES-128-CBC-CTS" 52 #define PROV_NAMES_AES_256_OFB "AES-256-OFB:2.16.840.1.101.3.4.1.43" 53 #define PROV_NAMES_AES_192_OFB "AES-192-OFB:2.16.840.1.101.3.4.1.23" 54 #define PROV_NAMES_AES_128_OFB "AES-128-OFB:2.16.840.1.101.3.4.1.3" 55 #define PROV_NAMES_AES_256_CFB "AES-256-CFB:2.16.840.1.101.3.4.1.44" 56 #define PROV_NAMES_AES_192_CFB "AES-192-CFB:2.16.840.1.101.3.4.1.24" 57 #define PROV_NAMES_AES_128_CFB "AES-128-CFB:2.16.840.1.101.3.4.1.4" 58 #define PROV_NAMES_AES_256_CFB1 "AES-256-CFB1" 59 #define PROV_NAMES_AES_192_CFB1 "AES-192-CFB1" 60 #define PROV_NAMES_AES_128_CFB1 "AES-128-CFB1" 61 #define PROV_NAMES_AES_256_CFB8 "AES-256-CFB8" 62 #define PROV_NAMES_AES_192_CFB8 "AES-192-CFB8" 63 #define PROV_NAMES_AES_128_CFB8 "AES-128-CFB8" 64 #define PROV_NAMES_AES_256_CTR "AES-256-CTR" 65 #define PROV_NAMES_AES_192_CTR "AES-192-CTR" 66 #define PROV_NAMES_AES_128_CTR "AES-128-CTR" 67 #define PROV_NAMES_AES_256_XTS "AES-256-XTS:1.3.111.2.1619.0.1.2" 68 #define PROV_NAMES_AES_128_XTS "AES-128-XTS:1.3.111.2.1619.0.1.1" 69 #define PROV_NAMES_AES_256_GCM "AES-256-GCM:id-aes256-GCM:2.16.840.1.101.3.4.1.46" 70 #define PROV_NAMES_AES_192_GCM "AES-192-GCM:id-aes192-GCM:2.16.840.1.101.3.4.1.26" 71 #define PROV_NAMES_AES_128_GCM "AES-128-GCM:id-aes128-GCM:2.16.840.1.101.3.4.1.6" 72 #define PROV_NAMES_AES_256_CCM "AES-256-CCM:id-aes256-CCM:2.16.840.1.101.3.4.1.47" 73 #define PROV_NAMES_AES_192_CCM "AES-192-CCM:id-aes192-CCM:2.16.840.1.101.3.4.1.27" 74 #define PROV_NAMES_AES_128_CCM "AES-128-CCM:id-aes128-CCM:2.16.840.1.101.3.4.1.7" 75 #define PROV_NAMES_AES_256_WRAP "AES-256-WRAP:id-aes256-wrap:AES256-WRAP:2.16.840.1.101.3.4.1.45" 76 #define PROV_NAMES_AES_192_WRAP "AES-192-WRAP:id-aes192-wrap:AES192-WRAP:2.16.840.1.101.3.4.1.25" 77 #define PROV_NAMES_AES_128_WRAP "AES-128-WRAP:id-aes128-wrap:AES128-WRAP:2.16.840.1.101.3.4.1.5" 78 #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" 79 #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" 80 #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" 81 #define PROV_NAMES_AES_256_WRAP_INV "AES-256-WRAP-INV:AES256-WRAP-INV" 82 #define PROV_NAMES_AES_192_WRAP_INV "AES-192-WRAP-INV:AES192-WRAP-INV" 83 #define PROV_NAMES_AES_128_WRAP_INV "AES-128-WRAP-INV:AES128-WRAP-INV" 84 #define PROV_NAMES_AES_256_WRAP_PAD_INV "AES-256-WRAP-PAD-INV:AES256-WRAP-PAD-INV" 85 #define PROV_NAMES_AES_192_WRAP_PAD_INV "AES-192-WRAP-PAD-INV:AES192-WRAP-PAD-INV" 86 #define PROV_NAMES_AES_128_WRAP_PAD_INV "AES-128-WRAP-PAD-INV:AES128-WRAP-PAD-INV" 87 #define PROV_NAMES_AES_128_CBC_HMAC_SHA1 "AES-128-CBC-HMAC-SHA1" 88 #define PROV_NAMES_AES_256_CBC_HMAC_SHA1 "AES-256-CBC-HMAC-SHA1" 89 #define PROV_NAMES_AES_128_CBC_HMAC_SHA256 "AES-128-CBC-HMAC-SHA256" 90 #define PROV_NAMES_AES_256_CBC_HMAC_SHA256 "AES-256-CBC-HMAC-SHA256" 91 #define PROV_NAMES_DES_EDE3_ECB "DES-EDE3-ECB:DES-EDE3" 92 #define PROV_NAMES_DES_EDE3_CBC "DES-EDE3-CBC:DES3:1.2.840.113549.3.7" 93 #define PROV_NAMES_NULL "NULL" 94 #define PROV_NAMES_AES_256_OCB "AES-256-OCB" 95 #define PROV_NAMES_AES_192_OCB "AES-192-OCB" 96 #define PROV_NAMES_AES_128_OCB "AES-128-OCB" 97 #define PROV_NAMES_AES_128_SIV "AES-128-SIV" 98 #define PROV_NAMES_AES_192_SIV "AES-192-SIV" 99 #define PROV_NAMES_AES_256_SIV "AES-256-SIV" 100 #define PROV_NAMES_AES_128_GCM_SIV "AES-128-GCM-SIV" 101 #define PROV_NAMES_AES_192_GCM_SIV "AES-192-GCM-SIV" 102 #define PROV_NAMES_AES_256_GCM_SIV "AES-256-GCM-SIV" 103 #define PROV_NAMES_ARIA_256_GCM "ARIA-256-GCM:1.2.410.200046.1.1.36" 104 #define PROV_NAMES_ARIA_192_GCM "ARIA-192-GCM:1.2.410.200046.1.1.35" 105 #define PROV_NAMES_ARIA_128_GCM "ARIA-128-GCM:1.2.410.200046.1.1.34" 106 #define PROV_NAMES_ARIA_256_CCM "ARIA-256-CCM:1.2.410.200046.1.1.39" 107 #define PROV_NAMES_ARIA_192_CCM "ARIA-192-CCM:1.2.410.200046.1.1.38" 108 #define PROV_NAMES_ARIA_128_CCM "ARIA-128-CCM:1.2.410.200046.1.1.37" 109 #define PROV_NAMES_ARIA_256_ECB "ARIA-256-ECB:1.2.410.200046.1.1.11" 110 #define PROV_NAMES_ARIA_192_ECB "ARIA-192-ECB:1.2.410.200046.1.1.6" 111 #define PROV_NAMES_ARIA_128_ECB "ARIA-128-ECB:1.2.410.200046.1.1.1" 112 #define PROV_NAMES_ARIA_256_CBC "ARIA-256-CBC:ARIA256:1.2.410.200046.1.1.12" 113 #define PROV_NAMES_ARIA_192_CBC "ARIA-192-CBC:ARIA192:1.2.410.200046.1.1.7" 114 #define PROV_NAMES_ARIA_128_CBC "ARIA-128-CBC:ARIA128:1.2.410.200046.1.1.2" 115 #define PROV_NAMES_ARIA_256_OFB "ARIA-256-OFB:1.2.410.200046.1.1.14" 116 #define PROV_NAMES_ARIA_192_OFB "ARIA-192-OFB:1.2.410.200046.1.1.9" 117 #define PROV_NAMES_ARIA_128_OFB "ARIA-128-OFB:1.2.410.200046.1.1.4" 118 #define PROV_NAMES_ARIA_256_CFB "ARIA-256-CFB:1.2.410.200046.1.1.13" 119 #define PROV_NAMES_ARIA_192_CFB "ARIA-192-CFB:1.2.410.200046.1.1.8" 120 #define PROV_NAMES_ARIA_128_CFB "ARIA-128-CFB:1.2.410.200046.1.1.3" 121 #define PROV_NAMES_ARIA_256_CFB1 "ARIA-256-CFB1" 122 #define PROV_NAMES_ARIA_192_CFB1 "ARIA-192-CFB1" 123 #define PROV_NAMES_ARIA_128_CFB1 "ARIA-128-CFB1" 124 #define PROV_NAMES_ARIA_256_CFB8 "ARIA-256-CFB8" 125 #define PROV_NAMES_ARIA_192_CFB8 "ARIA-192-CFB8" 126 #define PROV_NAMES_ARIA_128_CFB8 "ARIA-128-CFB8" 127 #define PROV_NAMES_ARIA_256_CTR "ARIA-256-CTR:1.2.410.200046.1.1.15" 128 #define PROV_NAMES_ARIA_192_CTR "ARIA-192-CTR:1.2.410.200046.1.1.10" 129 #define PROV_NAMES_ARIA_128_CTR "ARIA-128-CTR:1.2.410.200046.1.1.5" 130 #define PROV_NAMES_CAMELLIA_256_ECB "CAMELLIA-256-ECB:0.3.4401.5.3.1.9.41" 131 #define PROV_NAMES_CAMELLIA_192_ECB "CAMELLIA-192-ECB:0.3.4401.5.3.1.9.21" 132 #define PROV_NAMES_CAMELLIA_128_ECB "CAMELLIA-128-ECB:0.3.4401.5.3.1.9.1" 133 #define PROV_NAMES_CAMELLIA_256_CBC "CAMELLIA-256-CBC:CAMELLIA256:1.2.392.200011.61.1.1.1.4" 134 #define PROV_NAMES_CAMELLIA_192_CBC "CAMELLIA-192-CBC:CAMELLIA192:1.2.392.200011.61.1.1.1.3" 135 #define PROV_NAMES_CAMELLIA_128_CBC "CAMELLIA-128-CBC:CAMELLIA128:1.2.392.200011.61.1.1.1.2" 136 #define PROV_NAMES_CAMELLIA_256_CBC_CTS "CAMELLIA-256-CBC-CTS" 137 #define PROV_NAMES_CAMELLIA_192_CBC_CTS "CAMELLIA-192-CBC-CTS" 138 #define PROV_NAMES_CAMELLIA_128_CBC_CTS "CAMELLIA-128-CBC-CTS" 139 #define PROV_NAMES_CAMELLIA_256_OFB "CAMELLIA-256-OFB:0.3.4401.5.3.1.9.43" 140 #define PROV_NAMES_CAMELLIA_192_OFB "CAMELLIA-192-OFB:0.3.4401.5.3.1.9.23" 141 #define PROV_NAMES_CAMELLIA_128_OFB "CAMELLIA-128-OFB:0.3.4401.5.3.1.9.3" 142 #define PROV_NAMES_CAMELLIA_256_CFB "CAMELLIA-256-CFB:0.3.4401.5.3.1.9.44" 143 #define PROV_NAMES_CAMELLIA_192_CFB "CAMELLIA-192-CFB:0.3.4401.5.3.1.9.24" 144 #define PROV_NAMES_CAMELLIA_128_CFB "CAMELLIA-128-CFB:0.3.4401.5.3.1.9.4" 145 #define PROV_NAMES_CAMELLIA_256_CFB1 "CAMELLIA-256-CFB1" 146 #define PROV_NAMES_CAMELLIA_192_CFB1 "CAMELLIA-192-CFB1" 147 #define PROV_NAMES_CAMELLIA_128_CFB1 "CAMELLIA-128-CFB1" 148 #define PROV_NAMES_CAMELLIA_256_CFB8 "CAMELLIA-256-CFB8" 149 #define PROV_NAMES_CAMELLIA_192_CFB8 "CAMELLIA-192-CFB8" 150 #define PROV_NAMES_CAMELLIA_128_CFB8 "CAMELLIA-128-CFB8" 151 #define PROV_NAMES_CAMELLIA_256_CTR "CAMELLIA-256-CTR:0.3.4401.5.3.1.9.49" 152 #define PROV_NAMES_CAMELLIA_192_CTR "CAMELLIA-192-CTR:0.3.4401.5.3.1.9.29" 153 #define PROV_NAMES_CAMELLIA_128_CTR "CAMELLIA-128-CTR:0.3.4401.5.3.1.9.9" 154 #define PROV_NAMES_DES_EDE3_OFB "DES-EDE3-OFB" 155 #define PROV_NAMES_DES_EDE3_CFB "DES-EDE3-CFB" 156 #define PROV_NAMES_DES_EDE3_CFB8 "DES-EDE3-CFB8" 157 #define PROV_NAMES_DES_EDE3_CFB1 "DES-EDE3-CFB1" 158 #define PROV_NAMES_DES3_WRAP "DES3-WRAP:id-smime-alg-CMS3DESwrap:1.2.840.113549.1.9.16.3.6" 159 #define PROV_NAMES_DES_EDE_ECB "DES-EDE-ECB:DES-EDE:1.3.14.3.2.17" 160 #define PROV_NAMES_DES_EDE_CBC "DES-EDE-CBC" 161 #define PROV_NAMES_DES_EDE_OFB "DES-EDE-OFB" 162 #define PROV_NAMES_DES_EDE_CFB "DES-EDE-CFB" 163 #define PROV_NAMES_SM4_ECB "SM4-ECB:1.2.156.10197.1.104.1" 164 #define PROV_NAMES_SM4_CBC "SM4-CBC:SM4:1.2.156.10197.1.104.2" 165 #define PROV_NAMES_SM4_CTR "SM4-CTR:1.2.156.10197.1.104.7" 166 #define PROV_NAMES_SM4_OFB "SM4-OFB:SM4-OFB128:1.2.156.10197.1.104.3" 167 #define PROV_NAMES_SM4_CFB "SM4-CFB:SM4-CFB128:1.2.156.10197.1.104.4" 168 #define PROV_NAMES_SM4_GCM "SM4-GCM:1.2.156.10197.1.104.8" 169 #define PROV_NAMES_SM4_CCM "SM4-CCM:1.2.156.10197.1.104.9" 170 #define PROV_NAMES_SM4_XTS "SM4-XTS:1.2.156.10197.1.104.10" 171 #define PROV_NAMES_ChaCha20 "ChaCha20" 172 #define PROV_NAMES_ChaCha20_Poly1305 "ChaCha20-Poly1305" 173 #define PROV_NAMES_CAST5_ECB "CAST5-ECB" 174 #define PROV_NAMES_CAST5_CBC "CAST5-CBC:CAST-CBC:CAST:1.2.840.113533.7.66.10" 175 #define PROV_NAMES_CAST5_OFB "CAST5-OFB" 176 #define PROV_NAMES_CAST5_CFB "CAST5-CFB" 177 #define PROV_NAMES_BF_ECB "BF-ECB" 178 #define PROV_NAMES_BF_CBC "BF-CBC:BF:BLOWFISH:1.3.6.1.4.1.3029.1.2" 179 #define PROV_NAMES_BF_OFB "BF-OFB" 180 #define PROV_NAMES_BF_CFB "BF-CFB" 181 #define PROV_NAMES_IDEA_ECB "IDEA-ECB" 182 #define PROV_NAMES_IDEA_CBC "IDEA-CBC:IDEA:1.3.6.1.4.1.188.7.1.1.2" 183 #define PROV_NAMES_IDEA_OFB "IDEA-OFB:IDEA-OFB64" 184 #define PROV_NAMES_IDEA_CFB "IDEA-CFB:IDEA-CFB64" 185 #define PROV_NAMES_SEED_ECB "SEED-ECB:1.2.410.200004.1.3" 186 #define PROV_NAMES_SEED_CBC "SEED-CBC:SEED:1.2.410.200004.1.4" 187 #define PROV_NAMES_SEED_OFB "SEED-OFB:SEED-OFB128:1.2.410.200004.1.6" 188 #define PROV_NAMES_SEED_CFB "SEED-CFB:SEED-CFB128:1.2.410.200004.1.5" 189 #define PROV_NAMES_RC2_ECB "RC2-ECB" 190 #define PROV_NAMES_RC2_CBC "RC2-CBC:RC2:RC2-128:1.2.840.113549.3.2" 191 #define PROV_NAMES_RC2_40_CBC "RC2-40-CBC:RC2-40" 192 #define PROV_NAMES_RC2_64_CBC "RC2-64-CBC:RC2-64" 193 #define PROV_NAMES_RC2_CFB "RC2-CFB" 194 #define PROV_NAMES_RC2_OFB "RC2-OFB" 195 #define PROV_NAMES_RC4 "RC4:1.2.840.113549.3.4" 196 #define PROV_NAMES_RC4_40 "RC4-40" 197 #define PROV_NAMES_RC4_HMAC_MD5 "RC4-HMAC-MD5" 198 #define PROV_NAMES_RC5_ECB "RC5-ECB" 199 #define PROV_NAMES_RC5_CBC "RC5-CBC:RC5:1.2.840.113549.3.8" 200 #define PROV_NAMES_RC5_OFB "RC5-OFB" 201 #define PROV_NAMES_RC5_CFB "RC5-CFB" 202 #define PROV_NAMES_DESX_CBC "DESX-CBC:DESX" 203 #define PROV_NAMES_DES_ECB "DES-ECB:1.3.14.3.2.6" 204 #define PROV_NAMES_DES_CBC "DES-CBC:DES:1.3.14.3.2.7" 205 #define PROV_NAMES_DES_OFB "DES-OFB:1.3.14.3.2.8" 206 #define PROV_NAMES_DES_CFB "DES-CFB:1.3.14.3.2.9" 207 #define PROV_NAMES_DES_CFB1 "DES-CFB1" 208 #define PROV_NAMES_DES_CFB8 "DES-CFB8" 209 210 /*- 211 * Digests 212 * ------- 213 */ 214 #define PROV_NAMES_SHA1 "SHA1:SHA-1:SSL3-SHA1:1.3.14.3.2.26" 215 #define PROV_NAMES_SHA2_224 "SHA2-224:SHA-224:SHA224:2.16.840.1.101.3.4.2.4" 216 #define PROV_NAMES_SHA2_256 "SHA2-256:SHA-256:SHA256:2.16.840.1.101.3.4.2.1" 217 #define PROV_NAMES_SHA2_256_192 "SHA2-256/192:SHA-256/192:SHA256-192" 218 #define PROV_NAMES_SHA2_384 "SHA2-384:SHA-384:SHA384:2.16.840.1.101.3.4.2.2" 219 #define PROV_NAMES_SHA2_512 "SHA2-512:SHA-512:SHA512:2.16.840.1.101.3.4.2.3" 220 #define PROV_NAMES_SHA2_512_224 "SHA2-512/224:SHA-512/224:SHA512-224:2.16.840.1.101.3.4.2.5" 221 #define PROV_NAMES_SHA2_512_256 "SHA2-512/256:SHA-512/256:SHA512-256:2.16.840.1.101.3.4.2.6" 222 223 /* We agree with NIST here, so one name only */ 224 #define PROV_NAMES_SHA3_224 "SHA3-224:2.16.840.1.101.3.4.2.7" 225 #define PROV_NAMES_SHA3_256 "SHA3-256:2.16.840.1.101.3.4.2.8" 226 #define PROV_NAMES_SHA3_384 "SHA3-384:2.16.840.1.101.3.4.2.9" 227 #define PROV_NAMES_SHA3_512 "SHA3-512:2.16.840.1.101.3.4.2.10" 228 229 #define PROV_NAMES_KECCAK_224 "KECCAK-224" 230 #define PROV_NAMES_KECCAK_256 "KECCAK-256" 231 #define PROV_NAMES_KECCAK_384 "KECCAK-384" 232 #define PROV_NAMES_KECCAK_512 "KECCAK-512" 233 234 #define PROV_NAMES_SHAKE_128 "SHAKE-128:SHAKE128:2.16.840.1.101.3.4.2.11" 235 #define PROV_NAMES_SHAKE_256 "SHAKE-256:SHAKE256:2.16.840.1.101.3.4.2.12" 236 237 /* 238 * KECCAK-KMAC-128 and KECCAK-KMAC-256 as hashes are mostly useful for 239 * KMAC128 and KMAC256. 240 */ 241 #define PROV_NAMES_KECCAK_KMAC_128 "KECCAK-KMAC-128:KECCAK-KMAC128" 242 #define PROV_NAMES_KECCAK_KMAC_256 "KECCAK-KMAC-256:KECCAK-KMAC256" 243 /* 244 * https://blake2.net/ doesn't specify size variants, but mentions that 245 * Bouncy Castle uses the names BLAKE2b-160, BLAKE2b-256, BLAKE2b-384, and 246 * BLAKE2b-512 247 * If we assume that "2b" and "2s" are versions, that pattern fits with ours. 248 * We also add our historical names. 249 */ 250 #define PROV_NAMES_BLAKE2S_256 "BLAKE2S-256:BLAKE2s256:1.3.6.1.4.1.1722.12.2.2.8" 251 #define PROV_NAMES_BLAKE2B_512 "BLAKE2B-512:BLAKE2b512:1.3.6.1.4.1.1722.12.2.1.16" 252 #define PROV_NAMES_SM3 "SM3:1.2.156.10197.1.401" 253 #define PROV_NAMES_MD5 "MD5:SSL3-MD5:1.2.840.113549.2.5" 254 #define PROV_NAMES_MD5_SHA1 "MD5-SHA1" 255 #define PROV_NAMES_MD2 "MD2:1.2.840.113549.2.2" 256 #define PROV_NAMES_MD4 "MD4:1.2.840.113549.2.4" 257 #define PROV_NAMES_MDC2 "MDC2:2.5.8.3.101" 258 #define PROV_NAMES_WHIRLPOOL "WHIRLPOOL:1.0.10118.3.0.55" 259 #define PROV_NAMES_RIPEMD_160 "RIPEMD-160:RIPEMD160:RIPEMD:RMD160:1.3.36.3.2.1" 260 261 /*- 262 * KDFs / PRFs 263 * ----------- 264 */ 265 #define PROV_NAMES_HKDF "HKDF" 266 #define PROV_DESCS_HKDF_SIGN "OpenSSL HKDF via EVP_PKEY implementation" 267 #define PROV_NAMES_TLS1_3_KDF "TLS13-KDF" 268 #define PROV_NAMES_SSKDF "SSKDF" 269 #define PROV_NAMES_PBKDF1 "PBKDF1" 270 #define PROV_NAMES_PBKDF2 "PBKDF2:1.2.840.113549.1.5.12" 271 #define PROV_NAMES_PVKKDF "PVKKDF" 272 #define PROV_NAMES_SSHKDF "SSHKDF" 273 #define PROV_NAMES_X963KDF "X963KDF:X942KDF-CONCAT" 274 #define PROV_NAMES_X942KDF_ASN1 "X942KDF-ASN1:X942KDF" 275 #define PROV_NAMES_TLS1_PRF "TLS1-PRF" 276 #define PROV_DESCS_TLS1_PRF_SIGN "OpenSSL TLS1_PRF via EVP_PKEY implementation" 277 #define PROV_NAMES_KBKDF "KBKDF" 278 #define PROV_NAMES_PKCS12KDF "PKCS12KDF" 279 #define PROV_NAMES_SCRYPT "SCRYPT:id-scrypt:1.3.6.1.4.1.11591.4.11" 280 #define PROV_DESCS_SCRYPT_SIGN "OpenSSL SCRYPT via EVP_PKEY implementation" 281 #define PROV_NAMES_KRB5KDF "KRB5KDF" 282 #define PROV_NAMES_HMAC_DRBG_KDF "HMAC-DRBG-KDF" 283 #define PROV_NAMES_ARGON2I "ARGON2I" 284 #define PROV_NAMES_ARGON2D "ARGON2D" 285 #define PROV_NAMES_ARGON2ID "ARGON2ID" 286 287 /*- 288 * MACs 289 * ---- 290 */ 291 #define PROV_NAMES_HMAC "HMAC" 292 #define PROV_DESCS_HMAC_SIGN "OpenSSL HMAC via EVP_PKEY implementation" 293 #define PROV_NAMES_CMAC "CMAC" 294 #define PROV_DESCS_CMAC_SIGN "OpenSSL CMAC via EVP_PKEY implementation" 295 #define PROV_NAMES_SIPHASH "SIPHASH" 296 #define PROV_DESCS_SIPHASH_SIGN "OpenSSL SIPHASH via EVP_PKEY implementation" 297 #define PROV_NAMES_POLY1305 "POLY1305" 298 #define PROV_DESCS_POLY1305_SIGN "OpenSSL POLY1305 via EVP_PKEY implementation" 299 #define PROV_NAMES_GMAC "GMAC:1.0.9797.3.4" 300 #define PROV_NAMES_KMAC_128 "KMAC-128:KMAC128:2.16.840.1.101.3.4.2.19" 301 #define PROV_NAMES_KMAC_256 "KMAC-256:KMAC256:2.16.840.1.101.3.4.2.20" 302 #define PROV_NAMES_BLAKE2BMAC "BLAKE2BMAC:1.3.6.1.4.1.1722.12.2.1" 303 #define PROV_NAMES_BLAKE2SMAC "BLAKE2SMAC:1.3.6.1.4.1.1722.12.2.2" 304 305 /*- 306 * RANDs 307 * ----- 308 */ 309 #define PROV_NAMES_CRNG_TEST "CRNG-TEST" 310 #define PROV_NAMES_CTR_DRBG "CTR-DRBG" 311 #define PROV_NAMES_HASH_DRBG "HASH-DRBG" 312 #define PROV_NAMES_HMAC_DRBG "HMAC-DRBG" 313 #define PROV_NAMES_TEST_RAND "TEST-RAND" 314 #define PROV_NAMES_SEED_SRC "SEED-SRC" 315 #define PROV_NAMES_JITTER "JITTER" 316 317 /*- 318 * Asymmetric algos 319 * ---------------- 320 */ 321 #define PROV_NAMES_EC "EC:id-ecPublicKey:1.2.840.10045.2.1" 322 #define PROV_DESCS_EC "OpenSSL EC implementation" 323 #define PROV_NAMES_ECDH "ECDH" 324 #define PROV_DESCS_ECDH "OpenSSL ECDH implementation" 325 #define PROV_NAMES_ECDSA "ECDSA" 326 #define PROV_NAMES_ECDSA_SHA1 "ECDSA-SHA1:ECDSA-SHA-1:ecdsa-with-SHA1:1.2.840.10045.4.1" 327 #define PROV_NAMES_ECDSA_SHA224 "ECDSA-SHA2-224:ECDSA-SHA224:ecdsa-with-SHA224:1.2.840.10045.4.3.1" 328 #define PROV_NAMES_ECDSA_SHA256 "ECDSA-SHA2-256:ECDSA-SHA256:ecdsa-with-SHA256:1.2.840.10045.4.3.2" 329 #define PROV_NAMES_ECDSA_SHA384 "ECDSA-SHA2-384:ECDSA-SHA384:ecdsa-with-SHA384:1.2.840.10045.4.3.3" 330 #define PROV_NAMES_ECDSA_SHA512 "ECDSA-SHA2-512:ECDSA-SHA512:ecdsa-with-SHA512:1.2.840.10045.4.3.4" 331 #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" 332 #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" 333 #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" 334 #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" 335 #define PROV_DESCS_ECDSA "OpenSSL ECDSA implementation" 336 #define PROV_NAMES_X25519 "X25519:1.3.101.110" 337 #define PROV_DESCS_X25519 "OpenSSL X25519 implementation" 338 #define PROV_NAMES_X448 "X448:1.3.101.111" 339 #define PROV_DESCS_X448 "OpenSSL X448 implementation" 340 #define PROV_NAMES_ED25519 "ED25519:1.3.101.112" 341 #define PROV_DESCS_ED25519 "OpenSSL ED25519 implementation" 342 #define PROV_NAMES_ED25519ph "ED25519ph" 343 #define PROV_DESCS_ED25519ph "OpenSSL ED25519ph implementation" 344 #define PROV_NAMES_ED25519ctx "ED25519ctx" 345 #define PROV_DESCS_ED25519ctx "OpenSSL ED25519ctx implementation" 346 #define PROV_NAMES_ED448 "ED448:1.3.101.113" 347 #define PROV_DESCS_ED448 "OpenSSL ED448 implementation" 348 #define PROV_NAMES_ED448ph "ED448ph" 349 #define PROV_DESCS_ED448ph "OpenSSL ED448ph implementation" 350 #define PROV_NAMES_DH "DH:dhKeyAgreement:1.2.840.113549.1.3.1" 351 #define PROV_DESCS_DH "OpenSSL PKCS#3 DH implementation" 352 #define PROV_NAMES_DHX "DHX:X9.42 DH:dhpublicnumber:1.2.840.10046.2.1" 353 #define PROV_DESCS_DHX "OpenSSL X9.42 DH implementation" 354 #define PROV_NAMES_DSA "DSA:dsaEncryption:1.2.840.10040.4.1" 355 #define PROV_NAMES_DSA_SHA1 "DSA-SHA1:DSA-SHA-1:dsaWithSHA1:1.2.840.10040.4.3" 356 #define PROV_NAMES_DSA_SHA224 "DSA-SHA2-224:DSA-SHA224:dsa_with_SHA224:2.16.840.1.101.3.4.3.1" 357 #define PROV_NAMES_DSA_SHA256 "DSA-SHA2-256:DSA-SHA256:dsa_with_SHA256:2.16.840.1.101.3.4.3.2" 358 #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" 359 #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" 360 #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" 361 #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" 362 #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" 363 #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" 364 #define PROV_DESCS_DSA "OpenSSL DSA implementation" 365 #define PROV_NAMES_RSA "RSA:rsaEncryption:1.2.840.113549.1.1.1" 366 #define PROV_NAMES_RSA_MD2 "RSA-MD2:md2WithRSAEncryption:1.2.840.113549.1.1.2" 367 #define PROV_NAMES_RSA_MD4 "RSA-MD4:md4WithEncryption:1.2.840.113549.1.1.3" 368 #define PROV_NAMES_RSA_MD5 "RSA-MD5:md5WithRSAEncryption:1.2.840.113549.1.1.4" 369 #define PROV_NAMES_RSA_RIPEMD160 "RSA-RIPEMD160:ripemd160WithRSA:1.3.36.3.3.1.2" 370 #define PROV_NAMES_RSA_SHA1 "RSA-SHA1:RSA-SHA-1:sha1WithRSAEncryption:1.2.840.113549.1.1.5" 371 #define PROV_NAMES_RSA_SHA256 "RSA-SHA2-256:RSA-SHA256:sha256WithRSAEncryption:1.2.840.113549.1.1.11" 372 #define PROV_NAMES_RSA_SHA384 "RSA-SHA2-384:RSA-SHA384:sha384WithRSAEncryption:1.2.840.113549.1.1.12" 373 #define PROV_NAMES_RSA_SHA512 "RSA-SHA2-512:RSA-SHA512:sha512WithRSAEncryption:1.2.840.113549.1.1.13" 374 #define PROV_NAMES_RSA_SHA224 "RSA-SHA2-224:RSA-SHA224:sha224WithRSAEncryption:1.2.840.113549.1.1.14" 375 #define PROV_NAMES_RSA_SHA512_224 "RSA-SHA2-512/224:RSA-SHA512-224:sha512-224WithRSAEncryption:1.2.840.113549.1.1.15" 376 #define PROV_NAMES_RSA_SHA512_256 "RSA-SHA2-512/256:RSA-SHA512-256:sha512-256WithRSAEncryption:1.2.840.113549.1.1.16" 377 #define PROV_NAMES_RSA_SM3 "RSA-SM3:sm3WithRSAEncryption:1.2.156.10197.1.504" 378 #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" 379 #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" 380 #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" 381 #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" 382 #define PROV_DESCS_RSA "OpenSSL RSA implementation" 383 #define PROV_NAMES_RSA_PSS "RSA-PSS:RSASSA-PSS:1.2.840.113549.1.1.10" 384 #define PROV_DESCS_RSA_PSS "OpenSSL RSA-PSS implementation" 385 #define PROV_NAMES_SM2 "SM2:1.2.156.10197.1.301" 386 #define PROV_DESCS_SM2 "OpenSSL SM2 implementation" 387