diff th_crypto.h @ 135:1b39682de64f

Add "crypto" module, only silly MD5 calculation in it now.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 24 Sep 2014 23:45:39 +0300
parents
children d9f1d1c977ff
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/th_crypto.h	Wed Sep 24 23:45:39 2014 +0300
@@ -0,0 +1,45 @@
+/*
+ * MD5 implementation, modified for th-libs from
+ * Colin Plumb's implementation by Matti 'ccr' Hämäläinen.
+ *
+ * This code implements the MD5 message-digest algorithm.
+ * The algorithm is due to Ron Rivest.  This code was
+ * written by Colin Plumb in 1993, no copyright is claimed.
+ * This code is in the public domain; do with it what you wish.
+ */
+#ifndef TH_CRYPTO_H
+#define TH_CRYPTO_H 1
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "th_endian.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+typedef struct
+{
+    uint32_t bits[2];    // Message length in bits, lsw first
+    uint32_t buf[4];     // Digest buffer
+    uint8_t in[64];      // Accumulate block
+} th_md5state_t;
+
+
+#define TH_MD5HASH_LENGTH       (16)
+#define TH_MD5HASH_LENGTH_CH    (TH_MD5HASH_LENGTH * 2)
+
+typedef uint8_t th_md5hash_t[TH_MD5HASH_LENGTH];
+
+void    th_md5_init(th_md5state_t *ctx);
+void    th_md5_append(th_md5state_t *ctx, const uint8_t *buf, size_t len);
+void    th_md5_finish(th_md5state_t *ctx, th_md5hash_t digest);
+void    th_md5_print(FILE *, const th_md5hash_t digest);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* TH_CRYPTO_H */