From ec38ca745df30b0d7e1264add9c2a356fe979651 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Fri, 19 Apr 2013 23:59:44 +0200 Subject: [PATCH] Wrap crypto_generichash() and add necessary macros. The streaming API will be wrapped next. --- src/libsodium/Makefile.am | 1 + .../crypto_generichash/crypto_generichash.c | 15 +++++++++++++ src/libsodium/include/Makefile.am | 1 + .../include/sodium/crypto_generichash.h | 18 ++++++++++++++++ .../sodium/crypto_generichash_blake2b.h | 21 ++++++++++++------- 5 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 src/libsodium/crypto_generichash/crypto_generichash.c create mode 100644 src/libsodium/include/sodium/crypto_generichash.h diff --git a/src/libsodium/Makefile.am b/src/libsodium/Makefile.am index 020600c3..366f9b86 100644 --- a/src/libsodium/Makefile.am +++ b/src/libsodium/Makefile.am @@ -24,6 +24,7 @@ libsodium_la_SOURCES = \ crypto_core/salsa2012/ref/api.h \ crypto_core/salsa208/ref/core_salsa208.c \ crypto_core/salsa208/ref/api.h \ + crypto_generichash/crypto_generichash.c \ crypto_generichash/blake2/ref/api.h \ crypto_generichash/blake2/ref/blake2-impl.h \ crypto_generichash/blake2/ref/blake2.h \ diff --git a/src/libsodium/crypto_generichash/crypto_generichash.c b/src/libsodium/crypto_generichash/crypto_generichash.c new file mode 100644 index 00000000..3bc10031 --- /dev/null +++ b/src/libsodium/crypto_generichash/crypto_generichash.c @@ -0,0 +1,15 @@ + +#include "crypto_generichash.h" + +int +crypto_generichash(unsigned char *out, const unsigned char *in, + const unsigned char *key, + size_t outlen, unsigned long long inlen, size_t keylen) +{ + return crypto_generichash_blake2b(out, in, key, outlen, inlen, keylen); +} + + + + + diff --git a/src/libsodium/include/Makefile.am b/src/libsodium/include/Makefile.am index 32d57494..659a6c4a 100644 --- a/src/libsodium/include/Makefile.am +++ b/src/libsodium/include/Makefile.am @@ -11,6 +11,7 @@ SODIUM_EXPORT = \ sodium/crypto_core_salsa20.h \ sodium/crypto_core_salsa2012.h \ sodium/crypto_core_salsa208.h \ + sodium/crypto_generichash.h \ sodium/crypto_generichash_blake2b.h \ sodium/crypto_hash.h \ sodium/crypto_hash_sha256.h \ diff --git a/src/libsodium/include/sodium/crypto_generichash.h b/src/libsodium/include/sodium/crypto_generichash.h new file mode 100644 index 00000000..2e451634 --- /dev/null +++ b/src/libsodium/include/sodium/crypto_generichash.h @@ -0,0 +1,18 @@ +#ifndef crypto_generichash_H +#define crypto_generichash_H + +#include "crypto_generichash_blake2b.h" + +#define crypto_generichash_BYTES_MIN crypto_generichash_blake2b_BYTES_MIN +#define crypto_generichash_BYTES_MAX crypto_generichash_blake2b_BYTES_MAX +#define crypto_generichash_KEYBYTES_MIN crypto_generichash_blake2b_KEYBYTES_MIN +#define crypto_generichash_KEYBYTES_MAX crypto_generichash_blake2b_KEYBYTES_MAX +#define crypto_generichash_PRIMITIVE "blake2b" + +int crypto_generichash(unsigned char *out, const unsigned char *in, + const unsigned char *key, + size_t outlen, unsigned long long inlen, + size_t keylen); + +#endif + diff --git a/src/libsodium/include/sodium/crypto_generichash_blake2b.h b/src/libsodium/include/sodium/crypto_generichash_blake2b.h index ae636970..60914662 100644 --- a/src/libsodium/include/sodium/crypto_generichash_blake2b.h +++ b/src/libsodium/include/sodium/crypto_generichash_blake2b.h @@ -1,17 +1,22 @@ #ifndef crypto_generichash_blake2b_H #define crypto_generichash_blake2b_H +#include + +#define crypto_generichash_blake2b_BYTES_MIN 1U +#define crypto_generichash_blake2b_BYTES_MAX 64U +#define crypto_generichash_blake2b_KEYBYTES_MIN 0U +#define crypto_generichash_blake2b_KEYBYTES_MAX 64U + #ifdef __cplusplus extern "C" { #endif - -#include - -extern int crypto_generichash_blake2b_ref(unsigned char *out, - const unsigned char *in, - const unsigned char *key, - size_t outlen, unsigned long long inlen, - size_t keylen); +int crypto_generichash_blake2b_ref(unsigned char *out, + const unsigned char *in, + const unsigned char *key, + size_t outlen, + unsigned long long inlen, + size_t keylen); #ifdef __cplusplus }