summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/evp/evp_names.c477
1 files changed, 475 insertions, 2 deletions
diff --git a/src/lib/libcrypto/evp/evp_names.c b/src/lib/libcrypto/evp/evp_names.c
index abe2d5bcbd..fbd84711f5 100644
--- a/src/lib/libcrypto/evp/evp_names.c
+++ b/src/lib/libcrypto/evp/evp_names.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_names.c,v 1.1 2024/01/13 10:57:08 tb Exp $ */ 1/* $OpenBSD: evp_names.c,v 1.2 2024/01/13 11:00:09 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2023 Theo Buehler <tb@openbsd.org> 3 * Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
4 * 4 *
@@ -19,7 +19,8 @@
19#include <openssl/objects.h> 19#include <openssl/objects.h>
20 20
21/* 21/*
22 * The .name is the lookup name used by EVP_get_cipherbyname() while .alias 22 * In the following two structs, .name is the lookup name that is used
23 * for EVP_get_cipherbyname() and EVP_get_digestbyname(), while .alias
23 * keeps track of the aliased name. 24 * keeps track of the aliased name.
24 */ 25 */
25 26
@@ -29,6 +30,12 @@ struct cipher_name {
29 const char *alias; 30 const char *alias;
30}; 31};
31 32
33struct digest_name {
34 const char *name;
35 const EVP_MD *(*digest)(void);
36 const char *alias;
37};
38
32/* 39/*
33 * Keep this table alphabetically sorted by increasing .name. 40 * Keep this table alphabetically sorted by increasing .name.
34 * regress/lib/libcrypto/evp/evp_test.c checks that. 41 * regress/lib/libcrypto/evp/evp_test.c checks that.
@@ -1086,3 +1093,469 @@ const struct cipher_name cipher_names[] = {
1086}; 1093};
1087 1094
1088#define N_CIPHER_NAMES (sizeof(cipher_names) / sizeof(cipher_names[0])) 1095#define N_CIPHER_NAMES (sizeof(cipher_names) / sizeof(cipher_names[0]))
1096
1097/*
1098 * Keep this table alphabetically sorted by increasing .name.
1099 * regresss/lib/libcrypto/evp/evp_test.c checks that.
1100 */
1101
1102const struct digest_name digest_names[] = {
1103#ifndef OPENSSL_NO_GOST
1104 {
1105 .name = LN_id_Gost28147_89_MAC,
1106 .digest = EVP_gost2814789imit,
1107 },
1108 {
1109 .name = LN_id_tc26_gost3411_2012_512,
1110 .digest = EVP_streebog512,
1111 },
1112 {
1113 .name = LN_id_tc26_gost3411_2012_256,
1114 .digest = EVP_streebog256,
1115 },
1116 {
1117 .name = LN_id_GostR3411_94,
1118 .digest = EVP_gostr341194,
1119 },
1120#endif /* OPENSSL_NO_GOST */
1121
1122#ifndef OPENSSL_NO_MD4
1123 {
1124 .name = SN_md4,
1125 .digest = EVP_md4,
1126 },
1127#endif /* OPENSSL_NO_MD4 */
1128
1129#ifndef OPENSSL_NO_MD5
1130 {
1131 .name = SN_md5,
1132 .digest = EVP_md5,
1133 },
1134#endif /* OPENSSL_NO_MD5 */
1135
1136#if !defined(OPENSSL_NO_MD5) && !defined(OPENSSL_NO_SHA1)
1137 {
1138 .name = SN_md5_sha1,
1139 .digest = EVP_md5_sha1,
1140 },
1141#endif /* OPENSSL_NO_MD5 && OPENSSL_NO_SHA1 */
1142
1143#ifndef OPENSSL_NO_RIPEMD
1144 {
1145 .name = SN_ripemd160,
1146 .digest = EVP_ripemd160,
1147 },
1148#endif /* OPENSSL_NO_RIPEMD */
1149
1150#ifndef OPENSSL_NO_RSA
1151#ifndef OPENSSL_NO_MD4
1152 {
1153 .name = SN_md4WithRSAEncryption,
1154 .digest = EVP_md4,
1155 .alias = SN_md4,
1156 },
1157#endif /* OPENSSL_NO_MD4 */
1158#ifndef OPENSSL_NO_MD5
1159 {
1160 .name = SN_md5WithRSAEncryption,
1161 .digest = EVP_md5,
1162 .alias = SN_md5,
1163 },
1164#endif /* OPENSSL_NO_MD5 */
1165#ifndef OPENSSL_NO_RIPEMD
1166 {
1167 .name = SN_ripemd160WithRSA,
1168 .digest = EVP_ripemd160,
1169 .alias = SN_ripemd160,
1170 },
1171#endif /* OPENSSL_NO_RIPEMD */
1172#ifndef OPENSSL_NO_SHA1
1173 {
1174 .name = SN_sha1WithRSAEncryption,
1175 .digest = EVP_sha1,
1176 .alias = SN_sha1,
1177 },
1178 {
1179 .name = SN_sha1WithRSA,
1180 .digest = EVP_sha1,
1181 .alias = SN_sha1, /* XXX - alias to SN_sha1WithRSAEncryption? */
1182 },
1183#endif /* OPENSSL_NO_SHA1 */
1184#ifndef OPENSSL_NO_SHA256
1185 {
1186 .name = SN_sha224WithRSAEncryption,
1187 .digest = EVP_sha224,
1188 .alias = SN_sha224,
1189 },
1190 {
1191 .name = SN_sha256WithRSAEncryption,
1192 .digest = EVP_sha256,
1193 .alias = SN_sha256,
1194 },
1195#endif /* OPENSSL_NO_SHA256 */
1196#ifndef OPENSSL_NO_SHA3
1197 {
1198 .name = LN_RSA_SHA3_224,
1199 .digest = EVP_sha3_224,
1200 .alias = SN_sha3_224,
1201 },
1202 {
1203 .name = LN_RSA_SHA3_256,
1204 .digest = EVP_sha3_256,
1205 .alias = SN_sha3_256,
1206 },
1207 {
1208 .name = LN_RSA_SHA3_384,
1209 .digest = EVP_sha3_384,
1210 .alias = SN_sha3_384,
1211 },
1212 {
1213 .name = LN_RSA_SHA3_512,
1214 .digest = EVP_sha3_512,
1215 .alias = SN_sha3_512,
1216 },
1217#endif /* OPENSSL_NO_SHA3 */
1218#ifndef OPENSSL_NO_SHA512
1219 {
1220 .name = SN_sha384WithRSAEncryption,
1221 .digest = EVP_sha384,
1222 .alias = SN_sha384,
1223 },
1224 {
1225 .name = SN_sha512WithRSAEncryption,
1226 .digest = EVP_sha512,
1227 .alias = SN_sha512,
1228 },
1229 {
1230 .name = SN_sha512_224WithRSAEncryption,
1231 .digest = EVP_sha512_224,
1232 .alias = SN_sha512_224,
1233 },
1234 {
1235 .name = SN_sha512_256WithRSAEncryption,
1236 .digest = EVP_sha512_256,
1237 .alias = SN_sha512_256,
1238 },
1239#endif /* OPENSSL_NO_SHA256 */
1240#ifndef OPENSSL_NO_SM4
1241 {
1242 .name = SN_sm3WithRSAEncryption,
1243 .digest = EVP_sm3,
1244 .alias = SN_sm3,
1245 },
1246#endif
1247#endif /* OPENSSL_NO_RSA */
1248
1249#ifndef OPENSSL_NO_SHA1
1250 {
1251 .name = SN_sha1,
1252 .digest = EVP_sha1,
1253 },
1254#endif /* OPENSSL_NO_SHA1 */
1255#ifndef OPENSSL_NO_SHA256
1256 {
1257 .name = SN_sha224,
1258 .digest = EVP_sha224,
1259 },
1260 {
1261 .name = SN_sha256,
1262 .digest = EVP_sha256,
1263 },
1264#endif /* OPENSSL_NO_SHA256 */
1265#ifndef OPENSSL_NO_SHA3
1266 {
1267 .name = SN_sha3_224,
1268 .digest = EVP_sha3_224,
1269 },
1270 {
1271 .name = SN_sha3_256,
1272 .digest = EVP_sha3_256,
1273 },
1274 {
1275 .name = SN_sha3_384,
1276 .digest = EVP_sha3_384,
1277 },
1278 {
1279 .name = SN_sha3_512,
1280 .digest = EVP_sha3_512,
1281 },
1282#endif /* OPENSSL_NO_SHA3 */
1283
1284#ifndef OPENSSL_NO_SHA512
1285 {
1286 .name = SN_sha384,
1287 .digest = EVP_sha384,
1288 },
1289 {
1290 .name = SN_sha512,
1291 .digest = EVP_sha512,
1292 },
1293 {
1294 .name = SN_sha512_224,
1295 .digest = EVP_sha512_224,
1296 },
1297 {
1298 .name = SN_sha512_256,
1299 .digest = EVP_sha512_256,
1300 },
1301#endif /* OPENSSL_NO_SHA512 */
1302#ifndef OPENSSL_NO_SM3
1303 {
1304 .name = SN_sm3,
1305 .digest = EVP_sm3,
1306 },
1307#endif /* OPENSSL_NO_SM3 */
1308
1309#ifndef OPENSSL_NO_GOST
1310 {
1311 .name = SN_id_Gost28147_89_MAC,
1312 .digest = EVP_gost2814789imit,
1313 },
1314#endif /* OPENSSL_NO_GOST */
1315
1316#if !defined(OPENSSL_NO_RSA) && !defined(OPENSSL_NO_SHA3)
1317 {
1318 .name = SN_RSA_SHA3_224,
1319 .digest = EVP_sha3_224,
1320 .alias = SN_sha3_224,
1321 },
1322 {
1323 .name = SN_RSA_SHA3_256,
1324 .digest = EVP_sha3_256,
1325 .alias = SN_sha3_256,
1326 },
1327 {
1328 .name = SN_RSA_SHA3_384,
1329 .digest = EVP_sha3_384,
1330 .alias = SN_sha3_384,
1331 },
1332 {
1333 .name = SN_RSA_SHA3_512,
1334 .digest = EVP_sha3_512,
1335 .alias = SN_sha3_512,
1336 },
1337#endif /* OPENSSL_NO_RSA && OPENSSL_NO_SHA3 */
1338
1339#ifndef OPENSSL_NO_MD4
1340 {
1341 .name = LN_md4,
1342 .digest = EVP_md4,
1343 },
1344#endif /* OPENSSL_NO_MD4 */
1345#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_RSA)
1346 {
1347 .name = LN_md4WithRSAEncryption,
1348 .digest = EVP_md4,
1349 .alias = SN_md4,
1350 },
1351#endif /* OPENSSL_NO_MD4 */
1352
1353#if !defined(OPENSSL_NO_MD5)
1354 {
1355 .name = LN_md5,
1356 .digest = EVP_md5,
1357 },
1358#endif /* OPENSSL_NO_MD5 */
1359#if !defined(OPENSSL_NO_MD5) && !defined(OPENSSL_NO_SHA1)
1360 {
1361 .name = LN_md5_sha1,
1362 .digest = EVP_md5_sha1,
1363 },
1364#endif /* OPENSSL_NO_MD5 && OPENSSL_NO_SHA1 */
1365#if !defined(OPENSSL_NO_MD5) && !defined(OPENSSL_NO_RSA)
1366 {
1367 .name = LN_md5WithRSAEncryption,
1368 .digest = EVP_md5,
1369 .alias = SN_md5,
1370 },
1371#endif
1372
1373#ifndef OPENSSL_NO_GOST
1374 {
1375 .name = SN_id_GostR3411_94,
1376 .digest = EVP_gostr341194,
1377 },
1378#endif /* OPENSSL_NO_GOST */
1379
1380#ifndef OPENSSL_NO_RIPEMD
1381 {
1382 .name = "ripemd",
1383 .digest = EVP_ripemd160,
1384 .alias = SN_ripemd160,
1385 },
1386 {
1387 .name = LN_ripemd160,
1388 .digest = EVP_ripemd160,
1389 },
1390#ifndef OPENSSL_NO_RSA
1391 {
1392 .name = LN_ripemd160WithRSA,
1393 .digest = EVP_ripemd160,
1394 .alias = SN_ripemd160,
1395 },
1396#endif /* OPENSSL_NO_RSA */
1397 {
1398 .name = "rmd160",
1399 .digest = EVP_ripemd160,
1400 .alias = SN_ripemd160,
1401 },
1402#endif /* OPENSSL_NO_RIPEMD */
1403
1404#ifndef OPENSSL_NO_SHA1
1405 {
1406 .name = LN_sha1,
1407 .digest = EVP_sha1,
1408 },
1409#endif /* OPENSSL_NO_SHA1 */
1410#if !defined(OPENSSL_NO_SHA1) && !defined(OPENSSL_NO_RSA)
1411 {
1412 .name = LN_sha1WithRSAEncryption,
1413 .digest = EVP_sha1,
1414 .alias = SN_sha1,
1415 },
1416#endif /* OPENSSL_NO_SHA1 && OPENSSL_NO_RSA */
1417
1418#ifndef OPENSSL_NO_SHA256
1419 {
1420 .name = LN_sha224,
1421 .digest = EVP_sha224,
1422 },
1423#ifndef OPENSSL_NO_RSA
1424 {
1425 .name = LN_sha224WithRSAEncryption,
1426 .digest = EVP_sha224,
1427 .alias = SN_sha224,
1428 },
1429#endif /* OPENSSL_NO_RSA */
1430 {
1431 .name = LN_sha256,
1432 .digest = EVP_sha256,
1433 },
1434#ifndef OPENSSL_NO_RSA
1435 {
1436 .name = LN_sha256WithRSAEncryption,
1437 .digest = EVP_sha256,
1438 .alias = SN_sha256,
1439 },
1440#endif /* OPENSSL_NO_RSA */
1441#endif /* OPENSSL_NO_SHA256 */
1442
1443#ifndef OPENSSL_NO_SHA3
1444 {
1445 .name = LN_sha3_224,
1446 .digest = EVP_sha3_224,
1447 },
1448 {
1449 .name = LN_sha3_256,
1450 .digest = EVP_sha3_256,
1451 },
1452 {
1453 .name = LN_sha3_384,
1454 .digest = EVP_sha3_384,
1455 },
1456 {
1457 .name = LN_sha3_512,
1458 .digest = EVP_sha3_512,
1459 },
1460#endif /* OPENSSL_NO_SHA3 */
1461
1462#ifndef OPENSSL_NO_SHA512
1463 {
1464 .name = LN_sha384,
1465 .digest = EVP_sha384,
1466 },
1467#ifndef OPENSSL_NO_RSA
1468 {
1469 .name = LN_sha384WithRSAEncryption,
1470 .digest = EVP_sha384,
1471 .alias = SN_sha384,
1472 },
1473#endif /* OPENSSL_NO_RSA */
1474 {
1475 .name = LN_sha512,
1476 .digest = EVP_sha512,
1477 },
1478 {
1479 .name = LN_sha512_224,
1480 .digest = EVP_sha512_224,
1481 },
1482#ifndef OPENSSL_NO_RSA
1483 {
1484 .name = LN_sha512_224WithRSAEncryption,
1485 .digest = EVP_sha512_224,
1486 .alias = SN_sha512_224,
1487 },
1488#endif
1489 {
1490 .name = LN_sha512_256,
1491 .digest = EVP_sha512_256,
1492 },
1493#ifndef OPENSSL_NO_RSA
1494 {
1495 .name = LN_sha512_256WithRSAEncryption,
1496 .digest = EVP_sha512_256,
1497 .alias = SN_sha512_256,
1498 },
1499 {
1500 .name = LN_sha512WithRSAEncryption,
1501 .digest = EVP_sha512,
1502 .alias = SN_sha512,
1503 },
1504#endif
1505#endif /* OPENSSL_NO_SHA512 */
1506
1507#ifndef OPENSSL_NO_SM3
1508 {
1509 .name = LN_sm3,
1510 .digest = EVP_sm3,
1511 },
1512#endif /* OPENSSL_NO_SM3 */
1513#if !defined(OPENSSL_NO_SM3) && !defined(OPENSSL_NO_RSA)
1514 {
1515 .name = LN_sm3WithRSAEncryption,
1516 .digest = EVP_sm3,
1517 .alias = SN_sm3,
1518 },
1519#endif /* OPENSSL_NO_SM3 && OPENSSL_NO_RSA */
1520
1521#ifndef OPENSSL_NO_MD5
1522 {
1523 .name = "ssl2-md5",
1524 .digest = EVP_md5,
1525 .alias = SN_md5,
1526 },
1527 {
1528 .name = "ssl3-md5",
1529 .digest = EVP_md5,
1530 .alias = SN_md5,
1531 },
1532#endif /* OPENSSL_NO_MD5 */
1533
1534#ifndef OPENSSL_NO_SHA1
1535 {
1536 .name = "ssl3-sha1",
1537 .digest = EVP_sha1,
1538 .alias = SN_sha1,
1539 },
1540#endif /* OPENSSL_NO_SHA1 */
1541
1542#ifndef OPENSSL_NO_GOST
1543 {
1544 .name = SN_id_tc26_gost3411_2012_256,
1545 .digest = EVP_streebog256,
1546 },
1547 {
1548 .name = SN_id_tc26_gost3411_2012_512,
1549 .digest = EVP_streebog512,
1550 },
1551#endif /* OPENSSL_NO_GOST */
1552
1553#ifndef OPENSSL_NO_WHIRLPOOL
1554 {
1555 .name = SN_whirlpool,
1556 .digest = EVP_whirlpool,
1557 },
1558#endif
1559};
1560
1561#define N_DIGEST_NAMES (sizeof(digest_names) / sizeof(digest_names[0]))