Ken Thomases : secur32: Extract schan_imp_get_session_peer_certificate function.

Alexandre Julliard julliard at winehq.org
Mon Mar 14 14:29:43 CDT 2011


Module: wine
Branch: master
Commit: 12195b32dffcb5f0b1ce672f5088923e4049fd75
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=12195b32dffcb5f0b1ce672f5088923e4049fd75

Author: Ken Thomases <ken at codeweavers.com>
Date:   Sun Mar 13 18:57:15 2011 -0500

secur32: Extract schan_imp_get_session_peer_certificate function.

---

 dlls/secur32/schannel.c |   39 ++++++++++++++++++++++-----------------
 1 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c
index b8aaaad..ac3fa7f 100644
--- a/dlls/secur32/schannel.c
+++ b/dlls/secur32/schannel.c
@@ -72,6 +72,26 @@ MAKE_FUNCPTR(gnutls_transport_set_push_function);
 #undef MAKE_FUNCPTR
 
 
+static SECURITY_STATUS schan_imp_get_session_peer_certificate(gnutls_session_t s,
+                                                              PCCERT_CONTEXT *cert)
+{
+    unsigned int list_size;
+    const gnutls_datum_t *datum;
+
+    datum = pgnutls_certificate_get_peers(s, &list_size);
+    if (datum)
+    {
+        *cert = CertCreateCertificateContext(X509_ASN_ENCODING, datum->data,
+                                             datum->size);
+        if (!*cert)
+            return GetLastError();
+        else
+            return SEC_E_OK;
+    }
+    else
+        return SEC_E_INTERNAL_ERROR;
+}
+
 static SECURITY_STATUS schan_imp_send(gnutls_session_t s, const void *buffer,
                                       size_t *length)
 {
@@ -1014,23 +1034,8 @@ static SECURITY_STATUS SEC_ENTRY schan_QueryContextAttributesW(
         }
         case SECPKG_ATTR_REMOTE_CERT_CONTEXT:
         {
-            unsigned int list_size;
-            const gnutls_datum_t *datum;
-
-            datum = pgnutls_certificate_get_peers(ctx->session, &list_size);
-            if (datum)
-            {
-                PCCERT_CONTEXT *cert = buffer;
-
-                *cert = CertCreateCertificateContext(X509_ASN_ENCODING,
-                        datum->data, datum->size);
-                if (!*cert)
-                    return GetLastError();
-                else
-                    return SEC_E_OK;
-            }
-            else
-                return SEC_E_INTERNAL_ERROR;
+            PCCERT_CONTEXT *cert = buffer;
+            return schan_imp_get_session_peer_certificate(ctx->session, cert);
         }
         case SECPKG_ATTR_CONNECTION_INFO:
         {




More information about the wine-cvs mailing list