secur32: Extract schan_imp_get_session_peer_certificate function.
This commit is contained in:
parent
9b85662fec
commit
12195b32df
|
@ -72,6 +72,26 @@ MAKE_FUNCPTR(gnutls_transport_set_push_function);
|
||||||
#undef MAKE_FUNCPTR
|
#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,
|
static SECURITY_STATUS schan_imp_send(gnutls_session_t s, const void *buffer,
|
||||||
size_t *length)
|
size_t *length)
|
||||||
{
|
{
|
||||||
|
@ -1014,23 +1034,8 @@ static SECURITY_STATUS SEC_ENTRY schan_QueryContextAttributesW(
|
||||||
}
|
}
|
||||||
case SECPKG_ATTR_REMOTE_CERT_CONTEXT:
|
case SECPKG_ATTR_REMOTE_CERT_CONTEXT:
|
||||||
{
|
{
|
||||||
unsigned int list_size;
|
PCCERT_CONTEXT *cert = buffer;
|
||||||
const gnutls_datum_t *datum;
|
return schan_imp_get_session_peer_certificate(ctx->session, cert);
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
case SECPKG_ATTR_CONNECTION_INFO:
|
case SECPKG_ATTR_CONNECTION_INFO:
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue