#include "md5.h"
#include "sha1.h"
#include "sha256.h"
+#include "sha512.h"
/* The main SILC hash structure. */
struct SilcHashStruct {
{ "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 },
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);
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;
#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()
*
* SYNOPSIS
*
- * void silc_hash_transform(SilcHash hash, SilcUInt32 *state,
+ * void silc_hash_transform(SilcHash hash, void *state,
* const unsigned char *data);
*
* DESCRIPTION
* 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