From: Pekka Riikonen Date: Sat, 1 Sep 2007 10:14:23 +0000 (+0000) Subject: Added SHA512. X-Git-Tag: 1.2.beta1~122 X-Git-Url: http://git.silcnet.org/gitweb/?p=crypto.git;a=commitdiff_plain;h=8659cc0ddbeca3a90b218ad991726a209e9e8a42 Added SHA512. --- diff --git a/lib/silccrypt/silchash.c b/lib/silccrypt/silchash.c index b7196a04..67c14952 100644 --- a/lib/silccrypt/silchash.c +++ b/lib/silccrypt/silchash.c @@ -23,6 +23,7 @@ #include "md5.h" #include "sha1.h" #include "sha256.h" +#include "sha512.h" /* The main SILC hash structure. */ struct SilcHashStruct { @@ -41,6 +42,9 @@ const SilcHashObject silc_default_hash[] = { "sha256", "2.16.840.1.101.3.4.2.1", 32, 64, silc_sha256_init, silc_sha256_update, silc_sha256_final, silc_sha256_transform, silc_sha256_context_len }, + { "sha512", "2.16.840.1.101.3.4.2.3", + 32, 64, silc_sha512_init, silc_sha512_update, silc_sha512_final, + silc_sha512_transform, silc_sha512_context_len }, { "sha1", "1.3.14.3.2.26", 20, 64, silc_sha1_init, silc_sha1_update, silc_sha1_final, silc_sha1_transform, silc_sha1_context_len }, @@ -392,7 +396,7 @@ void silc_hash_final(SilcHash hash, unsigned char *return_hash) hash->hash->final(hash->context, return_hash); } -void silc_hash_transform(SilcHash hash, SilcUInt32 *state, +void silc_hash_transform(SilcHash hash, void *state, const unsigned char *data) { hash->hash->transform(state, data); diff --git a/lib/silccrypt/silchash.h b/lib/silccrypt/silchash.h index 16e29727..02a397cf 100644 --- a/lib/silccrypt/silchash.h +++ b/lib/silccrypt/silchash.h @@ -72,7 +72,7 @@ typedef struct { void (*init)(void *); void (*update)(void *, const unsigned char *, SilcUInt32); void (*final)(void *, unsigned char *); - void (*transform)(SilcUInt32 *, const unsigned char *); + void (*transform)(void *, const unsigned char *); SilcUInt32 (*context_len)(); } SilcHashObject; @@ -111,7 +111,7 @@ void silc_##hash##_update(void *context, const unsigned char *data, \ #define SILC_HASH_API_FINAL(hash) \ void silc_##hash##_final(void *context, unsigned char *digest) #define SILC_HASH_API_TRANSFORM(hash) \ -void silc_##hash##_transform(SilcUInt32 *state, const unsigned char *buffer) +void silc_##hash##_transform(void *state, const unsigned char *buffer) #define SILC_HASH_API_CONTEXT_LEN(hash) \ SilcUInt32 silc_##hash##_context_len() @@ -396,7 +396,7 @@ void silc_hash_final(SilcHash hash, unsigned char *return_hash); * * SYNOPSIS * - * void silc_hash_transform(SilcHash hash, SilcUInt32 *state, + * void silc_hash_transform(SilcHash hash, void *state, * const unsigned char *data); * * DESCRIPTION @@ -407,7 +407,7 @@ void silc_hash_final(SilcHash hash, unsigned char *return_hash); * known by the caller. Usually this function is not needed. * ***/ -void silc_hash_transform(SilcHash hash, SilcUInt32 *state, +void silc_hash_transform(SilcHash hash, void *state, const unsigned char *data); /****f* silccrypt/SilcHashAPI/silc_hash_fingerprint