aboutsummaryrefslogtreecommitdiff
path: root/sha2.h
diff options
context:
space:
mode:
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_ */