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
CMC_ADD_ATTRIBUTES
(LPCSTR) 63
El parámetro pvStructInfo es un puntero a una estructura CMC_ADD_ATTRIBUTES_INFO .
CMC_ADD_EXTENSIONS
(LPCSTR) 62
El parámetro pvStructInfo es un puntero a una estructura CMC_ADD_EXTENSIONS_INFO .
X509_ALGORITHM_IDENTIFIER
(LPCSTR) 74
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ALGORITHM_IDENTIFIER .
X509_ALTERNATE_NAME
(LPCSTR) 12
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios.
X509_ANY_STRING
X509_NAME_VALUE
El parámetro pvStructInfo es un puntero a una estructura CERT_NAME_VALUE .
szOID_APPLICATION_CERT_POLICIES
"1.3.6.1.4.1.311.21.10"
El parámetro pvStructInfo es un puntero a una estructura de CERT_POLICY_QUALIFIER_INFO .
szOID_APPLICATION_POLICY_CONSTRAINTS
"1.3.6.1.4.1.311.21.12"
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_CONSTRAINTS_INFO .
szOID_APPLICATION_POLICY_MAPPINGS
"1.3.6.1.4.1.311.21.11"
El parámetro pvStructInfo es un puntero a una estructura de CERT_POLICY_MAPPINGS_INFO .
PKCS_ATTRIBUTE
(LPCSTR) 22
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ATTRIBUTE .
X509_AUTHORITY_INFO_ACCESS
(LPCSTR) 32
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.
szOID_AUTHORITY_INFO_ACCESS
"1.3.6.1.5.5.7.1.1"
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.
X509_SUBJECT_INFO_ACCESS
X509_AUTHORITY_INFO_ACCESS
El parámetro pvStructInfo es un puntero a una estructura de CERT_AUTHORITY_INFO_ACCESS .
szOID_SUBJECT_INFO_ACCESS
"1.3.6.1.5.5.7.1.11"
El parámetro pvStructInfo es un puntero a una estructura de CERT_AUTHORITY_INFO_ACCESS .
X509_AUTHORITY_KEY_ID
(LPCSTR) 9
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.
X509_AUTHORITY_KEY_ID2
(LPCSTR) 31
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.
szOID_AUTHORITY_KEY_IDENTIFIER
"2.5.29.1"
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.
szOID_AUTHORITY_KEY_IDENTIFIER2
"2.5.29.35"
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.
X509_BASIC_CONSTRAINTS
(LPCSTR) 13
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.
szOID_BASIC_CONSTRAINTS
"2.5.29.10"
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.
X509_BASIC_CONSTRAINTS2
(LPCSTR) 15
El parámetro pvStructInfo es un puntero a una estructura de CERT_BASIC_CONSTRAINTS2_INFO .
szOID_BASIC_CONSTRAINTS2
"2.5.29.19"
El parámetro pvStructInfo es un puntero a una estructura de CERT_BASIC_CONSTRAINTS2_INFO .
X509_BIOMETRIC_EXT
(LPCSTR) 71
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.
szOID_BIOMETRIC_EXT
"1.3.6.1.5.5.7.1.2"
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.
X509_BITS
(LPCSTR) 26
El parámetro pvStructInfo es un puntero a una estructura CRYPT_BIT_BLOB .
X509_CERT
(LPCSTR) 1
El parámetro pvStructInfo es un puntero a una estructura CERT_SIGNED_CONTENT_INFO . Para conocer más detalles, vea la sección Comentarios.
X509_CERT_CRL_TO_BE_SIGNED
(LPCSTR) 3
El parámetro pvStructInfo es un puntero a una estructura CRL_INFO .
szOID_CERT_EXTENSIONS
"1.3.6.1.4.1.311.2.1.14"
El parámetro pvStructInfo es un puntero a una estructura de CERT_EXTENSIONS .
X509_CERT_PAIR
(LPCSTR) 53
El parámetro pvStructInfo es un puntero a una estructura CERT_PAIR .
X509_CERT_POLICIES
(LPCSTR) 16
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICIES_INFO .
szOID_CERT_POLICIES
"2.5.29.32"
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICIES_INFO .
X509_CERT_REQUEST_TO_BE_SIGNED
(LPCSTR) 4
El parámetro pvStructInfo es un puntero a una estructura CERT_REQUEST_INFO .
X509_CERT_TO_BE_SIGNED
(LPCSTR) 2
El parámetro pvStructInfo es un puntero a una estructura CERT_INFO .
X509_CERTIFICATE_TEMPLATE
(LPCSTR) 64
El parámetro pvStructInfo es un puntero a una estructura CERT_TEMPLATE_EXT .
szOID_CERTIFICATE_TEMPLATE
"1.3.6.1.4.1.311.21.7"
El parámetro pvStructInfo es un puntero a una estructura CERT_TEMPLATE_EXT .
X509_CHOICE_OF_TIME
(LPCSTR) 30
El parámetro pvStructInfo es un puntero a una variable FILETIME . Para conocer más detalles, vea la sección Comentarios.
PKCS_CONTENT_INFO
(LPCSTR) 33
El parámetro pvStructInfo es un puntero a una estructura CRYPT_CONTENT_INFO . Para conocer más detalles, vea la sección Comentarios.
PKCS_CONTENT_INFO_SEQUENCE_OF_ANY
(LPCSTR) 23
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.
X509_CRL_DIST_POINTS
(LPCSTR) 35
El parámetro pvStructInfo es un puntero a una estructura CRL_DIST_POINTS_INFO . Para conocer más detalles, vea la sección Comentarios.
szOID_CRL_DIST_POINTS
2.5.29.31
El parámetro pvStructInfo es un puntero a una estructura CRL_DIST_POINTS_INFO . Para conocer más detalles, vea la sección Comentarios.
szOID_CRL_NUMBER
"2.5.29.20"
El parámetro pvStructInfo es un puntero a una variable int .
X509_CRL_REASON_CODE
X509_ENUMERATED
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.
szOID_CRL_REASON_CODE
"2.5.29.21"
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.
szOID_CRL_VIRTUAL_BASE
"1.3.6.1.4.1.311.21.3"
El parámetro pvStructInfo es un puntero a una variable int .
X509_CROSS_CERT_DIST_POINTS
(LPCSTR) 58
El parámetro pvStructInfo es un puntero a una estructura CROSS_CERT_DIST_POINTS_INFO .
szOID_CROSS_CERT_DIST_POINTS
"1.3.6.1.4.1.311.10.9.1"
El parámetro pvStructInfo es un puntero a una estructura CROSS_CERT_DIST_POINTS_INFO .
RSA_CSP_PUBLICKEYBLOB
(LPCSTR) 19
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.
PKCS_CTL
(LPCSTR) 37
El parámetro pvStructInfo es un puntero a una estructura CTL_INFO .
CMC_DATA
(LPCSTR) 59
El parámetro pvStructInfo es un puntero a una estructura CMC_DATA_INFO .
szOID_DELTA_CRL_INDICATOR
"2.5.29.27"
El parámetro pvStructInfo es un puntero a una variable int .
X509_DSS_PARAMETERS
(LPCSTR) 39
El parámetro pvStructInfo es un puntero a una estructura CERT_DSS_PARAMETERS .
X509_DSS_PUBLICKEY
X509_MULTI_BYTE_UINT
El parámetro pvStructInfo es un puntero a una estructura CRYPT_UINT_BLOB .
X509_DSS_SIGNATURE
(LPCSTR) 40
El parámetro pvStructInfo es un puntero a una matriz de 40 bytes. Para conocer más detalles, vea la sección Comentarios.
szOID_ECC_PUBLIC_KEY
"1.2.840.10045.2.1"
El parámetro pvStructInfo es un puntero a un LPSTR de la representación de punto del identificador de objeto.
X509_ECC_SIGNATURE
(LPCSTR) 47
El parámetro pvStructInfo es un puntero a una estructura CERT_ECC_SIGNATURE . Para conocer más detalles, vea la sección Comentarios.
X509_ECC_PRIVATE_KEY
(LPCSTR) 82
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.
szOID_ECDSA_SPECIFIED
"1.2.840.10045.4.3"
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ALGORITHM_IDENTIFIER .
X509_ENHANCED_KEY_USAGE
(LPCSTR) 36
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).
szOID_ENHANCED_KEY_USAGE
"2.5.29.37"
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).
szOID_ENROLLMENT_NAME_VALUE_PAIR
"1.3.6.1.4.1.311.13.2.1"
El parámetro pvStructInfo es un puntero a una estructura CRYPT_ENROLLMENT_NAME_VALUE_PAIR .
X509_ENUMERATED
(LPCSTR) 29
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.
X509_EXTENSIONS
(LPCSTR) 5
El parámetro pvStructInfo es un puntero a una estructura de CERT_EXTENSIONS .
szOID_FRESHEST_CRL
"2.5.29.46"
El parámetro pvStructInfo es un puntero a una estructura de CRL_DIST_POINTS_INFO .
X509_INTEGER
(LPCSTR) 27
El parámetro pvStructInfo es un puntero a un entero con signo de 32 bits o menos.
szOID_ISSUER_ALT_NAME
"2.5.29.8"
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios.
szOID_ISSUER_ALT_NAME2
"2.5.29.18"
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO .
X509_ISSUING_DIST_POINT
(LPCSTR) 54
El parámetro pvStructInfo es un puntero a una estructura CRL_ISSUING_DIST_POINT .
szOID_ISSUING_DIST_POINT
"2.5.29.28"
El parámetro pvStructInfo es un puntero a una estructura CRL_ISSUING_DIST_POINT .
X509_KEY_ATTRIBUTES
(LPCSTR) 10
El parámetro pvStructInfo es un puntero a una estructura CERT_KEY_ATTRIBUTES_INFO .
szOID_KEY_ATTRIBUTES
"2.5.29.2"
El parámetro pvStructInfo es un puntero a una estructura CERT_KEY_ATTRIBUTES_INFO .
X509_KEY_USAGE
(LPCSTR) 14
El parámetro pvStructInfo es un puntero a una estructura CRYPT_BIT_BLOB . Para conocer más detalles, vea la sección Comentarios.
szOID_KEY_USAGE
"2.5.29.15"
El parámetro pvStructInfo es un puntero a una estructura CRYPT_BIT_BLOB . Para conocer más detalles, vea la sección Comentarios.
X509_KEY_USAGE_RESTRICTION
(LPCSTR) 11
El parámetro pvStructInfo es un puntero a una estructura de CERT_KEY_USAGE_RESTRICTION_INFO .
szOID_KEY_USAGE_RESTRICTION
"2.5.29.4"
El parámetro pvStructInfo es un puntero a una estructura de CERT_KEY_USAGE_RESTRICTION_INFO .
X509_KEYGEN_REQUEST_TO_BE_SIGNED
(LPCSTR) 21
El parámetro pvStructInfo es un puntero a una estructura CERT_KEYGEN_REQUEST_INFO . Para conocer más detalles, vea la sección Comentarios.
X509_LOGOTYPE_EXT
(LPCSTR) 70
El parámetro pvStructInfo es un puntero a una estructura CERT_LOGOTYPE_EXT_INFO .
szOID_LOGOTYPE_EXT
"1.3.6.1.5.5.7.1.12"
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.
X509_MULTI_BYTE_INTEGER
(LPCSTR) 28
El parámetro pvStructInfo es un puntero a una estructura CRYPT_INTEGER_BLOB . El BLOB está en orden little-endian .
X509_MULTI_BYTE_UINT
(LPCSTR) 38
El parámetro pvStructInfo es un puntero a una estructura CRYPT_UINT_BLOB . Para conocer más detalles, vea la sección Comentarios.
X509_NAME
(LPCSTR) 7
El parámetro pvStructInfo es un puntero a una estructura de CERT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios.
X509_NAME_CONSTRAINTS
(LPCSTR) 55
El parámetro pvStructInfo es un puntero a una estructura de CERT_NAME_CONSTRAINTS_INFO .
szOID_NAME_CONSTRAINTS
"2.5.29.30"
El parámetro pvStructInfo es un puntero a una estructura de CERT_NAME_CONSTRAINTS_INFO .
X509_NAME_VALUE
(LPCSTR) 6
El parámetro pvStructInfo es un puntero a una estructura CERT_NAME_VALUE . Para conocer más detalles, vea la sección Comentarios.
szOID_NEXT_UPDATE_LOCATION
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios.
X509_OBJECT_IDENTIFIER
(LPCSTR) 73
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.
X509_OCTET_STRING
(LPCSTR) 25
El parámetro pvStructInfo es un puntero a una estructura CRYPT_DATA_BLOB . Para conocer más detalles, vea la sección Comentarios.
szOID_OIWSEC_dsa
"1.3.14.3.2.12"
El parámetro pvStructInfo es un puntero a una estructura CERT_DSS_PARAMETERS .
X509_POLICY_CONSTRAINTS
(LPCSTR) 57
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_CONSTRAINTS_INFO .
szOID_POLICY_CONSTRAINTS
"2.5.29.36"
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_CONSTRAINTS_INFO .
X509_POLICY_MAPPINGS
(LPCSTR) 56
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_MAPPINGS_INFO .
szOID_POLICY_MAPPINGS
"2.5.29.33"
El parámetro pvStructInfo es un puntero a una estructura CERT_POLICY_MAPPINGS_INFO .
X509_PUBLIC_KEY_INFO
(LPCSTR) 8
El parámetro pvStructInfo es un puntero a una estructura CERT_PUBLIC_KEY_INFO .
PKCS_RC2_CBC_PARAMETERS
(LPCSTR) 41
El parámetro pvStructInfo es un puntero a una estructura CRYPT_RC2_CBC_PARAMETERS .
CMC_RESPONSE
(LPCSTR) 60
El parámetro pvStructInfo es un puntero a una estructura de CMC_RESPONSE_INFO .
CNG_RSA_PUBLIC_KEY_BLOB
(LPCSTR) 72
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.
CNG_RSA_PRIVATE_KEY_BLOB
LPCSTR) 83
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.
szOID_RSA_signingTime
"1.2.840.113549.1.9.5"
El parámetro pvStructInfo es un puntero a una variable FILETIME . Para conocer más detalles, vea la sección Comentarios.
szOID_RSA_SMIMECapabilities
"1.2.840.113549.1.9.15"
El parámetro pvStructInfo es un puntero a una estructura CRYPT_SMIME_CAPABILITIES . Para conocer más detalles, vea la sección Comentarios.
PKCS_RSA_SSA_PSS_PARAMETERS
(LPCSTR) 75
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.
szOID_RSA_SSA_PSS
"1.2.840.113549.1.1.10"
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.
PKCS_RSAES_OAEP_PARAMETERS
(LPCSTR) 76
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.
ECC_CMS_SHARED_INFO
(LPCSTR) 77
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.
szOID_RSAES_OAEP
"1.2.840.113549.1.1.7"
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.
X509_SEQUENCE_OF_ANY
(LPCSTR) 34
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.
PKCS7_SIGNER_INFO
(LPCSTR) 500
El parámetro pvStructInfo es un puntero a una estructura CMSG_SIGNER_INFO .
CMS_SIGNER_INFO
(LPCSTR) 501
El parámetro pvStructInfo es un puntero a una estructura CMSG_CMS_SIGNER_INFO .
PKCS_SMIME_CAPABILITIES
(LPCSTR) 42
El parámetro pvStructInfo es un puntero a una estructura CRYPT_SMIME_CAPABILITIES . Para conocer más detalles, vea la sección Comentarios.
CMC_STATUS
(LPCSTR) 61
El parámetro pvStructInfo es un puntero a una estructura CMC_STATUS_INFO .
szOID_SUBJECT_ALT_NAME
"2.5.29.7"
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios.
szOID_SUBJECT_ALT_NAME2
"2.5.29.17"
El parámetro pvStructInfo es un puntero a una estructura CERT_ALT_NAME_INFO .
szOID_SUBJECT_KEY_IDENTIFIER
"2.5.29.14"
El parámetro pvStructInfo es un puntero a una estructura CRYPT_DATA_BLOB . Para conocer más detalles, vea la sección Comentarios.
PKCS_TIME_REQUEST
(LPCSTR) 18
El parámetro pvStructInfo es un puntero a una estructura CRYPT_TIME_STAMP_REQUEST_INFO .
X509_UNICODE_ANY_STRING
X509_UNICODE_NAME_VALUE
El parámetro pvStructInfo es un puntero a una estructura CERT_NAME_VALUE . Para conocer más detalles, vea la sección Comentarios.
X509_UNICODE_NAME
(LPCSTR) 20
El parámetro pvStructInfo es un puntero a una estructura de CERT_NAME_INFO . Para conocer más detalles, vea la sección Comentarios.
X509_UNICODE_NAME_VALUE
(LPCSTR) 24
El parámetro pvStructInfo es un puntero a una estructura CERT_NAME_VALUE . Para conocer más detalles, vea la sección Comentarios.
PKCS_UTC_TIME
(LPCSTR) 17
El parámetro pvStructInfo es un puntero a una variable FILETIME . Para conocer más detalles, vea la sección Comentarios.
OCSP_SIGNED_REQUEST
(LPCSTR) 65
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.
OCSP_REQUEST
(LPCSTR) 66
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.
OCSP_RESPONSE
(LPCSTR) 67
El parámetro pvStructInfo es un puntero a una variable OCSP_RESPONSE_INFO .
Windows Server 2003 y Windows XP: Este valor no se admite.
OCSP_BASIC_SIGNED_RESPONSE
(LPCSTR) 68
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.
OCSP_BASIC_RESPONSE
(LPCSTR) 69
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.
PKCS_RSA_PRIVATE_KEY
(LPCSTR) 43
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.
PKCS_PRIVATE_KEY_INFO
(LPCSTR) 44
El parámetro pvStructInfo es un puntero a una estructura CRYPT_PRIVATE_KEY_INFO .
PKCS_ENCRYPTED_PRIVATE_KEY_INFO
(LPCSTR) 45
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 :
  • X509_CERT_CRL_TO_BE_SIGNED
  • X509_CERT_REQUEST_TO_BE_SIGNED
  • X509_CERT_TO_BE_SIGNED
  • X509_KEYGEN_REQUEST_TO_BE_SIGNED
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.
Código de motivo: CRL_REASON_UNSPECIFIED
Valor: 0
Código de motivo: CRL_REASON_KEY_COMPROMISE
Valor: 1
Código de motivo: CRL_REASON_CA_COMPROMISE
Valor: 2
Código de motivo: CRL_REASON_AFFILIATION_CHANGED
Valor: 3
Código de motivo: CRL_REASON_SUPERSEDED
Valor: 4
Código de motivo: CRL_REASON_CESSATION_OF_OPERATION
Valor: 5
Código de motivo: CRL_REASON_CERTIFICATE_HOLD
Valor: 6
Código de motivo: CRL_REASON_REMOVE_FROM_CRL
Valor: 8
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:
  • POINT_INDEX : 8 bits << 24
  • ENTRY_INDEX: 8 bits << 16
  • VALUE_INDEX: 16 bits (índice de caracteres Unicode)
Para obtener más información sobre ENTRY_INDEX y VALUE_INDEX constantes definidas por la ubicación de error, consulte X509_ALTERNATE_NAME.
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:
  • ENTRY_INDEX: 8 bits << 16
  • VALUE_INDEX: 16 bits (índice de caracteres Unicode)
Para obtener más información sobre ENTRY_INDEX y VALUE_INDEX constantes definidas por la ubicación de error, consulte X509_ALTERNATE_NAME.
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:
  • EXCLUDED_SUBTREE_BIT : 1 bit << 31(0 para permitido, 1 para excluido)
  • ENTRY_INDEX: 8 bits << 16
  • VALUE_INDEX: 16 bits (índice de caracteres Unicode)
Para obtener más información sobre ENTRY_INDEX y VALUE_INDEX constantes definidas por la ubicación de error, consulte X509_ALTERNATE_NAME.
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.
Campo: HashAlgorithm.pszObjId
Valor predeterminado: szOID_OIWSEC_sha1
Campo: MaskGenAlgorithm.pszObjId
Valor predeterminado: szOID_RSA_MGF1
Campo: MaskGenAlgorithm.HashAlgorithm.pszObjId
Valor predeterminado: HashAlgorithm.pszObjId
Campo: dwSaltLength
Valor predeterminado: cbHash
Campo: dwTrailerField
Valor predeterminado: PKCS_RSA_SSA_PSS_TRAILER_FIELD_BC
Para la codificación, solo se debe establecer el campo HashAlgorithm.pszObjId . Para la descodificación, se establecen explícitamente todos los campos.
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.
Campo: HashAlgorithm.pszObjId
Valor predeterminado: szOID_OIWSEC_sha1
Campo: MaskGenAlgorithm.pszObjId
Valor predeterminado: szOID_RSA_MGF1
Campo: MaskGenAlgorithm.HashAlgorithm.pszObjId
Valor predeterminado: HashAlgorithm.pszObjId
Campo: PSourceAlgorithm.pszObjId
Valor predeterminado: szOID_RSA_PSPECIFIED
Campo: PSourceAlgorithm.EncodingParameters.cbData
Valor predeterminado: 0
Campo: PSourceAlgorithm.EncodingParameters.pbData
Valor predeterminado: NULL
Para la codificación, solo se debe establecer el campo HashAlgorithm.pszObjId . Para la descodificación, todos los campos se establecen explícitamente.
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
Wincrypt.h

Consulte también

CRYPT_INTEGER_BLOB