secur32: Added support for a few more algids.

Signed-off-by: Max Qian <public@maxqia.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Max Qian 2016-07-06 16:06:53 +02:00 committed by Alexandre Julliard
parent cb6c8cdfa9
commit cf9cd32df3
2 changed files with 18 additions and 9 deletions

View file

@ -315,11 +315,12 @@ static ALG_ID schannel_get_mac_algid(gnutls_mac_algorithm_t mac)
{
case GNUTLS_MAC_UNKNOWN:
case GNUTLS_MAC_NULL: return 0;
case GNUTLS_MAC_MD2: return CALG_MD2;
case GNUTLS_MAC_MD5: return CALG_MD5;
case GNUTLS_MAC_SHA1:
case GNUTLS_MAC_SHA256:
case GNUTLS_MAC_SHA384:
case GNUTLS_MAC_SHA512: return CALG_SHA;
case GNUTLS_MAC_SHA1: return CALG_SHA1;
case GNUTLS_MAC_SHA256: return CALG_SHA_256;
case GNUTLS_MAC_SHA384: return CALG_SHA_384;
case GNUTLS_MAC_SHA512: return CALG_SHA_512;
default:
FIXME("unknown algorithm %d\n", mac);
return 0;
@ -330,9 +331,17 @@ static ALG_ID schannel_get_kx_algid(gnutls_kx_algorithm_t kx)
{
switch (kx)
{
case GNUTLS_KX_RSA: return CALG_RSA_KEYX;
case GNUTLS_KX_DHE_DSS:
case GNUTLS_KX_DHE_RSA: return CALG_DH_EPHEM;
case GNUTLS_KX_UNKNOWN: return 0;
case GNUTLS_KX_RSA:
case GNUTLS_KX_RSA_EXPORT: return CALG_RSA_KEYX;
case GNUTLS_KX_DHE_PSK:
case GNUTLS_KX_DHE_DSS:
case GNUTLS_KX_DHE_RSA: return CALG_DH_EPHEM;
case GNUTLS_KX_ANON_ECDH: return CALG_ECDH;
/* MSDN mentions CALG_ECDH_EPHEM, but doesn't appear in the Windows SDK. */
case GNUTLS_KX_ECDHE_RSA:
case GNUTLS_KX_ECDHE_PSK: return CALG_ECDH;
case GNUTLS_KX_ECDHE_ECDSA: return CALG_ECDSA;
default:
FIXME("unknown algorithm %d\n", kx);
return 0;

View file

@ -500,7 +500,8 @@ static ALG_ID schan_get_kx_algid(const struct cipher_suite* c)
case schan_kx_ECDHE_ECDSA:
case schan_kx_ECDHE_RSA: return CALG_ECDH;
case schan_kx_NULL: return 0;
case schan_kx_RSA: return CALG_RSA_KEYX;
case schan_kx_RSA:
case schan_kx_RSA_EXPORT: return CALG_RSA_KEYX;
case schan_kx_DH_anon_EXPORT:
case schan_kx_DH_anon:
@ -509,7 +510,6 @@ static ALG_ID schan_get_kx_algid(const struct cipher_suite* c)
case schan_kx_DH_RSA_EXPORT:
case schan_kx_DH_RSA:
case schan_kx_FORTEZZA_DMS:
case schan_kx_RSA_EXPORT:
FIXME("Don't know CALG for key exchange algorithm %d for cipher suite %#x, returning 0\n", c->kx_alg, (unsigned)c->suite);
return 0;