]> git.pld-linux.org Git - packages/wine.git/commitdiff
- Bug 17296,Partial support for SECPKG_ATTR_REMOTE_CERT_CONTEXT and SECPKG_ATTR_CONNE...
authorMichał 'Wolvverine' Panasiewicz <wolvverine@pld-linux.org>
Tue, 9 Jun 2009 11:34:01 +0000 (11:34 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    wine-secur32.patch -> 1.1

wine-secur32.patch [new file with mode: 0644]

diff --git a/wine-secur32.patch b/wine-secur32.patch
new file mode 100644 (file)
index 0000000..8f24b33
--- /dev/null
@@ -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)
This page took 0.118307 seconds and 4 git commands to generate.