diff options
author | tb <> | 2024-01-13 11:00:09 +0000 |
---|---|---|
committer | tb <> | 2024-01-13 11:00:09 +0000 |
commit | 455bb26ef6b3e1e6c272effb3d99a0c59a1300d8 (patch) | |
tree | 08f67658b8301ae7fed1f1664ef1ecef822cc520 | |
parent | fa1aed9be4e7cffefc5a40174eb97c98d39a9942 (diff) | |
download | openbsd-455bb26ef6b3e1e6c272effb3d99a0c59a1300d8.tar.gz openbsd-455bb26ef6b3e1e6c272effb3d99a0c59a1300d8.tar.bz2 openbsd-455bb26ef6b3e1e6c272effb3d99a0c59a1300d8.zip |
Add a table of digest names, digests and aliases
This is the corresponding commit for digests and their aliases. It
only adds a table to be used in upcoming commits. What was said
about ciphers applies mutatis mutandis to digests.
ok jsing
-rw-r--r-- | src/lib/libcrypto/evp/evp_names.c | 477 |
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 | ||
33 | struct 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 | |||
1102 | const 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])) | ||