Displaying 2 results from an estimated 2 matches for "ssh_digest_by_alg".
2014 Jul 15
2
missing HAVE_EVP_RIPEMD160 breaks ssh client
Hello,
I've updated sources but forgot to recreate configure so I've ended without
#define HAVE_EVP_RIPEMD160 1
and ssh client ended with:
OpenSSH_6.7p1, OpenSSL 1.0.1h-fips 5 Jun 2014
debug1: Reading configuration data ssh.config
main: mux digest failed
The problem was that ssh_digest_by_alg() couldn't verify alg with an index bigger than 1 since
the line with SSH_DIGEST_RIPEMD160 wasn't compiled in and all indexes in the ssh_digest digests array
was lowered by one.
/* NB. Indexed directly by algorithm number */
const struct ssh_digest digests[] = {
{ SSH_DIGEST_MD5, "MD...
2014 Apr 05
0
[PATCH] Use EVP_Digest
...-04 02:25:45.000000000 +0200
+++ openssh-6.6p1/digest-openssl.c 2014-04-04 17:00:29.548457919 +0300
@@ -148,14 +148,11 @@
int
ssh_digest_memory(int alg, const void *m, size_t mlen, u_char *d, size_t dlen)
{
- struct ssh_digest_ctx *ctx = ssh_digest_start(alg);
+ const struct ssh_digest *digest = ssh_digest_by_alg(alg);
- if (ctx == NULL)
+ if (!EVP_Digest(m, mlen, d, dlen, digest->mdfunc(), NULL))
return -1;
- if (ssh_digest_update(ctx, m, mlen) != 0 ||
- ssh_digest_final(ctx, d, dlen) != 0)
- return -1;
- ssh_digest_free(ctx);
+
return 0;
}