Max Qian : secur32: Added support for a few more algids.
Alexandre Julliard
julliard at winehq.org
Wed Jul 6 09:57:32 CDT 2016
Module: wine
Branch: master
Commit: cf9cd32df385f545d5c4933140135bd8f56dd212
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cf9cd32df385f545d5c4933140135bd8f56dd212
Author: Max Qian <public at maxqia.com>
Date: Wed Jul 6 16:06:53 2016 +0200
secur32: Added support for a few more algids.
Signed-off-by: Max Qian <public at maxqia.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/secur32/schannel_gnutls.c | 23 ++++++++++++++++-------
dlls/secur32/schannel_macosx.c | 4 ++--
2 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c
index bcadd47..7f2dbd6 100644
--- a/dlls/secur32/schannel_gnutls.c
+++ b/dlls/secur32/schannel_gnutls.c
@@ -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;
diff --git a/dlls/secur32/schannel_macosx.c b/dlls/secur32/schannel_macosx.c
index b940881..fdfa48e 100644
--- a/dlls/secur32/schannel_macosx.c
+++ b/dlls/secur32/schannel_macosx.c
@@ -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;
More information about the wine-cvs
mailing list