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