Added SHA512.
authorPekka Riikonen <priikone@silcnet.org>
Sat, 1 Sep 2007 10:14:23 +0000 (10:14 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sat, 1 Sep 2007 10:14:23 +0000 (10:14 +0000)
lib/silccrypt/silchash.c
lib/silccrypt/silchash.h

index b7196a04046b174e1ccddbb3365f7e56fd4df6bb..67c149522d4eef9606930d792f9b081234cfb47f 100644 (file)
@@ -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);
index 16e297276f27839371a45eabf9aad9b8d925905d..02a397cf1e40ee10157a2fc6689c9db3bfa0d894 100644 (file)
@@ -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