From 109bb081452a2505c5f5c37d987439d6109f3255 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20=27Wolvverine=27=20Panasiewicz?= Date: Tue, 9 Jun 2009 11:34:01 +0000 Subject: [PATCH] - Bug 17296,Partial support for SECPKG_ATTR_REMOTE_CERT_CONTEXT and SECPKG_ATTR_CONNECTION_INFO. Changed files: wine-secur32.patch -> 1.1 --- wine-secur32.patch | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 wine-secur32.patch diff --git a/wine-secur32.patch b/wine-secur32.patch new file mode 100644 index 0000000..8f24b33 --- /dev/null +++ b/wine-secur32.patch @@ -0,0 +1,61 @@ +diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c +index 8f127e6..ce711e4 100644 +--- a/dlls/secur32/schannel.c ++++ b/dlls/secur32/schannel.c +@@ -48,6 +48,7 @@ MAKE_FUNCPTR(gnutls_alert_get); + MAKE_FUNCPTR(gnutls_alert_get_name); + MAKE_FUNCPTR(gnutls_certificate_allocate_credentials); + MAKE_FUNCPTR(gnutls_certificate_free_credentials); ++MAKE_FUNCPTR(gnutls_certificate_get_peers); + MAKE_FUNCPTR(gnutls_cipher_get); + MAKE_FUNCPTR(gnutls_credentials_set); + MAKE_FUNCPTR(gnutls_deinit); +@@ -872,6 +873,31 @@ static SECURITY_STATUS SEC_ENTRY schan_QueryContextAttributesW( + return SEC_E_OK; + } + ++ case SECPKG_ATTR_REMOTE_CERT_CONTEXT: ++ { ++ unsigned int list_count; ++ const gnutls_datum_t *list; ++ PCCERT_CONTEXT *context = (PCCERT_CONTEXT *)buffer; ++ list = pgnutls_certificate_get_peers(ctx->session, &list_count); ++ FIXME("Got %d certs\n", list_count); ++ *context = CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, list[0].data, list[0].size); ++ return SEC_E_OK; ++ } ++ ++ case SECPKG_ATTR_CONNECTION_INFO: ++ { ++ SecPkgContext_ConnectionInfo *conn_info = (SecPkgContext_ConnectionInfo *)buffer; ++ FIXME("conn_info %p\n", conn_info); ++ conn_info->dwProtocol = SP_PROT_TLS1_CLIENT; ++ conn_info->aiCipher = CALG_AES_256; ++ conn_info->dwCipherStrength = 256; ++ conn_info->aiHash = CALG_SHA; ++ conn_info->dwHashStrength = 160; ++ conn_info->aiExch = CALG_RSA_KEYX; ++ conn_info->dwExchStrength = 1024; ++ return SEC_E_OK; ++ } ++ + default: + FIXME("Unhandled attribute %#x\n", attribute); + return SEC_E_UNSUPPORTED_FUNCTION; +@@ -887,6 +913,8 @@ static SECURITY_STATUS SEC_ENTRY schan_QueryContextAttributesA( + switch(attribute) + { + case SECPKG_ATTR_STREAM_SIZES: ++ case SECPKG_ATTR_REMOTE_CERT_CONTEXT: ++ case SECPKG_ATTR_CONNECTION_INFO: + return schan_QueryContextAttributesW(context_handle, attribute, buffer); + + default: +@@ -1220,6 +1248,7 @@ void SECUR32_initSchannelSP(void) + LOAD_FUNCPTR(gnutls_alert_get_name) + LOAD_FUNCPTR(gnutls_certificate_allocate_credentials) + LOAD_FUNCPTR(gnutls_certificate_free_credentials) ++ LOAD_FUNCPTR(gnutls_certificate_get_peers) + LOAD_FUNCPTR(gnutls_cipher_get) + LOAD_FUNCPTR(gnutls_credentials_set) + LOAD_FUNCPTR(gnutls_deinit) -- 2.44.0