]> git.pld-linux.org Git - packages/wine.git/blob - wine-secur32.patch
- rel 3; enable 64bit wine
[packages/wine.git] / wine-secur32.patch
1 diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c
2 index 8f127e6..ce711e4 100644
3 --- a/dlls/secur32/schannel.c
4 +++ b/dlls/secur32/schannel.c
5 @@ -48,6 +48,7 @@ MAKE_FUNCPTR(gnutls_alert_get);
6  MAKE_FUNCPTR(gnutls_alert_get_name);
7  MAKE_FUNCPTR(gnutls_certificate_allocate_credentials);
8  MAKE_FUNCPTR(gnutls_certificate_free_credentials);
9 +MAKE_FUNCPTR(gnutls_certificate_get_peers);
10  MAKE_FUNCPTR(gnutls_cipher_get);
11  MAKE_FUNCPTR(gnutls_credentials_set);
12  MAKE_FUNCPTR(gnutls_deinit);
13 @@ -872,6 +873,31 @@ static SECURITY_STATUS SEC_ENTRY schan_QueryContextAttributesW(
14              return SEC_E_OK;
15          }
16  
17 +        case SECPKG_ATTR_REMOTE_CERT_CONTEXT:
18 +        {
19 +            unsigned int list_count;
20 +            const gnutls_datum_t *list;
21 +            PCCERT_CONTEXT *context = (PCCERT_CONTEXT *)buffer;
22 +            list = pgnutls_certificate_get_peers(ctx->session, &list_count);
23 +            FIXME("Got %d certs\n", list_count);
24 +            *context = CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, list[0].data, list[0].size);
25 +            return SEC_E_OK;
26 +        }
27 +
28 +        case SECPKG_ATTR_CONNECTION_INFO:
29 +        {
30 +            SecPkgContext_ConnectionInfo *conn_info = (SecPkgContext_ConnectionInfo *)buffer;
31 +            FIXME("conn_info %p\n", conn_info);
32 +            conn_info->dwProtocol = SP_PROT_TLS1_CLIENT;
33 +            conn_info->aiCipher = CALG_AES_256;
34 +            conn_info->dwCipherStrength = 256;
35 +            conn_info->aiHash = CALG_SHA;
36 +            conn_info->dwHashStrength = 160;
37 +            conn_info->aiExch = CALG_RSA_KEYX;
38 +            conn_info->dwExchStrength = 1024;
39 +            return SEC_E_OK;
40 +        }
41 +
42          default:
43              FIXME("Unhandled attribute %#x\n", attribute);
44              return SEC_E_UNSUPPORTED_FUNCTION;
45 @@ -887,6 +913,8 @@ static SECURITY_STATUS SEC_ENTRY schan_QueryContextAttributesA(
46      switch(attribute)
47      {
48          case SECPKG_ATTR_STREAM_SIZES:
49 +        case SECPKG_ATTR_REMOTE_CERT_CONTEXT:
50 +        case SECPKG_ATTR_CONNECTION_INFO:
51              return schan_QueryContextAttributesW(context_handle, attribute, buffer);
52  
53          default:
54 @@ -1220,6 +1248,7 @@ void SECUR32_initSchannelSP(void)
55      LOAD_FUNCPTR(gnutls_alert_get_name)
56      LOAD_FUNCPTR(gnutls_certificate_allocate_credentials)
57      LOAD_FUNCPTR(gnutls_certificate_free_credentials)
58 +    LOAD_FUNCPTR(gnutls_certificate_get_peers)
59      LOAD_FUNCPTR(gnutls_cipher_get)
60      LOAD_FUNCPTR(gnutls_credentials_set)
61      LOAD_FUNCPTR(gnutls_deinit)
This page took 0.033277 seconds and 3 git commands to generate.