Module: wine Branch: master Commit: 12195b32dffcb5f0b1ce672f5088923e4049fd75 URL: http://source.winehq.org/git/wine.git/?a=commit;h=12195b32dffcb5f0b1ce672f50...
Author: Ken Thomases ken@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: {