Función CertGetNameStringW (wincrypt.h)
La función
Sintaxis
DWORD CertGetNameStringW(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwType,
[in] DWORD dwFlags,
[in] void *pvTypePara,
[out] LPWSTR pszNameString,
[in] DWORD cchNameString
);
Parámetros
[in] pCertContext
Puntero a un contexto de certificado de CERT_CONTEXT que incluye un nombre de firmante y emisor que se va a convertir.
[in] dwType
DWORD que indican cómo se va a encontrar el nombre y cómo se va a dar formato a la salida.
Valor | Significado |
---|---|
|
Si el certificado tiene una extensión de nombre alternativo del firmante o un nombre alternativo del emisor, usa la primera opción rfc822Name. Si no se encuentra ninguna opción rfc822Name en la extensión, usa el campo Nombre del firmante para el OID de correo electrónico. Si se encuentra rfc822Name o el OID de correo electrónico, usa la cadena . De lo contrario, devuelve una cadena vacía (el recuento de caracteres devuelto es 1). no se usa pvTypePara y se establece en null. |
|
Convierte el BLOB de nombre de sujeto llamando a CertNameToStr. |
|
pvTypePara apunta a un identificador de objeto de (OID) que especifica el atributo name que se va a devolver. Por ejemplo, si pvTypePara es szOID_COMMON_NAME, usa el miembro Nombre del firmante. Si el miembro Nombre del firmante está vacío y el certificado tiene una extensión Nombre alternativo del firmante, usa la primera opción directoryName. |
|
Recorre en iteración la siguiente lista de atributos de nombre y usa la extensión Nombre del firmante o Nombre alternativo del firmante para la primera aparición de: szOID_COMMON_NAME, szOID_ORGANIZATIONAL_UNIT_NAME, szOID_ORGANIZATION_NAME o szOID_RSA_emailAddr.
Si no se encuentra uno de estos atributos, usa la extensión Nombre alternativo del firmante para una opción rfc822Name. Si todavía no hay ninguna coincidencia, usa el primer atributo. no se usa pvTypePara y se establece en null. |
|
Comprueba el certificado de una propiedad CERT_FRIENDLY_NAME_PROP_ID. Si el certificado tiene esta propiedad, se devuelve. Si el certificado no tiene la propiedad , se devuelve el CERT_NAME_SIMPLE_DISPLAY_TYPE. |
|
Si el certificado tiene una extensión de nombre alternativo del firmante para el emisor, nombre alternativo del emisor, busque la primera opción DNSName.
Si la opción DNSName no se encuentra en la extensión, busque el campo Nombre del firmante para el OID CN, "2.5.4.3". Si se encuentra el OID DNSName o CN, devuelva la cadena. De lo contrario, devuelve una cadena vacía. |
|
Si el certificado tiene una extensión de nombre alternativo del firmante para el emisor, nombre alternativo del emisor, busque la primera opción de dirección URL. Si se encuentra la opción de dirección URL, devuelva la cadena. De lo contrario, devuelve una cadena vacía. |
|
Si el certificado tiene una extensión Nombre alternativo del firmante, busque las opciones OtherName que buscan un pszObjId == szOID_NT_PRINCIPAL_NAME, ("1.3.6.1.4.1.311.20.2.3").
Si se encuentra el OID de UPN, descodifique el BLOB como un X509_UNICODE_ANY_STRING y devuelva la cadena descodificada. De lo contrario, devuelve una cadena vacía. |
[in] dwFlags
Indica el tipo de procesamiento necesario.
Valor | Significado |
---|---|
|
Adquiere el nombre del emisor. Si no se establece, adquiere el nombre del firmante. |
|
Omite el intento inicial predeterminado de descodificar el valor como UTF8 y descodifica como caracteres de 8 bits. |
|
Si el parámetro dwType se establece en CERT_NAME_DNS_TYPE, se devuelven todos los nombres aplicables para el valor DNS especificado. Si no hay ningún nombre DNS, pero hay un componente CN en el asunto, se devuelve el CN en su lugar. Si hay un CN y un nombre DNS, solo se devuelven los nombres DNS. Esto imita la directiva de creación de cadenas SSL. Si establece esta marca para un tipo de nombre distinto de CERT_NAME_DNS_TYPE, esta función devuelve una cadena vacía terminada en null.
Windows 8 y Windows Server 2012: comienza la compatibilidad con esta marca. |
|
Esta marca habilita la descodificación de
|
[in] pvTypePara
Puntero a un DWORD de
[out] pszNameString
Puntero a un búfer asignado para recibir la cadena devuelta. Si pszNameString no es NULL y cchNameString no es cero, pszNameString es una cadena nula-terminated.
Si CERT_NAME_SEARCH_ALL_NAMES_FLAG se especifica en el parámetro dwFlags y CERT_NAME_DNS_TYPE se establece en el parámetro dwType, la cadena devuelta contendrá todos los nombres DNS que se aplican. Cada cadena de la cadena de salida está terminada en null y la última cadena finalizará con un valor NULL doble. Si no se encuentra ningún nombre DNS, se devuelve una sola cadena vacía terminada en NULL.
[in] cchNameString
Tamaño, en caracteres, asignado para la cadena devuelta. El tamaño debe incluir el carácter de de terminación
Valor devuelto
Devuelve el número de caracteres convertidos, incluido el carácter de terminación cero. Si
Observaciones
Nota
El encabezado wincrypt.h define CertGetNameString como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
wincrypt.h |
biblioteca de |
Crypt32.lib |
DLL de |
Crypt32.dll |