Defined SHA-3 hashers
This commit is contained in:
@@ -226,6 +226,9 @@
|
|||||||
0x01 "BLISS-with-SHA512" OID_BLISS_WITH_SHA512
|
0x01 "BLISS-with-SHA512" OID_BLISS_WITH_SHA512
|
||||||
0x02 "BLISS-with-SHA384" OID_BLISS_WITH_SHA384
|
0x02 "BLISS-with-SHA384" OID_BLISS_WITH_SHA384
|
||||||
0x03 "BLISS-with-SHA256" OID_BLISS_WITH_SHA256
|
0x03 "BLISS-with-SHA256" OID_BLISS_WITH_SHA256
|
||||||
|
0x04 "BLISS-with-SHA3-512" OID_BLISS_WITH_SHA3_512
|
||||||
|
0x05 "BLISS-with-SHA3-384" OID_BLISS_WITH_SHA3_384
|
||||||
|
0x06 "BLISS-with-SHA3-256" OID_BLISS_WITH_SHA3_256
|
||||||
0x89 ""
|
0x89 ""
|
||||||
0x31 ""
|
0x31 ""
|
||||||
0x01 ""
|
0x01 ""
|
||||||
@@ -435,10 +438,10 @@
|
|||||||
0x04 "id-sha224" OID_SHA224
|
0x04 "id-sha224" OID_SHA224
|
||||||
0x05 "id-sha512-224"
|
0x05 "id-sha512-224"
|
||||||
0x06 "id-sha512-256"
|
0x06 "id-sha512-256"
|
||||||
0x07 "id-sha3-224"
|
0x07 "id-sha3-224" OID_SHA3_224
|
||||||
0x08 "id-sha3-256"
|
0x08 "id-sha3-256" OID_SHA3_256
|
||||||
0x09 "id-sha3-384"
|
0x09 "id-sha3-384" OID_SHA3_384
|
||||||
0x0A "id-sha3-512"
|
0x0A "id-sha3-512" OID_SHA3_512
|
||||||
0x0B "id-shake128"
|
0x0B "id-shake128"
|
||||||
0x0C "id-shake256"
|
0x0C "id-shake256"
|
||||||
0x86 ""
|
0x86 ""
|
||||||
|
|||||||
@@ -24,26 +24,34 @@ ENUM_BEGIN(hash_algorithm_names, HASH_SHA1, HASH_SHA512,
|
|||||||
"HASH_SHA256",
|
"HASH_SHA256",
|
||||||
"HASH_SHA384",
|
"HASH_SHA384",
|
||||||
"HASH_SHA512");
|
"HASH_SHA512");
|
||||||
ENUM_NEXT(hash_algorithm_names, HASH_UNKNOWN, HASH_SHA224, HASH_SHA512,
|
ENUM_NEXT(hash_algorithm_names, HASH_UNKNOWN, HASH_SHA3_512, HASH_SHA512,
|
||||||
"HASH_UNKNOWN",
|
"HASH_UNKNOWN",
|
||||||
"HASH_MD2",
|
"HASH_MD2",
|
||||||
"HASH_MD4",
|
"HASH_MD4",
|
||||||
"HASH_MD5",
|
"HASH_MD5",
|
||||||
"HASH_SHA224");
|
"HASH_SHA224",
|
||||||
ENUM_END(hash_algorithm_names, HASH_SHA224);
|
"HASH_SHA3_224",
|
||||||
|
"HASH_SHA3_256",
|
||||||
|
"HASH_SHA3_384",
|
||||||
|
"HASH_SHA3_512");
|
||||||
|
ENUM_END(hash_algorithm_names, HASH_SHA3_512);
|
||||||
|
|
||||||
ENUM_BEGIN(hash_algorithm_short_names, HASH_SHA1, HASH_SHA512,
|
ENUM_BEGIN(hash_algorithm_short_names, HASH_SHA1, HASH_SHA512,
|
||||||
"sha1",
|
"sha1",
|
||||||
"sha256",
|
"sha256",
|
||||||
"sha384",
|
"sha384",
|
||||||
"sha512");
|
"sha512");
|
||||||
ENUM_NEXT(hash_algorithm_short_names, HASH_UNKNOWN, HASH_SHA224, HASH_SHA512,
|
ENUM_NEXT(hash_algorithm_short_names, HASH_UNKNOWN, HASH_SHA3_512, HASH_SHA512,
|
||||||
"unknown",
|
"unknown",
|
||||||
"md2",
|
"md2",
|
||||||
"md4",
|
"md4",
|
||||||
"md5",
|
"md5",
|
||||||
"sha224");
|
"sha224",
|
||||||
ENUM_END(hash_algorithm_short_names, HASH_SHA224);
|
"sha3_224",
|
||||||
|
"sha3_256",
|
||||||
|
"sha3_384",
|
||||||
|
"sha3_512");
|
||||||
|
ENUM_END(hash_algorithm_short_names, HASH_SHA3_512);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Described in header.
|
* Described in header.
|
||||||
@@ -73,6 +81,14 @@ hash_algorithm_t hasher_algorithm_from_oid(int oid)
|
|||||||
case OID_SHA512:
|
case OID_SHA512:
|
||||||
case OID_SHA512_WITH_RSA:
|
case OID_SHA512_WITH_RSA:
|
||||||
return HASH_SHA512;
|
return HASH_SHA512;
|
||||||
|
case OID_SHA3_224:
|
||||||
|
return HASH_SHA3_224;
|
||||||
|
case OID_SHA3_256:
|
||||||
|
return HASH_SHA3_256;
|
||||||
|
case OID_SHA3_384:
|
||||||
|
return HASH_SHA3_384;
|
||||||
|
case OID_SHA3_512:
|
||||||
|
return HASH_SHA3_512;
|
||||||
default:
|
default:
|
||||||
return HASH_UNKNOWN;
|
return HASH_UNKNOWN;
|
||||||
}
|
}
|
||||||
@@ -242,6 +258,10 @@ integrity_algorithm_t hasher_algorithm_to_integrity(hash_algorithm_t alg,
|
|||||||
case HASH_MD2:
|
case HASH_MD2:
|
||||||
case HASH_MD4:
|
case HASH_MD4:
|
||||||
case HASH_SHA224:
|
case HASH_SHA224:
|
||||||
|
case HASH_SHA3_224:
|
||||||
|
case HASH_SHA3_256:
|
||||||
|
case HASH_SHA3_384:
|
||||||
|
case HASH_SHA3_512:
|
||||||
case HASH_UNKNOWN:
|
case HASH_UNKNOWN:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -265,6 +285,10 @@ bool hasher_algorithm_for_ikev2(hash_algorithm_t alg)
|
|||||||
case HASH_MD4:
|
case HASH_MD4:
|
||||||
case HASH_MD5:
|
case HASH_MD5:
|
||||||
case HASH_SHA224:
|
case HASH_SHA224:
|
||||||
|
case HASH_SHA3_224:
|
||||||
|
case HASH_SHA3_256:
|
||||||
|
case HASH_SHA3_384:
|
||||||
|
case HASH_SHA3_512:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -300,6 +324,18 @@ int hasher_algorithm_to_oid(hash_algorithm_t alg)
|
|||||||
case HASH_SHA512:
|
case HASH_SHA512:
|
||||||
oid = OID_SHA512;
|
oid = OID_SHA512;
|
||||||
break;
|
break;
|
||||||
|
case HASH_SHA3_224:
|
||||||
|
oid = OID_SHA3_224;
|
||||||
|
break;
|
||||||
|
case HASH_SHA3_256:
|
||||||
|
oid = OID_SHA3_256;
|
||||||
|
break;
|
||||||
|
case HASH_SHA3_384:
|
||||||
|
oid = OID_SHA3_384;
|
||||||
|
break;
|
||||||
|
case HASH_SHA3_512:
|
||||||
|
oid = OID_SHA3_512;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
oid = OID_UNKNOWN;
|
oid = OID_UNKNOWN;
|
||||||
}
|
}
|
||||||
@@ -356,6 +392,12 @@ int hasher_signature_algorithm_to_oid(hash_algorithm_t alg, key_type_t key)
|
|||||||
return OID_BLISS_WITH_SHA384;
|
return OID_BLISS_WITH_SHA384;
|
||||||
case HASH_SHA512:
|
case HASH_SHA512:
|
||||||
return OID_BLISS_WITH_SHA512;
|
return OID_BLISS_WITH_SHA512;
|
||||||
|
case HASH_SHA3_256:
|
||||||
|
return OID_BLISS_WITH_SHA3_256;
|
||||||
|
case HASH_SHA3_384:
|
||||||
|
return OID_BLISS_WITH_SHA3_384;
|
||||||
|
case HASH_SHA3_512:
|
||||||
|
return OID_BLISS_WITH_SHA3_512;
|
||||||
default:
|
default:
|
||||||
return OID_UNKNOWN;
|
return OID_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ enum hash_algorithm_t {
|
|||||||
HASH_MD4 = 1026,
|
HASH_MD4 = 1026,
|
||||||
HASH_MD5 = 1027,
|
HASH_MD5 = 1027,
|
||||||
HASH_SHA224 = 1028,
|
HASH_SHA224 = 1028,
|
||||||
|
HASH_SHA3_224 = 1029,
|
||||||
|
HASH_SHA3_256 = 1030,
|
||||||
|
HASH_SHA3_384 = 1031,
|
||||||
|
HASH_SHA3_512 = 1032
|
||||||
};
|
};
|
||||||
|
|
||||||
#define HASH_SIZE_MD2 16
|
#define HASH_SIZE_MD2 16
|
||||||
|
|||||||
Reference in New Issue
Block a user