提交 152fbc28 编写于 作者: D Dr. Stephen Henson

Use digest tables for defaults.

Reviewed-by: NViktor Dukhovni <viktor@openssl.org>
上级 9446daac
...@@ -712,7 +712,7 @@ int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc, ...@@ -712,7 +712,7 @@ int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,
return (0); return (0);
} }
static const EVP_MD *ssl_cipher_table_idx(int idx) const EVP_MD *ssl_md(int idx)
{ {
idx &= SSL_HANDSHAKE_MAC_MASK; idx &= SSL_HANDSHAKE_MAC_MASK;
if (idx < 0 || idx >= SSL_MD_NUM_IDX) if (idx < 0 || idx >= SSL_MD_NUM_IDX)
...@@ -722,12 +722,12 @@ static const EVP_MD *ssl_cipher_table_idx(int idx) ...@@ -722,12 +722,12 @@ static const EVP_MD *ssl_cipher_table_idx(int idx)
const EVP_MD *ssl_handshake_md(SSL *s) const EVP_MD *ssl_handshake_md(SSL *s)
{ {
return ssl_cipher_table_idx(ssl_get_algorithm2(s)); return ssl_md(ssl_get_algorithm2(s));
} }
const EVP_MD *ssl_prf_md(SSL *s) const EVP_MD *ssl_prf_md(SSL *s)
{ {
return ssl_cipher_table_idx(ssl_get_algorithm2(s) >> TLS1_PRF_DGST_SHIFT); return ssl_md(ssl_get_algorithm2(s) >> TLS1_PRF_DGST_SHIFT);
} }
#define ITEM_SEP(a) \ #define ITEM_SEP(a) \
......
...@@ -2139,6 +2139,7 @@ __owur int ssl_add_serverhello_use_srtp_ext(SSL *s, unsigned char *p, int *len, ...@@ -2139,6 +2139,7 @@ __owur int ssl_add_serverhello_use_srtp_ext(SSL *s, unsigned char *p, int *len,
__owur int ssl_parse_serverhello_use_srtp_ext(SSL *s, PACKET *pkt, int *al); __owur int ssl_parse_serverhello_use_srtp_ext(SSL *s, PACKET *pkt, int *al);
__owur int ssl_handshake_hash(SSL *s, unsigned char *out, int outlen); __owur int ssl_handshake_hash(SSL *s, unsigned char *out, int outlen);
__owur const EVP_MD *ssl_md(int idx);
__owur const EVP_MD *ssl_handshake_md(SSL *s); __owur const EVP_MD *ssl_handshake_md(SSL *s);
__owur const EVP_MD *ssl_prf_md(SSL *s); __owur const EVP_MD *ssl_prf_md(SSL *s);
......
...@@ -2706,22 +2706,22 @@ void ssl_set_default_md(SSL *s) ...@@ -2706,22 +2706,22 @@ void ssl_set_default_md(SSL *s)
{ {
const EVP_MD **pmd = s->s3->tmp.md; const EVP_MD **pmd = s->s3->tmp.md;
#ifndef OPENSSL_NO_DSA #ifndef OPENSSL_NO_DSA
pmd[SSL_PKEY_DSA_SIGN] = EVP_sha1(); pmd[SSL_PKEY_DSA_SIGN] = ssl_md(SSL_MD_SHA1_IDX);
#endif #endif
#ifndef OPENSSL_NO_RSA #ifndef OPENSSL_NO_RSA
if (SSL_USE_SIGALGS(s)) if (SSL_USE_SIGALGS(s))
pmd[SSL_PKEY_RSA_SIGN] = EVP_sha1(); pmd[SSL_PKEY_RSA_SIGN] = ssl_md(SSL_MD_SHA1_IDX);
else else
pmd[SSL_PKEY_RSA_SIGN] = EVP_md5_sha1(); pmd[SSL_PKEY_RSA_SIGN] = ssl_md(SSL_MD_MD5_SHA1_IDX);
pmd[SSL_PKEY_RSA_ENC] = pmd[SSL_PKEY_RSA_SIGN]; pmd[SSL_PKEY_RSA_ENC] = pmd[SSL_PKEY_RSA_SIGN];
#endif #endif
#ifndef OPENSSL_NO_EC #ifndef OPENSSL_NO_EC
pmd[SSL_PKEY_ECC] = EVP_sha1(); pmd[SSL_PKEY_ECC] = ssl_md(SSL_MD_SHA1_IDX);
#endif #endif
#ifndef OPENSSL_NO_GOST #ifndef OPENSSL_NO_GOST
pmd[SSL_PKEY_GOST01] = EVP_get_digestbynid(NID_id_GostR3411_94); pmd[SSL_PKEY_GOST01] = ssl_md(SSL_MD_GOST94_IDX);
pmd[SSL_PKEY_GOST12_256] = EVP_get_digestbynid(NID_id_GostR3411_2012_256); pmd[SSL_PKEY_GOST12_256] = ssl_md(SSL_MD_GOST12_256_IDX);
pmd[SSL_PKEY_GOST12_512] = EVP_get_digestbynid(NID_id_GostR3411_2012_512); pmd[SSL_PKEY_GOST12_512] = ssl_md(SSL_MD_GOST12_512_IDX);
#endif #endif
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册