Remove support for MD2

No part of IKE/IPsec or X.509 uses MD2 anymore, so there really is no
reason to still support it (unlike MD4 that is used in EAP-MSCHAPv2,
MD5 that's used in EAP-MD5, or SHA-1 that's used for e.g. NAT-D hashes).

It caused test vectors to fail on systems where OpenSSL is built with
MD2 support but has it disabled at runtime.
This commit is contained in:
Tobias Brunner
2025-09-23 15:59:35 +02:00
parent 2b13873c0f
commit b3011e8e87
13 changed files with 71 additions and 173 deletions
-15
View File
@@ -30,7 +30,6 @@ ENUM_BEGIN(hash_algorithm_names, HASH_SHA1, HASH_IDENTITY,
"HASH_IDENTITY");
ENUM_NEXT(hash_algorithm_names, HASH_UNKNOWN, HASH_SHA3_512, HASH_IDENTITY,
"HASH_UNKNOWN",
"HASH_MD2",
"HASH_MD4",
"HASH_MD5",
"HASH_SHA2_224",
@@ -48,7 +47,6 @@ ENUM_BEGIN(hash_algorithm_short_names, HASH_SHA1, HASH_IDENTITY,
"identity");
ENUM_NEXT(hash_algorithm_short_names, HASH_UNKNOWN, HASH_SHA3_512, HASH_IDENTITY,
"unknown",
"md2",
"md4",
"md5",
"sha224",
@@ -66,7 +64,6 @@ ENUM_BEGIN(hash_algorithm_short_names_upper, HASH_SHA1, HASH_IDENTITY,
"IDENTITY");
ENUM_NEXT(hash_algorithm_short_names_upper, HASH_UNKNOWN, HASH_SHA3_512, HASH_IDENTITY,
"UNKNOWN",
"MD2",
"MD4",
"MD5",
"SHA2_224",
@@ -91,8 +88,6 @@ size_t hasher_hash_size(hash_algorithm_t alg)
return HASH_SIZE_SHA384;
case HASH_SHA512:
return HASH_SIZE_SHA512;
case HASH_MD2:
return HASH_SIZE_MD2;
case HASH_MD4:
return HASH_SIZE_MD4;
case HASH_MD5:
@@ -121,9 +116,6 @@ hash_algorithm_t hasher_algorithm_from_oid(int oid)
{
switch (oid)
{
case OID_MD2:
case OID_MD2_WITH_RSA:
return HASH_MD2;
case OID_MD5:
case OID_MD5_WITH_RSA:
return HASH_MD5;
@@ -323,7 +315,6 @@ integrity_algorithm_t hasher_algorithm_to_integrity(hash_algorithm_t alg,
return AUTH_HMAC_SHA2_512_512;
}
break;
case HASH_MD2:
case HASH_MD4:
case HASH_SHA224:
case HASH_SHA3_224:
@@ -350,7 +341,6 @@ bool hasher_algorithm_for_ikev2(hash_algorithm_t alg)
case HASH_SHA512:
return TRUE;
case HASH_UNKNOWN:
case HASH_MD2:
case HASH_MD4:
case HASH_MD5:
case HASH_SHA1:
@@ -373,9 +363,6 @@ int hasher_algorithm_to_oid(hash_algorithm_t alg)
switch (alg)
{
case HASH_MD2:
oid = OID_MD2;
break;
case HASH_MD5:
oid = OID_MD5;
break;
@@ -422,8 +409,6 @@ int hasher_signature_algorithm_to_oid(hash_algorithm_t alg, key_type_t key)
case KEY_RSA:
switch (alg)
{
case HASH_MD2:
return OID_MD2_WITH_RSA;
case HASH_MD5:
return OID_MD5_WITH_RSA;
case HASH_SHA1:
+7 -9
View File
@@ -45,17 +45,15 @@ enum hash_algorithm_t {
HASH_IDENTITY = 5,
/* use private use range for algorithms not defined/permitted by RFC 7427 */
HASH_UNKNOWN = 1024,
HASH_MD2 = 1025,
HASH_MD4 = 1026,
HASH_MD5 = 1027,
HASH_SHA224 = 1028,
HASH_SHA3_224 = 1029,
HASH_SHA3_256 = 1030,
HASH_SHA3_384 = 1031,
HASH_SHA3_512 = 1032
HASH_MD4 = 1025,
HASH_MD5 = 1026,
HASH_SHA224 = 1027,
HASH_SHA3_224 = 1028,
HASH_SHA3_256 = 1029,
HASH_SHA3_384 = 1030,
HASH_SHA3_512 = 1031
};
#define HASH_SIZE_MD2 16
#define HASH_SIZE_MD4 16
#define HASH_SIZE_MD5 16
#define HASH_SIZE_SHA1 20
-1
View File
@@ -60,7 +60,6 @@ ext_out_function_t xof_mgf1_from_hash_algorithm(hash_algorithm_t alg)
return XOF_MGF1_SHA3_384;
case HASH_IDENTITY:
case HASH_UNKNOWN:
case HASH_MD2:
case HASH_MD4:
case HASH_MD5:
break;