Función CryptFormatObject (wincrypt.h)

La función CryptFormatObject da formato a los datos codificados y devuelve una cadena Unicode en el búfer asignado según el tipo de codificación de certificado.

Sintaxis

BOOL CryptFormatObject(
  [in]      DWORD      dwCertEncodingType,
  [in]      DWORD      dwFormatType,
  [in]      DWORD      dwFormatStrType,
  [in]      void       *pFormatStruct,
  [in]      LPCSTR     lpszStructType,
  [in]      const BYTE *pbEncoded,
  [in]      DWORD      cbEncoded,
  [out]     void       *pbFormat,
  [in, out] DWORD      *pcbFormat
);

Parámetros

[in] dwCertEncodingType

Tipo de codificación usada en el certificado. El tipo de codificación de certificado definido actualmente se X509_ASN_ENCODING.

[in] dwFormatType

Dar formato a los valores de tipo. No se usa. Establecer en cero.

[in] dwFormatStrType

Valores de tipo de formato de estructura. Este parámetro puede ser cero o puede especificar una o varias de las marcas siguientes mediante el operador OR bit a bit para combinarlos.

Valor Significado
0
Muestra los datos en una sola línea. Cada subcampo se concatena con una coma (,). Para obtener más información, vea la sección Comentarios.
CRYPT_FORMAT_STR_MULTI_LINE
0x0001
Mostrar los datos en varias líneas en lugar de una sola línea (valor predeterminado). Para obtener más información, vea la sección Comentarios.
CRYPT_FORMAT_STR_NO_HEX
0x0010
Deshabilita el volcado hexadecimal. Para obtener más información, vea la sección Comentarios.

[in] pFormatStruct

Puntero al formato de la estructura. No se usa. Se establece en NULL.

[in] lpszStructType

Puntero a un OID que define los datos codificados. Si la palabra de orden superior del parámetro lpszStructType es cero, la palabra de orden bajo especifica el identificador entero para el tipo de la estructura especificada. De lo contrario, este parámetro es un puntero largo a una cadena terminada en null.

En la tabla siguiente se enumeran los OID admitidos con su extensión de OID asociada.

Valor Significado
SPC_FINANCIAL_CRITERIA_OBJID
1.3.6.1.4.1.311.2.1.27
SPC_SP_AGENCY_INFO_OBJID
1.3.6.1.4.1.311.2.1.10
szOID_AUTHORITY_INFO_ACCESS
1.3.6.1.5.5.7.1.1
szOID_AUTHORITY_KEY_IDENTIFIER2
2.5.29.35
szOID_BASIC_CONSTRAINTS2
2.5.29.19
szOID_CERT_POLICIES
2.5.29.32
szOID_CRL_DIST_POINTS
2.5.29.31
szOID_CRL_REASON_CODE
2.5.29.21
szOID_ENHANCED_KEY_USAGE
2.5.29.37
szOID_ISSUER_ALT_NAME2
2.5.29.18
szOID_KEY_ATTRIBUTES
2.5.29.2
szOID_KEY_USAGE
2.5.29.15
szOID_KEY_USAGE_RESTRICTION
2.5.29.4
szOID_NEXT_UPDATE_LOCATION
1.3.6.1.4.1.311.10.2
szOID_RSA_SMIMECapabilities
1.2.840.113549.1.9.15
szOID_SUBJECT_ALT_NAME2
2.5.29.17
szOID_SUBJECT_KEY_IDENTIFIER
2.5.29.14

[in] pbEncoded

Puntero a los datos codificados a los que se va a dar formato. Si lpszStructType es uno de los OID enumerados anteriormente, pbEncoded es la extensión codificada.

[in] cbEncoded

Tamaño, en bytes, de la estructura pbEncoded .

[out] pbFormat

Puntero a un búfer que recibe la cadena con formato. Cuando el búfer especificado no es lo suficientemente grande como para recibir la estructura descodificada, la función establece ERROR_MORE_DATA y almacena el tamaño de búfer necesario, en bytes, en la variable a la que apunta pcbFormat. Este parámetro puede ser NULL para establecer el tamaño de esta información con fines de asignación de memoria. Para obtener más información, vea Recuperación de datos de longitud desconocida.

[in, out] pcbFormat

Puntero a una variable que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pbFormat . Cuando se devuelve la función, la variable a la que apunta el parámetro pcbFormat contiene el número de bytes almacenados en el búfer. Este parámetro puede ser NULL, solo si pbFormat es NULL.

Nota Al procesar los datos devueltos en el búfer, las aplicaciones deben usar el tamaño real de los datos devueltos. El tamaño real puede ser ligeramente menor que el tamaño del búfer especificado en la entrada. (En la entrada, los tamaños del búfer suelen especificarse lo suficientemente grandes como para asegurarse de que los datos de salida más grandes posibles caben en el búfer). En la salida, la variable a la que apunta este parámetro se actualiza para reflejar el tamaño real de los datos copiados en el búfer.
 

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es TRUE. Si no se realiza correctamente, el valor devuelto es FALSE. Para recuperar información de error extendida, use la función GetLastError .

Comentarios

El comportamiento predeterminado de esta función es devolver una presentación de una sola línea de los datos codificados, es decir, cada subcampo se concatena con una coma (,) en una línea. Si prefiere mostrar los datos en varias líneas, establezca la marca CRYPT_FORMAT_STR_MULTI_LINE. A continuación, cada subcampo se mostrará en una línea independiente.

Si no hay ninguna rutina de formato instalada o registrada para el parámetro lpszStructType , se devolverá el volcado hexadecimal del CRYPT_INTEGER_BLOB codificado. Un usuario puede establecer la marca CRYPT_FORMAT_STR_NO_HEX para deshabilitar el volcado hexadecimal.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Crypt32.lib
Archivo DLL Crypt32.dll

Consulte también

CRYPT_INTEGER_BLOB