summaryrefslogtreecommitdiffstats
path: root/libtomcrypt/hashes/hash_get_oid.c
diff options
context:
space:
mode:
Diffstat (limited to 'libtomcrypt/hashes/hash_get_oid.c')
-rw-r--r--libtomcrypt/hashes/hash_get_oid.c55
1 files changed, 5 insertions, 50 deletions
diff --git a/libtomcrypt/hashes/hash_get_oid.c b/libtomcrypt/hashes/hash_get_oid.c
index 835ffb1..e31e055 100644
--- a/libtomcrypt/hashes/hash_get_oid.c
+++ b/libtomcrypt/hashes/hash_get_oid.c
@@ -16,60 +16,15 @@
@return CRYPT_OK if valid
*/
-static const oid_st sha1_oid = {
- .OIDlen = 6,
- .OID = {1, 3, 14, 3, 2, 26},
-};
-
-static const oid_st md5_oid = {
- .OIDlen = 6,
- .OID = {1, 2, 840, 113549, 2, 5,},
-};
-
-static const oid_st sha224_oid = {
- .OIDlen = 9,
- .OID = {2, 16, 840, 1, 101, 3, 4, 2, 4,},
-};
-
-static const oid_st sha256_oid = {
- .OIDlen = 9,
- .OID = {2, 16, 840, 1, 101, 3, 4, 2, 1,},
-};
-
-static const oid_st sha384_oid = {
- .OIDlen = 9,
- .OID = {2, 16, 840, 1, 101, 3, 4, 2, 2,},
-};
-
-static const oid_st sha512_oid = {
- .OIDlen = 9,
- .OID = {2, 16, 840, 1, 101, 3, 4, 2, 3,},
-};
-
int hash_get_oid(const struct algo_properties_st *hash, oid_st * st)
{
- switch (hash->algo) {
- case NCR_ALG_SHA1:
- memcpy(st, &sha1_oid, sizeof(*st));
- break;
- case NCR_ALG_MD5:
- memcpy(st, &md5_oid, sizeof(*st));
- break;
- case NCR_ALG_SHA2_224:
- memcpy(st, &sha224_oid, sizeof(*st));
- break;
- case NCR_ALG_SHA2_256:
- memcpy(st, &sha256_oid, sizeof(*st));
- break;
- case NCR_ALG_SHA2_384:
- memcpy(st, &sha384_oid, sizeof(*st));
- break;
- case NCR_ALG_SHA2_512:
- memcpy(st, &sha512_oid, sizeof(*st));
- break;
- default:
+ if (hash->can_digest == 0 || hash->oids[0].key_size != -1) {
+ /* not a digest */
return CRYPT_INVALID_ARG;
}
+
+ memcpy(st, &hash->oids[0].oid, sizeof(*st));
+
return CRYPT_OK;
}