summaryrefslogtreecommitdiffstats
path: root/libreport/src/include/hash_sha1.h
diff options
context:
space:
mode:
Diffstat (limited to 'libreport/src/include/hash_sha1.h')
-rw-r--r--libreport/src/include/hash_sha1.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/libreport/src/include/hash_sha1.h b/libreport/src/include/hash_sha1.h
new file mode 100644
index 00000000..850fd21f
--- /dev/null
+++ b/libreport/src/include/hash_sha1.h
@@ -0,0 +1,47 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Based on shasum from http://www.netsw.org/crypto/hash/
+ * Majorly hacked up to use Dr Brian Gladman's sha1 code
+ *
+ * Copyright (C) 2002 Dr Brian Gladman <brg@gladman.me.uk>, Worcester, UK.
+ * Copyright (C) 2003 Glenn L. McGrath
+ * Copyright (C) 2003 Erik Andersen
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ *
+ * ---------------------------------------------------------------------------
+ * Issue Date: 10/11/2002
+ *
+ * This is a byte oriented version of SHA1 that operates on arrays of bytes
+ * stored in memory. It runs at 22 cycles per byte on a Pentium P4 processor
+ *
+ * ---------------------------------------------------------------------------
+ */
+#ifndef HASH_SHA1_H
+#define HASH_SHA1_H 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SHA1_RESULT_LEN (5 * 4)
+
+typedef struct sha1_ctx_t {
+ uint8_t wbuffer[64]; /* always correctly aligned for uint64_t */
+ /* for sha256: void (*process_block)(struct md5_ctx_t*); */
+ uint64_t total64; /* must be directly before hash[] */
+ uint32_t hash[8]; /* 4 elements for md5, 5 for sha1, 8 for sha256 */
+} sha1_ctx_t;
+
+#define sha1_begin abrt_sha1_begin
+void sha1_begin(sha1_ctx_t *ctx);
+#define sha1_hash abrt_sha1_hash
+void sha1_hash(sha1_ctx_t *ctx, const void *buffer, size_t len);
+#define sha1_end abrt_sha1_end
+void sha1_end(sha1_ctx_t *ctx, void *resbuf);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif