mirror of
git://anongit.mindrot.org/openssh.git
synced 2024-11-23 18:23:25 +08:00
upstream: perform hashing directly in crypto_hash_sha512() using
libcrypto or libc SHA512 functions rather than calling ssh_digest_memory(); avoids many dependencies on ssh code that complicate standalone use of ed25519, as we want to do in sk-dummy.so OpenBSD-Commit-ID: 5a3c37593d3ba7add037b587cec44aaea088496d
This commit is contained in:
parent
d39a865b7a
commit
7404b81f25
30
hash.c
30
hash.c
@ -1,6 +1,6 @@
|
|||||||
/* $OpenBSD: hash.c,v 1.4 2017/12/14 21:07:39 naddy Exp $ */
|
/* $OpenBSD: hash.c,v 1.4 2017/12/14 21:07:39 naddy Exp $ */
|
||||||
|
|
||||||
/* $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 <naddy@openbsd.org>
|
* Public domain. Author: Christian Weisgerber <naddy@openbsd.org>
|
||||||
* API compatible reimplementation of function from nacl
|
* API compatible reimplementation of function from nacl
|
||||||
@ -10,18 +10,32 @@
|
|||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
#include "digest.h"
|
#ifdef WITH_OPENSSL
|
||||||
#include "log.h"
|
#include <openssl/evp.h>
|
||||||
#include "ssherr.h"
|
|
||||||
|
|
||||||
int
|
int
|
||||||
crypto_hash_sha512(unsigned char *out, const unsigned char *in,
|
crypto_hash_sha512(unsigned char *out, const unsigned char *in,
|
||||||
unsigned long long inlen)
|
unsigned long long inlen)
|
||||||
{
|
{
|
||||||
int r;
|
|
||||||
|
|
||||||
if ((r = ssh_digest_memory(SSH_DIGEST_SHA512, in, inlen, out,
|
if (!EVP_Digest(in, inlen, out, NULL, EVP_sha512(), NULL))
|
||||||
crypto_hash_sha512_BYTES)) != 0)
|
return -1;
|
||||||
fatal("%s: %s", __func__, ssh_err(r));
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
#include <sha2.h>
|
||||||
|
|
||||||
|
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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user