diff options
Diffstat (limited to 'crypto/openssh/hash.c')
| -rw-r--r-- | crypto/openssh/hash.c | 43 | 
1 files changed, 43 insertions, 0 deletions
| diff --git a/crypto/openssh/hash.c b/crypto/openssh/hash.c new file mode 100644 index 000000000000..b4f8f6c50d5e --- /dev/null +++ b/crypto/openssh/hash.c @@ -0,0 +1,43 @@ +/* $OpenBSD: hash.c,v 1.6 2019/11/29 00:11:21 djm Exp $ */ +/* + * Public domain. Author: Christian Weisgerber <naddy@openbsd.org> + * API compatible reimplementation of function from nacl + */ + +#include "includes.h" + +#include "crypto_api.h" + +#include <stdarg.h> + +#ifdef WITH_OPENSSL +#include <openssl/evp.h> + +int +crypto_hash_sha512(unsigned char *out, const unsigned char *in, +    unsigned long long inlen) +{ + +	if (!EVP_Digest(in, inlen, out, NULL, EVP_sha512(), NULL)) +		return -1; +	return 0; +} + +#else +# ifdef HAVE_SHA2_H +#  include <sha2.h> +# endif + +int +crypto_hash_sha512(unsigned char *out, const unsigned char *in, +    unsigned long long inlen) +{ + +	SHA2_CTX ctx; + +	SHA512Init(&ctx); +	SHA512Update(&ctx, in, inlen); +	SHA512Final(out, &ctx); +	return 0; +} +#endif /* WITH_OPENSSL */ | 
