Annotation of src/usr.bin/ssh/hash.c, Revision 1.6
1.6 ! djm 1: /* $OpenBSD: hash.c,v 1.5 2018/01/13 00:24:09 naddy Exp $ */
1.5 naddy 2: /*
3: * Public domain. Author: Christian Weisgerber <naddy@openbsd.org>
4: * API compatible reimplementation of function from nacl
5: */
1.1 markus 6:
7: #include "crypto_api.h"
8:
1.4 naddy 9: #include <stdarg.h>
1.1 markus 10:
1.6 ! djm 11: #ifdef WITH_OPENSSL
! 12: #include <openssl/evp.h>
1.4 naddy 13:
14: int
15: crypto_hash_sha512(unsigned char *out, const unsigned char *in,
16: unsigned long long inlen)
1.1 markus 17: {
18:
1.6 ! djm 19: if (!EVP_Digest(in, inlen, out, NULL, EVP_sha512(), NULL))
! 20: return -1;
1.4 naddy 21: return 0;
1.1 markus 22: }
1.6 ! djm 23:
! 24: #else
! 25: #include <sha2.h>
! 26:
! 27: int
! 28: crypto_hash_sha512(unsigned char *out, const unsigned char *in,
! 29: unsigned long long inlen)
! 30: {
! 31:
! 32: SHA2_CTX ctx;
! 33:
! 34: SHA512Init(&ctx);
! 35: SHA512Update(&ctx, in, inlen);
! 36: SHA512Final(out, &ctx);
! 37: return 0;
! 38: }
! 39: #endif /* WITH_OPENSSL */