Constantes para CryptEncodeObject y CryptDecodeObject
Las funciones CryptEncodeObject, CryptEncodeObjectEx, CryptSignAndEncodeCertificate, CryptDecodeObject y CryptDecodeObjectEx son funciones de codificación y descodificación generalizadas, capaces de codificar y descodificar sintaxis abstracta Notation One (ASN.1), listas de revocación de certificados (CRL), listas de confianza de certificados (CTL) y solicitudes de certificado.
En la tabla siguiente se enumeran las constantes, extensiones y atributos predefinidos que se usan con operaciones de codificación y descodificación y la estructura de datos a la que apunta el parámetro pvStructInfo .
Nota:
Algunas constantes predefinidas y cadenas OID tienen el mismo significado. Cuando lo hacen, se puede usar como parámetro lpszStuctType .
Constante o valor | Descripción |
---|---|
|
El parámetro pvStructInfo es un puntero a una estructura CMC_ADD_ATTRIBUTES_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CMC_ADD_EXTENSIONS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ALGORITHM_IDENTIFIER . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_NAME_VALUE . |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_POLICY_QUALIFIER_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_CONSTRAINTS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_POLICY_MAPPINGS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ATTRIBUTE . |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_AUTHORITY_INFO_ACCESS . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_AUTHORITY_INFO_ACCESS . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_AUTHORITY_INFO_ACCESS . |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_AUTHORITY_INFO_ACCESS . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_AUTHORITY_KEY_ID_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_AUTHORITY_KEY_ID2_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_AUTHORITY_KEY_ID_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_AUTHORITY_KEY_ID2_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_BASIC_CONSTRAINTS_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_BASIC_CONSTRAINTS_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_BASIC_CONSTRAINTS2_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_BASIC_CONSTRAINTS2_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_BIOMETRIC_EXT_INFO . Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_BIOMETRIC_EXT_INFO . Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_BIT_BLOB . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_SIGNED_CONTENT_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRL_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_EXTENSIONS . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_PAIR . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICIES_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICIES_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_REQUEST_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_TEMPLATE_EXT . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_TEMPLATE_EXT . |
|
El parámetro pvStructInfo es un puntero a una variable FILETIME . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_CONTENT_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRL_DIST_POINTS_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRL_DIST_POINTS_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una variable int . |
|
El parámetro pvStructInfo es un puntero a un entero que contiene el valor enumerado. Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a un entero que contiene el valor enumerado. Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una variable int . |
|
El parámetro pvStructInfo es un puntero a una estructura CROSS_CERT_DIST_POINTS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CROSS_CERT_DIST_POINTS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura blobs de clave pública diffie-Hellman versión 3 o blobs de clave pública de DSS versión 3 . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CTL_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CMC_DATA_INFO . |
|
El parámetro pvStructInfo es un puntero a una variable int . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_DSS_PARAMETERS . |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_UINT_BLOB . |
|
El parámetro pvStructInfo es un puntero a una matriz de 40 bytes. Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a un LPSTR de la representación de punto del identificador de objeto. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_ECC_SIGNATURE . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ECC_PRIVATE_KEY_INFO. Windows Server 2003, Windows XP, Windows 2000 y Windows Vista: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ALGORITHM_IDENTIFIER . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_ENHKEY_USAGE o CTL_USAGE . (Estas estructuras son las mismas, pero se conocen por nombres diferentes). |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_ENHKEY_USAGE o CTL_USAGE . (Estas estructuras son las mismas, pero se conocen por nombres diferentes). |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ENROLLMENT_NAME_VALUE_PAIR . |
|
El parámetro pvStructInfo es un puntero a un entero que contiene el valor enumerado. Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_EXTENSIONS . |
|
El parámetro pvStructInfo es un puntero a una estructura de CRL_DIST_POINTS_INFO . |
|
El parámetro pvStructInfo es un puntero a un entero con signo de 32 bits o menos. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CRL_ISSUING_DIST_POINT . |
|
El parámetro pvStructInfo es un puntero a una estructura CRL_ISSUING_DIST_POINT . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_KEY_ATTRIBUTES_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_KEY_ATTRIBUTES_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_BIT_BLOB . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_BIT_BLOB . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_KEY_USAGE_RESTRICTION_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_KEY_USAGE_RESTRICTION_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_KEYGEN_REQUEST_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_LOGOTYPE_EXT_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_LOGOTYPE_EXT_INFO . Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_INTEGER_BLOB . El BLOB está en orden little-endian . |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_UINT_BLOB . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_NAME_CONSTRAINTS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_NAME_CONSTRAINTS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_NAME_VALUE . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a un LPSTR de la representación de puntos del identificador de objeto. Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_DATA_BLOB . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_DSS_PARAMETERS . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_CONSTRAINTS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_CONSTRAINTS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_MAPPINGS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_MAPPINGS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_PUBLIC_KEY_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_RC2_CBC_PARAMETERS . |
|
El parámetro pvStructInfo es un puntero a una estructura de CMC_RESPONSE_INFO . |
|
El parámetro pvStructInfo es un puntero a un BCRYPT_RSAKEY_BLOB inmediatamente seguido del exponente y los bytes de módulo. Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de BCRYPT_RSAKEY_BLOB privada. Windows Server 2003, Windows XP, Windows 2000 y Windows Vista: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una variable FILETIME . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_SMIME_CAPABILITIES . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_RSA_SSA_PSS_PARAMETERS . Para conocer más detalles, vea la sección Comentarios. Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_RSA_SSA_PSS_PARAMETERS . Para conocer más detalles, vea la sección Comentarios. Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura de CRYPT_RSAES_OAEP_PARAMETERS . Para conocer más detalles, vea la sección Comentarios. Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura de CRYPT_ECC_CMS_SHARED_INFO . Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura de CRYPT_RSAES_OAEP_PARAMETERS . Para conocer más detalles, vea la sección Comentarios. Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una estructura de CRYPT_SEQUENCE_OF_ANY . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CMSG_SIGNER_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CMSG_CMS_SIGNER_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_SMIME_CAPABILITIES . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CMC_STATUS_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_DATA_BLOB . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_TIME_STAMP_REQUEST_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_NAME_VALUE . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura de CERT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una estructura CERT_NAME_VALUE . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una variable FILETIME . Para conocer más detalles, vea la sección Comentarios. |
|
El parámetro pvStructInfo es un puntero a una variable OCSP_SIGNED_REQUEST_INFO . Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una variable de OCSP_REQUEST_INFO . Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una variable OCSP_RESPONSE_INFO . Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una variable OCSP_BASIC_SIGNED_RESPONSE_INFO . Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a una variable OCSP_BASIC_RESPONSE_INFO . Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El parámetro pvStructInfo es un puntero a un BLOB de clave privada RSA. Para más información, consulte Blobs de clave privada diffie-Hellman versión 3 y blobs de clave privada de DSS versión 3. |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_PRIVATE_KEY_INFO . |
|
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ENCRYPTED_PRIVATE_KEY_INFO . |
Comentarios
En la tabla siguiente se proporcionan más detalles sobre los valores específicos de lpszStructType .
Valor | Descripción |
---|---|
X509_ALTERNATE_NAMEszOID_ISSUER_ALT_NAME szOID_SUBJECT_ALT_NAME |
Antes de codificar, las opciones de nombre LPWSTR se convierten en cadenas IA5. Si la cadena contiene una cadena IA5 que no es válida, GetLastError devuelve CRYPT_E_INVALID_IA5_STRING y *pcbEncoded se actualiza con la ubicación de error del carácter que no es válido. Los índices de ubicación de error se devuelven en *pcbEncoded de la siguiente manera: Bit 0 es el bit menos significativo del DWORD. El VALUE_INDEX del error se encuentra en bits de 0 a 15. Este es el índice de caracteres Unicode. El ENTRY_INDEX del error se encuentra en los bits de 16 a 23. Las macros GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) y GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X) se definen para proporcionar una lectura sencilla de los campos de mapa de bits para VALUE_INDEX y ENTRY_INDEX de la DWORD que los contiene: El szOID_SUBJECT_ALT_NAME ha sido reemplazado por szOID_SUBJECT_ALT_NAME2. Los nuevos servidores de certificados implementan este último. |
X509_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_KEY_IDENTIFIER2 X509_AUTHORITY_KEY_ID2 |
Si una función de codificación devuelve CRYPT_E_INVALID_IA5_STRING como GetLastError, la ubicación de error devuelta en *pcbEncoded consta de: ENTRY_INDEX – 8 bits << 16 VALUE_INDEX: 16 bits (índice de caracteres Unicode) Los índices de ubicación de error se devuelven en *pcbEncoded de la siguiente manera: Bit 0 es el bit menos significativo del DWORD. El VALUE_INDEX del error se encuentra en bits de 0 a 15. Este es el índice de caracteres Unicode. El ENTRY_INDEX del error se encuentra en los bits de 16 a 23. Las macros GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) y GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X) se definen para proporcionar una lectura sencilla de los campos bitmapped para VALUE_INDEX y ENTRY_INDEX de la DWORD que los contiene. |
X509_AUTHORITY_KEY_IDszOID_AUTHORITY_KEY_IDENTIFIER |
La X509_AUTHORITY_KEY_ID ha sido reemplazada por X509_AUTHORITY_KEY_ID2. Los nuevos servidores de certificados implementan este último. |
X509_BASIC_CONSTRAINTSszOID_BASIC_CONSTRAINTS |
La X509_BASIC_CONSTRAINTS ha sido reemplazada por X509_BASIC_CONSTRAINTS2. Los nuevos servidores de certificados implementan este último. |
X509_CERT | La estructura CERT_SIGNED_CONTENT_INFO contiene el contenido codificado que se va a firmar, su firma y el algoritmo de firma. El miembro ToBeSigned es una salida codificada CERT_INFO, CRL_INFO, CERT_REQUEST_INFO o CERT_KEYGEN_REQUEST_INFO de una llamada anterior a CryptEncodeObject para uno de los siguientes valores lpszStructType :
|
szOID_CERT_EXTENSIONS | Se puede usar para uno de los tipos de atributo de una solicitud de certificado. |
X509_CHOICE_OF_TIME | Por X509_ASN_ENCODING, si la hora es posterior a 1950 y antes de 2050, se codifica la hora UTC con un año de dos dígitos. De lo contrario, se codifica la hora generalizada con un año de cuatro dígitos, la fecha es precisa para segundos. |
PKCS_CONTENT_INFO | Para X509_ASN_ENCODING, codificado como una estructura ContentInfo de PKCS #7. El CRYPT_DER_BLOB apunta al contenido ANY ya codificado. |
PKCS_CONTENT_INFO_SEQUENCE_OF_ANY | Para X509_ASN_ENCODING, codificado como una estructura ContentInfo PKCS #7 encapsulando una secuencia de ANY. El valor del miembro contentType es pszObjId, mientras que el campo de contenido es la siguiente estructura: SequenceOfAny ::= SEQUENCE OF ANY El CRYPT_DER_BLOB apunta al contenido ANY ya codificado. |
X509_CRL_DIST_POINTSszOID_CRL_DIST_POINTS |
Si se produce un error en la función de codificación con GetLastError devolviendo CRYPT_E_INVALID_IA5_STRING, *pcbEncoded se actualiza con la ubicación de error del carácter que no es válido: CRL_ISSUER_BIT – 1 bit << 31 (0 para FullName, 1 para CRLIssuer) POINT_INDEX: 7 bits << 24 ENTRY_INDEX: 8 bits << 16 VALUE_INDEX: 16 bits (índice de caracteres Unicode) Los índices de ubicación de error se devuelven en *pcbEncoded de la siguiente manera: Bit 0 es el bit menos significativo del DWORD. El VALUE_INDEX del error se encuentra en bits de 0 a 15. Este es el índice de caracteres Unicode. El ENTRY_INDEX del error se encuentra en los bits de 16 a 23. Las macros GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) y GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X) se definen para proporcionar una lectura sencilla de los campos bitmapped para VALUE_INDEX y ENTRY_INDEX de la DWORD que los contiene. |
szOID_CRL_NUMBER | Solo se usa con listas de revocación de certificados base (CRL). Se trata de un número de secuencia que aumenta de forma monotónica para cada CRL emitido por una entidad de certificación. |
X509_CRL_REASON_CODEszOID_CRL_REASON_CODE X509_ENUMERATED |
Integer se puede establecer en uno de los siguientes valores enumerados.
|
szOID_CRL_VIRTUAL_BASE | Se usa solo con CRL delta. Contiene el número de CRL base de la CRL base correspondiente. |
X509_CROSS_CERT_DIST_POINTSszOID_CROSS_CERT_DIST_POINTS |
Para CRYPT_E_INVALID_IA5_STRING, la ubicación del error se devuelve en *pcbEncoded by CryptEncodeObject(X509_CRL_DIST_POINTS) Ubicación de error consta de:
|
RSA_CSP_PUBLICKEYBLOB | La función CryptExportKey genera el valor de pvStructInfo anterior para dwBlobType de PUBLICKEYBLOB. La función CryptImportKey espera el valor de pvStructInfo anterior al importar una clave pública. Si dwCertEncodingType es X509_ASN_ENCODING, el RSA_CSP_PUBLICKEYBLOB se codifica como un PKCS #1 RSAPublicKey que consta de una SECUENCIA de un INTEGER de módulo y un INTEGER publicExponent. El módulo se codifica como un entero sin signo. Para las funciones de descodificación, pvStructInfo apunta a un BLOB de clave pública inmediatamente seguido de un RSAPUBKEY y los bytes de módulo. (Para obtener información sobre blobs de clave pública, consulte CRYPT_INTEGER_BLOB). CryptExportKey genera el valor pvStructInfo de dwBlobType de PUBLICKEYBLOB. La función CryptImportKey espera el valor pvStructInfo al importar una clave pública. Si dwCertEncodingType es X509_ASN_ENCODING, el RSA_CSP_PUBLICKEYBLOB se codifica como un PKCS #1 RSAPublicKey que consta de una SECUENCIA de un INTEGER de módulo y un INTEGER publicExponent. Cuando se descodifica, si el módulo se ha codificado como un entero sin signo con un byte inicial, el 0 byte se quita antes de convertir en los bytes del módulo de CSP. Dado que la estructura PKCS ) siempre se establece en CALG_RSA_KEYX. |
szOID_DELTA_CRL_INDICATOR | Se usa solo con CRL delta. Esto se marca como crítico y contiene el número de CRL base mínimo que se puede usar con una CRL delta. |
X509_DSS_SIGNATURE | Los bytes se ordenan como salida por CryptSignHash del CSP de DSS, donde los 20 bytes inferiores son el valor de R y los 20 bytes superiores son el valor S. Los valores de R y S se tratan como enteros sin signo y codificados como una secuencia de ellos. |
X509_ECC_SIGNATURE | Usa la misma función de codificación y descodificación que X509_DH_PARAMETERS. La estructura CERT_ECC_SIGNATURE es idéntica a la estructura de CERT_DH_PARAMETERS , excepto los nombres de los campos. |
X509_ENUMERATED | Se usa al codificar cualquier enumeración arbitraria, como la X509_CRL_REASON_CODE. |
szOID_FRESHEST_CRL | Se usa solo con CRL base. Se da formato idéntico a una extensión CDP que contiene direcciones URL para capturar la CRL delta. |
X509_ISSUING_DIST_POINTszOID_ISSUING_DIST_POINT |
Para CRYPT_E_INVALID_IA5_STRING, la ubicación del error se devuelve en *pcbEncoded by CryptEncodeObject(X509_ISSUING_DIST_POINT) Ubicación de error consta de:
|
X509_KEY_USAGEszOID_KEY_USAGE |
Se usan las definiciones de bits usadas para el miembro IntendedKeyUsage de la estructura CERT_KEY_ATTRIBUTES_INFO . |
X509_KEYGEN_REQUEST_TO_BE_SIGNED | Para las funciones de descodificación, el miembro pbEncoded es la salida de una de las funciones de codificación mediante el X509_CERT lpszStructType. Esta salida incluye los datos "que se van a firmar" más su firma. Para las funciones de codificación, el miembro pbEncoded es solo los datos "para firmar". |
X509_MULTI_BYTE_UINT | Antes de codificar, se inserta un 0x00 inicial. Después de la descodificación, se quita el 0x00 inicial. |
X509_NAME | Se usa para descodificar o codificar los miembros issuer y Subject en una estructura de CERT_INFO . |
X509_NAME_CONSTRAINTSszOID_NAME_CONSTRAINTS |
Para CRYPT_E_INVALID_IA5_STRING, la ubicación del error se devuelve en *pcbEncoded by CryptEncodeObject(X509_NAME_CONSTRAINTS) Ubicación de error consta de:
|
X509_UNICODE_ANY_STRING X509_UNICODE_NAME_VALUE |
Para las funciones de codificación, el miembro pbData de la estructura a la que apunta apunta a la cadena Unicode. Si el miembro cbData es cero, la cadena Unicode tiene un carácter nulo de terminación; de lo contrario, cbData es el recuento de bytes de cadena Unicode. El recuento de bytes es el doble del recuento de caracteres. Si la cadena Unicode contiene un carácter que no es válido para dwValueType especificado, *pcbEncoded se actualiza con el índice de caracteres Unicode del primer carácter que no es válido.
GetLastError devuelve: CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING La cadena Unicode se convierte antes de codificarse según el dwValueType especificado. Si dwValueType está establecido en 0, GetLastError devuelve E_INVALIDARG. Si dwValueType no indica una cadena de caracteres, CryptEncodeObject devuelve FALSE con GetLastError devolviendo CRYPT_E_NOT_CHAR_STRING. En el caso de las funciones de descodificación, el miembro pbData apunta a una cadena Unicode terminada en null y el miembro cbData contiene el recuento de bytes de la cadena Unicode excepto el carácter nulo de terminación. dwValueType contiene el tipo usado para codificar el objeto. No se ve obligado a CERT_RDN_UNICODE_STRING. El valor codificado se convierte en la cadena Unicode según dwValueType. Si el objeto codificado no es uno de los tipos de cadena de caracteres, la función de descodificación devuelve FALSE con GetLastError devolviendo CRYPT_E_NOT_CHAR_STRING. Descodifique cadenas que no son de caracteres mediante un lpszStructType de X509_ANY_STRING. |
szOID_NEXT_UPDATE_LOCATION | Se usa con listas de confianza de certificados (CTL) para obtener la ubicación de la CTL válida en tiempo más reciente. Normalmente, la opción usada en el CERT_ALT_NAME_INFO es una dirección URL que indica la ubicación. |
X509_OCTET_STRING | La estructura contiene una secuencia de bytes. Se usa con algunos algoritmos de cifrado que requieren un vector de inicialización en forma de una cadena de octetos. |
CNG_RSA_PUBLIC_KEY_BLOB | El pvStructInfo correspondiente apunta a un BCRYPT_RSAKEY_BLOB inmediatamente seguido del exponente y los bytes de módulo. Tanto el exponente como el módulo están en formato big-endian. Los campos de clave privada que constan de cbPrime1 y cbPrime2 se establecen en cero. Si el parámetro dwCertEncodingType es igual a X509_ASN_ENCODING, el CNG_RSA_PUBLIC_KEY_BLOB se codifica como una clave pública RSA PKCS #1 que consta de una secuencia de un módulo y una publicExponent. |
PKCS_RSA_SSA_PSS_PARAMETERSszOID_RSA_SSA_PSS |
Para la codificación, use los valores predeterminados siguientes si los campos de estructura de CRYPT_RSA_SSA_PSS_PARAMETERS se establecen en NULL o cero.
|
PKCS_RSAES_OAEP_PARAMETERSszOID_RSAES_OAEP |
Para la codificación, use los valores predeterminados siguientes si los campos de estructura de CRYPT_RSAES_OAEP_PARAMETERS se establecen en NULL o cero.
|
X509_SEQUENCE_OF_ANY | El CRYPT_DER_BLOBapunta al contenido ANY ya codificado. |
PKCS_SMIME_CAPABILITIESszOID_RSA_SMIMECapabilities |
Estos valores lpszStructType funcionan de forma diferente para las funciones de codificación. Debido a las especificaciones Secure/Multipurpose Internet Mail Extensions (S/MIME), si Parameters.cbData es cero, los parámetros codificados se omiten y no se codifican como NULL (05 00). |
szOID_SUBJECT_KEY_IDENTIFIER | La estructura CRYPT_INTEGER_BLOB contiene una cadena de octetos, una secuencia arbitraria de bytes. |
X509_UNICODE_NAME | Para las funciones de descodificación, los valores de atributo de nombre distintivo relativo (RDN) son cadenas Unicode , excepto dwValueTypes de CERT_RDN_ENCODED_BLOB o CERT_RDN_OCTET_STRING. Estos dwValueTypes son los mismos que para una X509_NAME. Estos valores no se convierten en Unicode. El miembro pbData del valor del atributo RDN apunta a una cadena Unicode terminada en null. El miembro cbData del valor del atributo RDN contiene el recuento de bytes de la cadena Unicode excepto el carácter nulo de terminación. El miembro dwValueType del valor del atributo RDN contiene el tipo utilizado en el objeto codificado. No se ve obligado a CERT_RDN_UNICODE_STRING. El valor codificado se convierte en la cadena Unicode según dwValueType. Para las funciones de codificación, los valores del atributo RDN son cadenas Unicode, excepto dwValueTypes de CERT_RDN_ENCODED_BLOB o CERT_RDN_OCTET_STRING. Estos dwValueTypes son los mismos que para una X509_NAME. No se espera que estos valores sean Unicode. En el caso de las cadenas restantes dwValueType, el miembro pbData del valor de atributo distintivo relativo apunta a la cadena Unicode. Si el miembro cbData del valor del atributo RDN es cero, la cadena Unicode tiene un carácter nulo de terminación. De lo contrario, el miembro cbData del valor del atributo RDN es el número de bytes de cadena Unicode. El recuento de bytes es el doble del recuento de caracteres y excluye el carácter nulo de terminación. Si el miembro dwValueType del valor del atributo RDN es CERT_RDN_ANY_TYPE, se usa pszObjId para buscar un dwValueType aceptable. Si la cadena Unicode contiene un carácter que no es válido para el dwValueType encontrado o especificado, *pcbEncoded se actualiza con la ubicación de error del carácter que no es válido. Para un carácter que no es válido, GetLastError devuelve: CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING La cadena Unicode se convierte antes de codificarse según el dwValueType especificado o el dwValueType del identificador de objeto. Los índices de ubicación de error de las funciones de codificación se devuelven en *pcbEncoded de la siguiente manera: El VALUE_INDEX del error se encuentra en bits 0 a 15. El ATTR_INDEX del error se encuentra en bits de 16 a 21. El RDN_INDEX del error se encuentra en bits de 22 a 31. El bit 0 es el bit menos significativo de DWORD. Las macros definidas GET_CERT_UNICODE_RDN_ERR_INDEX(X), GET_CERT_UNICODE_ATTR_ERR_INDEX(X) y GET_CERT_UNICODE_VALUE_ERR_INDEX(X) proporcionan una lectura sencilla de los campos de mapa de bits para VALUE_INDEX, ATTR_INDEX y RDN_INDEX de la DWORD que los contiene. |
PKCS_UTC_TIMEszOID_RSA_signingTime |
Para X509_ASN_ENCODING, la hora UTC codificada en segundos y usa un año de dos dígitos. |
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] |
Encabezado |
|
Consulte también