Función QueryContextAttributes (Schannel)

La función QueryContextAttributes (Schannel) permite a una aplicación de transporte consultar el paquete de seguridad de Schannel para determinados atributos de un contexto de seguridad.

Sintaxis

SECURITY_STATUS SEC_ENTRY QueryContextAttributes(
  _In_  PCtxtHandle phContext,
  _In_  ULONG       ulAttribute,
  _Out_ PVOID       pBuffer
);

Parámetros

phContext [in]

Identificador del contexto de seguridad que se va a consultar.

ulAttribute [in]

Especifica el atributo del contexto que se va a devolver. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
SECPKG_ATTR_ACCESS_TOKEN
13
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_AccessToken .
Devuelve un identificador al token de acceso.
SECPKG_ATTR_APP_DATA
0x5e
El parámetro pBuffer contiene un puntero a una estructura SecPkgContext_SessionAppData .
Devuelve o especifica los datos de la aplicación para la sesión.
Este atributo solo es compatible con el paquete de seguridad de Schannel.
SECPKG_ATTR_AUTHORITY
6
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_Authority .
Consulta el nombre de la entidad de autenticación.
SECPKG_ATTR_CIPHER_INFO
0x64
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_CipherInfo .
Devuelve una nueva estructura de información de cifrado CNG.
SECPKG_ATTR_CONNECTION_INFO
0x5a
El parámetro pBuffer contiene un puntero a una estructura SecPkgContext_ConnectionInfo .
Devuelve información detallada sobre la conexión establecida.
SECPKG_ATTR_KEYING_MATERIAL
0x6b
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_KeyingMaterial . La característica de exportación de material de clave sigue el estándar RFC 5705.
Consultar este atributo antes de que se haya generado el secreto maestro o antes de que se haya establecido el atributo SECPKG_ATTR_KEYING_MATERIAL_INFO con el resultado de un error.
Este atributo solo es compatible con el paquete de seguridad de Schannel en Windows 10 y Windows Server 2016 o versiones posteriores.
SECPKG_ATTR_CREDS_2
0x80000086
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_ClientCreds que especifica las credenciales de cliente.
Si la credencial de cliente es el nombre de usuario y la contraseña, el búfer es una estructura de KERB_INTERACTIVE_LOGON empaquetada.
Si la credencial de cliente es el nombre de usuario y el PIN de tarjeta inteligente, el búfer es una estructura de KERB_CERTIFICATE_LOGON empaquetada.
Si la credencial de cliente es una credencial de identidad en línea, el búfer es una estructura de SEC_WINNT_AUTH_IDENTITY_EX2 serializado.
Este atributo solo se admite en el servidor CredSSP.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.
SECPKG_ATTR_DCE_INFO
3
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_DceInfo .
Consultas de datos de autorización usados por los servicios DCE.
SECPKG_ATTR_EAP_KEY_BLOCK
0x5b
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_EapKeyBlock .
Consulta de datos clave usados por el protocolo TLS de EAP.
Este atributo solo es compatible con el paquete de seguridad de Schannel.
SECPKG_ATTR_ENDPOINT_BINDINGS
26
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_Bindings que contiene los enlaces de canal para TLS (RFC 5929).
Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.
SECPKG_ATTR_FLAGS
14
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_Flags .
Devuelve información sobre las marcas de contexto negociadas.
SECPKG_ATTR_ISSUER_LIST_EX
0x59
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_IssuerListInfoEx .
Devuelve una lista de emisores de certificados aceptados por el servidor.
Este atributo solo es compatible con el paquete de seguridad de Schannel.
SECPKG_ATTR_KEY_INFO
5
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_KeyInfo .
Consulta información sobre las claves usadas en un contexto de seguridad.
SECPKG_ATTR_LIFESPAN
2
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_Lifespan .
Consulta el período de vida del contexto.
SECPKG_ATTR_LOCAL_CERT_CONTEXT
0x54
El parámetro pBuffer contiene un puntero a una estructura de PCCERT_CONTEXT.
Busca un contexto de certificado que contiene un certificado final local.
Este atributo solo es compatible con el paquete de seguridad de Schannel.
SECPKG_ATTR_LOCAL_CRED
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_LocalCredentialInfo . (obsoleto)
Reemplazado por SECPKG_ATTR_LOCAL_CERT_CONTEXT.
SECPKG_ATTR_NAMES
1
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_Names .
Consulta el nombre asociado al contexto.
SECPKG_ATTR_NATIVE_NAMES
13
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_NativeNames .
Devuelve el nombre principal (CNAME) del vale de salida.
SECPKG_ATTR_NEGOTIATION_INFO
12
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_NegotiationInfo .
Devuelve información sobre el paquete de seguridad que se va a usar con el proceso de negociación y el estado actual de la negociación para el uso de ese paquete.
SECPKG_ATTR_PACKAGE_INFO
10
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_PackageInfo .
Devuelve información sobre el SSP en uso.
SECPKG_ATTR_PASSWORD_EXPIRY
8
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_PasswordExpiry .
Devuelve información de expiración de contraseña.
SECPKG_ATTR_REMOTE_CERT_CONTEXT
0x53
El parámetro pBuffer contiene un puntero a una estructura de PCCERT_CONTEXT.
Busca un contexto de certificado que contiene el certificado final proporcionado por el servidor.
Este atributo solo es compatible con el paquete de seguridad de Schannel.
SECPKG_ATTR_ROOT_STORE
0x55
El parámetro pBuffer contiene un puntero a un HCERTCONTEXT. Busca un contexto de certificado que contiene un certificado proporcionado por el almacén raíz.
SECPKG_ATTR_SESSION_INFO
0x5d
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_SessionInfo .
Devuelve información sobre la sesión.
Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.
SECPKG_ATTR_SESSION_KEY
9
El parámetro pBuffer contiene un puntero a una estructura SecPkgContext_SessionKey .
Devuelve información sobre la clave de sesións.
SECPKG_ATTR_SIZES
0
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_Sizes .
Consulta los tamaños de las estructuras usadas en las funciones por mensaje.
SECPKG_ATTR_STREAM_SIZES
4
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_StreamSizes .
Consulta los tamaños de las distintas partes de una secuencia usadas en las funciones por mensaje.
SECPKG_ATTR_SUPPORTED_SIGNATURES
0x66
El parámetro pBuffer contiene un puntero a una estructura SecPkgContext_SupportedSignatures .
Este valor devuelve información sobre los tipos de firma que se admiten para la conexión.
Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.
SECPKG_ATTR_TARGET_INFORMATION
17
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_TargetInformation .
Devuelve información sobre el nombre del servidor remoto.
SECPKG_ATTR_UNIQUE_BINDINGS
25
El parámetro pBuffer contiene un puntero a una estructura de SecPkgContext_Bindings que contiene información de enlace de canal.
Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.
SECPKG_ATTR_APPLICATION_PROTOCOL
35
El parámetro pBuffer contiene un protocolo de aplicación negociado.
SECPKG_ATTR_DTLS_MTU
34
Establece y recupera el valor de MTU (unidad de transmisión máxima) para su uso con DTLS. Si DTLS no está habilitado en un contexto de seguridad, este atributo no se admite.
Los valores válidos están comprendidos entre 200 bytes y 64 kilobytes. El valor predeterminado de MTU de DTLS en Schannel es de 1096 bytes.

 

pBuffer [out]

Puntero a una estructura que recibe los atributos. El tipo de estructura al que apunta depende del valor especificado en el parámetro ulAttribute .

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto se SEC_E_OK.

Si se produce un error en la función, el valor devuelto es un código de error distinto de cero.

Comentarios

La estructura a la que apunta el parámetro pBuffer varía en función del atributo que se consulta. El autor de la llamada debe asignar la propia estructura pBuffer , pero el SSP asigna cualquier memoria necesaria para contener miembros de tamaño variable de la estructura pBuffer . Cuando haya terminado de usar la memoria asignada por el SSP, libere mediante una llamada a la función FreeContextBuffer .

Una vez leído el valor de SECPKG_ATTR_REMOTE_CERT_CONTEXT o SECPKG_ATTR_LOCAL_CERT_CONTEXT, el miembro hCertStore se establece en un identificador en un almacén de certificados que contiene los certificados intermedios, si los hay. Además, la aplicación es responsable de llamar a CertFreeCertificateContext para liberar la memoria usada por el contexto del certificado.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 8.1 [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2012 R2 [solo aplicaciones de escritorio]
Encabezado
Sspi.h (incluya Security.h)
Biblioteca
Secur32.lib
Archivo DLL
Secur32.dll
Nombres Unicode y ANSI
QueryContextAttributesW (Unicode) y QueryContextAttributesA (ANSI)

Consulte también

Funciones SSPI

CERT_CONTEXT

FreeContextBuffer

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes