=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/hash.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- src/usr.bin/ssh/hash.c 2018/01/13 00:24:09 1.5 +++ src/usr.bin/ssh/hash.c 2019/11/29 00:11:21 1.6 @@ -1,4 +1,4 @@ -/* $OpenBSD: hash.c,v 1.5 2018/01/13 00:24:09 naddy Exp $ */ +/* $OpenBSD: hash.c,v 1.6 2019/11/29 00:11:21 djm Exp $ */ /* * Public domain. Author: Christian Weisgerber * API compatible reimplementation of function from nacl @@ -8,18 +8,32 @@ #include -#include "digest.h" -#include "log.h" -#include "ssherr.h" +#ifdef WITH_OPENSSL +#include int crypto_hash_sha512(unsigned char *out, const unsigned char *in, unsigned long long inlen) { - int r; - if ((r = ssh_digest_memory(SSH_DIGEST_SHA512, in, inlen, out, - crypto_hash_sha512_BYTES)) != 0) - fatal("%s: %s", __func__, ssh_err(r)); + if (!EVP_Digest(in, inlen, out, NULL, EVP_sha512(), NULL)) + return -1; return 0; } + +#else +#include + +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 */