- (djm) [digest-openssl.c] Preserve array order when disabling digests.
Reported by Petr Lautrbach.
This commit is contained in:
parent
00f9cd2307
commit
f6293a0b41
|
@ -1,3 +1,7 @@
|
||||||
|
20140717
|
||||||
|
- (djm) [digest-openssl.c] Preserve array order when disabling digests.
|
||||||
|
Reported by Petr Lautrbach.
|
||||||
|
|
||||||
20140715
|
20140715
|
||||||
- (djm) [configure.ac] Delay checks for arc4random* until after libcrypto
|
- (djm) [configure.ac] Delay checks for arc4random* until after libcrypto
|
||||||
has been located; fixes builds agains libressl-portable
|
has been located; fixes builds agains libressl-portable
|
||||||
|
|
|
@ -30,6 +30,15 @@
|
||||||
#include "digest.h"
|
#include "digest.h"
|
||||||
#include "ssherr.h"
|
#include "ssherr.h"
|
||||||
|
|
||||||
|
#ifndef HAVE_EVP_RIPEMD160
|
||||||
|
# define EVP_ripemd160 NULL
|
||||||
|
#endif /* HAVE_EVP_RIPEMD160 */
|
||||||
|
#ifndef HAVE_EVP_SHA256
|
||||||
|
# define EVP_sha256 NULL
|
||||||
|
# define EVP_sha384 NULL
|
||||||
|
# define EVP_sha512 NULL
|
||||||
|
#endif /* HAVE_EVP_SHA256 */
|
||||||
|
|
||||||
struct ssh_digest_ctx {
|
struct ssh_digest_ctx {
|
||||||
int alg;
|
int alg;
|
||||||
EVP_MD_CTX mdctx;
|
EVP_MD_CTX mdctx;
|
||||||
|
@ -45,15 +54,11 @@ struct ssh_digest {
|
||||||
/* NB. Indexed directly by algorithm number */
|
/* NB. Indexed directly by algorithm number */
|
||||||
const struct ssh_digest digests[] = {
|
const struct ssh_digest digests[] = {
|
||||||
{ SSH_DIGEST_MD5, "MD5", 16, EVP_md5 },
|
{ SSH_DIGEST_MD5, "MD5", 16, EVP_md5 },
|
||||||
#ifdef HAVE_EVP_RIPEMD160 /* XXX replace with local if missing */
|
|
||||||
{ SSH_DIGEST_RIPEMD160, "RIPEMD160", 20, EVP_ripemd160 },
|
{ SSH_DIGEST_RIPEMD160, "RIPEMD160", 20, EVP_ripemd160 },
|
||||||
#endif
|
|
||||||
{ SSH_DIGEST_SHA1, "SHA1", 20, EVP_sha1 },
|
{ SSH_DIGEST_SHA1, "SHA1", 20, EVP_sha1 },
|
||||||
#ifdef HAVE_EVP_SHA256 /* XXX replace with local if missing */
|
|
||||||
{ SSH_DIGEST_SHA256, "SHA256", 32, EVP_sha256 },
|
{ SSH_DIGEST_SHA256, "SHA256", 32, EVP_sha256 },
|
||||||
{ SSH_DIGEST_SHA384, "SHA384", 48, EVP_sha384 },
|
{ SSH_DIGEST_SHA384, "SHA384", 48, EVP_sha384 },
|
||||||
{ SSH_DIGEST_SHA512, "SHA512", 64, EVP_sha512 },
|
{ SSH_DIGEST_SHA512, "SHA512", 64, EVP_sha512 },
|
||||||
#endif
|
|
||||||
{ -1, NULL, 0, NULL },
|
{ -1, NULL, 0, NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -64,6 +69,8 @@ ssh_digest_by_alg(int alg)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (digests[alg].id != alg) /* sanity */
|
if (digests[alg].id != alg) /* sanity */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
if (digests[alg].mdfunc == NULL)
|
||||||
|
return NULL;
|
||||||
return &(digests[alg]);
|
return &(digests[alg]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue