aboutsummaryrefslogtreecommitdiff
path: root/sha2.h
diff options
context:
space:
mode:
authorPaul Duncan <pabs@pablotron.org>2019-07-16 21:24:45 -0400
committerPaul Duncan <pabs@pablotron.org>2019-07-16 21:24:45 -0400
commitc7a9baba5db7421de9ca6170b252efc4e35a20f5 (patch)
tree4eb97281ddaac573c97677e6a7f5e520362b8909 /sha2.h
parenta71fd905ecb2bb55cb63de5d05dd5a9ae3583cc7 (diff)
downloadsha2-c7a9baba5db7421de9ca6170b252efc4e35a20f5.tar.bz2
sha2-c7a9baba5db7421de9ca6170b252efc4e35a20f5.zip
mv sha2{56,}.[hc]
Diffstat (limited to 'sha2.h')
-rw-r--r--sha2.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/sha2.h b/sha2.h
new file mode 100644
index 0000000..01cf08b
--- /dev/null
+++ b/sha2.h
@@ -0,0 +1,34 @@
+#ifndef SHA2_H_
+#define SHA2_H_
+
+#include <stdint.h> // uint32_t, uint8_t
+#include <stdlib.h> // size_t
+
+#define SHA256_HASH_SIZE 32
+
+typedef struct {
+ uint8_t buf[64];
+ size_t buf_len;
+
+ uint32_t h[8];
+
+ uint64_t num_bytes;
+} sha256_t;
+
+void sha256_init(sha256_t * const);
+void sha256_push(sha256_t * const, const uint8_t *, size_t);
+void sha256_fini(sha256_t * const, uint8_t * const);
+void sha256(const uint8_t * const, const size_t, uint8_t * const);
+
+#define SHA224_HASH_SIZE 28
+
+typedef struct {
+ sha256_t ctx;
+} sha224_t;
+
+void sha224_init(sha224_t * const);
+void sha224_push(sha224_t * const, const uint8_t *, size_t);
+void sha224_fini(sha224_t * const, uint8_t * const);
+void sha224(const uint8_t * const, const size_t, uint8_t * const);
+
+#endif /* SHA2_H_ */