summaryrefslogtreecommitdiff
path: root/lib/sha512.h
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2015-11-24 13:47:28 +0100
committerOndrej Zajicek (work) <santiago@crfreenet.org>2015-11-24 13:47:28 +0100
commit5126380beace4e39578f005fe115917b8e8b8ff3 (patch)
tree123ac5af08d02855e1719a891dc0f7340f0329cb /lib/sha512.h
parent12d752ef24ab507d249a60098ec98dcf28b70036 (diff)
Minor changes to SHA hash functions
Diffstat (limited to 'lib/sha512.h')
-rw-r--r--lib/sha512.h42
1 files changed, 21 insertions, 21 deletions
diff --git a/lib/sha512.h b/lib/sha512.h
index bd998152..1614a3ac 100644
--- a/lib/sha512.h
+++ b/lib/sha512.h
@@ -13,7 +13,8 @@
#ifndef _BIRD_SHA512_H_
#define _BIRD_SHA512_H_
-#include "lib/sha256.h"
+#include "nest/bird.h"
+
#define SHA384_SIZE 48
#define SHA384_HEX_SIZE 97
@@ -23,43 +24,41 @@
#define SHA512_HEX_SIZE 129
#define SHA512_BLOCK_SIZE 128
-struct sha512_state
-{
+
+struct sha512_context {
u64 h0, h1, h2, h3, h4, h5, h6, h7;
+ byte buf[SHA512_BLOCK_SIZE];
+ uint nblocks;
+ uint count;
};
-struct sha512_context
-{
- struct sha256_context bctx;
- struct sha512_state state;
-};
-#define sha384_context sha512_context /* aliasing 'struct sha384_context' to 'struct sha512_context' */
+#define sha384_context sha512_context
void sha512_init(struct sha512_context *ctx);
void sha384_init(struct sha384_context *ctx);
-void sha512_update(struct sha512_context *ctx, const byte *in_buf, size_t in_len);
-static inline void sha384_update(struct sha384_context *ctx, const byte *in_buf, size_t in_len)
-{
- sha512_update(ctx, in_buf, in_len);
-}
+void sha512_update(struct sha512_context *ctx, const byte *buf, size_t len);
+static inline void sha384_update(struct sha384_context *ctx, const byte *buf, size_t len)
+{ sha512_update(ctx, buf, len); }
+
+byte *sha512_final(struct sha512_context *ctx);
+static inline byte *sha384_final(struct sha384_context *ctx)
+{ return sha512_final(ctx); }
-byte* sha512_final(struct sha512_context *ctx);
-static inline byte* sha384_final(struct sha384_context *ctx)
-{
- return sha512_final(ctx);
-}
/*
* HMAC-SHA512, HMAC-SHA384
*/
+
struct sha512_hmac_context
{
struct sha512_context ictx;
struct sha512_context octx;
-} ;
-#define sha384_hmac_context sha512_hmac_context /* aliasing 'struct sha384_hmac_context' to 'struct sha384_hmac_context' */
+};
+
+#define sha384_hmac_context sha512_hmac_context
+
void sha512_hmac_init(struct sha512_hmac_context *ctx, const byte *key, size_t keylen);
void sha384_hmac_init(struct sha384_hmac_context *ctx, const byte *key, size_t keylen);
@@ -70,4 +69,5 @@ void sha384_hmac_update(struct sha384_hmac_context *ctx, const byte *buf, size_t
byte *sha512_hmac_final(struct sha512_hmac_context *ctx);
byte *sha384_hmac_final(struct sha384_hmac_context *ctx);
+
#endif /* _BIRD_SHA512_H_ */