Compartir a través de


Estructuras de criptografía

Las funciones criptográficas usan las siguientes estructuras. Las estructuras criptográficas se clasifican según el uso de la siguiente manera:

Estructuras CryptXML

Las funciones CryptXML usan las siguientes estructuras.

Estructura Descripción
CRYPT_XML_ALGORITHM Especifica el algoritmo usado para firmar o transformar el mensaje.
CRYPT_XML_ALGORITHM_INFO Contiene información de algoritmo.
CRYPT_XML_BLOB Contiene una matriz arbitraria de bytes.
CRYPT_XML_CRYPTOGRAPHIC_INTERFACE Se pasa al puntero de función CryptXmlDllGetInterface para exponer las funciones CryptXML implementadas.
CRYPT_XML_DATA_BLOB Contiene datos codificados XML.
CRYPT_XML_DATA_PROVIDER Especifica la interfaz para el proveedor de datos XML.
CRYPT_XML_DOC_CTXT Define la información de contexto del documento.
CRYPT_XML_ISSUER_SERIAL Contiene un par de números de serie distintivos X.509 emitidos.
CRYPT_XML_KEY_DSA_KEY_VALUE Define un valor de clave de algoritmo de firma digital (DSA). La estructura CRYPT_XML_KEY_DSA_KEY_VALUE se usa como un elemento de la unión de valores de clave en la estructura CRYPT_XML_KEY_VALUE .
CRYPT_XML_KEY_ECDSA_KEY_VALUE Define un valor de clave del algoritmo de firma digital de curva elíptica (ECDSA). La estructura CRYPT_XML_KEY_ECDSA_KEY_VALUE se usa como un elemento de la unión de valores de clave en la estructura CRYPT_XML_KEY_VALUE .
CRYPT_XML_KEY_INFO Encapsula los datos de información clave.
CRYPT_XML_KEY_INFO_ITEM Encapsula los datos de información clave que corresponden a un elemento KeyInfo . El elemento KeyInfo permite al destinatario obtener la clave necesaria para validar la firma.
CRYPT_XML_KEY_RSA_KEY_VALUE Define un valor de clave RSA. La estructura CRYPT_XML_KEY_RSA_KEY_VALUE se usa como elemento de la unión de valores de clave en la estructura CRYPT_XML_KEY_VALUE .
CRYPT_XML_KEY_VALUE Contiene una sola clave pública que puede ser útil para validar la firma.
CRYPT_XML_KEYINFO_PARAM La función CryptXmlSign la usa para especificar los miembros del elemento KeyInfo que se van a codificar.
CRYPT_XML_OBJECT Describe un elemento Object en la firma.
CRYPT_XML_PROPERTY Contiene información sobre una propiedad CryptXML.
CRYPT_XML_REFERENCE Contiene información utilizada para rellenar el elemento Reference .
CRYPT_XML_REFERENCES Define una matriz de estructuras de CRYPT_XML_REFERENCE .
CRYPT_XML_SIGNATURE Contiene información utilizada para rellenar el elemento Signature .
CRYPT_XML_SIGNED_INFO Devuelve información sobre el estado de validación de la firma, la información de estado de resumen sobre un elemento SignedInfo o información de estado de resumen sobre una matriz de elementos Reference .
CRYPT_XML_TRANSFORM_CHAIN_CONFIG Define las transformaciones definidas por la aplicación que se permiten para su uso en la firma digital XML.
CRYPT_XML_TRANSFORM_INFO Contiene información que se usa al aplicar la transformación de datos.
CRYPT_XML_X509DATA Representa la secuencia de opciones del elemento X509Data .
CRYPT_XML_X509DATA_ITEM Representa los datos X.509 que se van a codificar en un elemento con nombre X509Data.

 

Estructuras criptográficas generales

Las funciones de criptografía base usan las siguientes estructuras.

Estructura Descripción
CMS_DH_KEY_INFO Se usa con el parámetro KP_CMS_DH_KEY_INFO de la función CryptSetKeyParam para contener información de clave Diffie-Hellman .
CMS_KEY_INFO Esta estructura no se usa.
CRYPT_AES_128_KEY_STATE Especifica la información de clave simétrica de 128 bits para un cifrado estándar de cifrado avanzado (AES).
CRYPT_AES_256_KEY_STATE Especifica la información de clave simétrica de 256 bits para un cifrado AES.
CRYPT_ALGORITHM_IDENTIFIER Contiene el identificador de objeto (OID) del algoritmo y los parámetros necesarios para ese algoritmo.
CRYPT_ATTRIBUTE Especifica un atributo que tiene uno o varios valores.
CRYPT_ATTRIBUTE_TYPE_VALUE Contiene un único valor de atributo.
CRYPT_ATTRIBUTES Contiene una matriz de atributos.
CRYPT_BIT_BLOB Contiene una matriz de bytes.
CRYPT_BLOB_ARRAY Contiene una matriz de estructuras de CRYPT_DATA_BLOB .
CRYPT_CONTENT_INFO Contiene datos codificados en el formato de datos PKCS #7 ContentInfo.
CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY Contiene información que representa la secuencia de certificados de Netscape.
CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA Se usa con la función CryptInstallDefaultContext para contener una matriz de cadenas de identificador de objeto.
CRYPT_ECC_CMS_SHARED_INFO Representa información de clave de cifrado de claves al usar criptografía de curva elíptica (ECC) en el tipo de contenido EnvelopedData de sintaxis de mensajes criptográficos (CMS).
CRYPT_ENCRYPTED_PRIVATE_KEY_INFO Contiene la información de una clave privada PKCS #8 cifrada.
CRYPT_ENROLLMENT_NAME_VALUE_PAIR Esta estructura se usa para crear solicitudes de certificado en nombre de un usuario.
CRYPT_INTEGER_BLOB Contiene los datos de varios tipos de objetos binarios grandes bajo los nombres adecuados para el tipo.
CRYPT_KEY_LIMITS Admite la función CryptGetLocalKeyLimits no implementada y no se usa. Se quitará en una versión futura de Wincrypt.h.
CRYPT_KEY_PROV_INFO Contiene campos que se pasan como argumentos a CryptAcquireContext para adquirir un identificador para un contenedor de claves determinado dentro de un proveedor de servicios criptográficos (CSP) determinado o para crear o destruir un contenedor de claves.
CRYPT_KEY_PROV_PARAM Contiene datos que se van a pasar como argumentos a CryptSetProvParam.
CRYPT_KEY_SIGN_MESSAGE_PARA Contiene información sobre el CSP y los algoritmos usados para firmar un mensaje.
CRYPT_KEY_VERIFY_MESSAGE_PARA Contiene información necesaria para comprobar los mensajes firmados sin un certificado para el firmante.
CRYPT_MASK_GEN_ALGORITHM Identifica el algoritmo utilizado para generar una máscara de firma RSA PKCS #1 v2.1.
CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE Contiene punteros a funciones implementadas por un proveedor de ubicación de objetos.
CRYPT_PKCS8_EXPORT_PARAMS Contiene información que identifica una clave privada y un puntero a una función de devolución de llamada.
CRYPT_PKCS8_IMPORT_PARAMS Contiene una clave privada PKCS #8 y dos punteros para las funciones de devolución de llamada.
CRYPT_PKCS12_PBE_PARAMS Contiene parámetros usados para crear una clave de cifrado, un vector de inicialización (IV) o una clave de código de autenticación de mensajes (MAC) para un algoritmo de cifrado basado en contraseña PKCS #12 .
CRYPT_PRIVATE_KEY_INFO Contiene la información de una clave privada PKCS #8.
CRYPT_PSOURCE_ALGORITHM Identifica el algoritmo y (opcionalmente) el valor de la etiqueta para un cifrado de clave RSAES-OAEP.
CRYPT_RETRIEVE_AUX_INFO Contiene información de sincronización de hora opcional para pasar a la función CryptRetrieveObjectByUrl .
CRYPT_RSA_SSA_PSS_PARAMETERS Contiene los parámetros de una firma RSA PKCS #1 v2.1.
CRYPT_RSAES_OAEP_PARAMETERS Contiene los parámetros de un cifrado de clave RSAES-OAEP.
CRYPT_SEQUENCE_OF_ANY Contiene una lista arbitraria de blobs codificados.
CRYPT_SMART_CARD_ROOT_INFO Contiene las tarjetas inteligentes y los identificadores de sesión asociados a un contexto de certificado.
CRYPT_TIME_STAMP_REQUEST_INFO Esta estructura se usa para la marca de tiempo.
CRYPT_URL_INFO Contiene información sobre las agrupaciones de direcciones URL.
CRYPT_X942_OTHER_INFO Contiene información adicional de generación de claves.
CRYPTNET_URL_CACHE_FLUSH_INFO Contiene información de expiración utilizada por el servicio Cryptnet URL Cache (CUC) para mantener una entrada de caché de direcciones URL.
CRYPTNET_URL_CACHE_PRE_FETCH_INFO Contiene información de actualización utilizada por el servicio Cryptnet URL Cache (CUC) para mantener una entrada de caché de direcciones URL.
CRYPTNET_URL_CACHE_RESPONSE_INFO Contiene información de respuesta utilizada por el servicio Cryptnet URL Cache (CUC) para mantener una entrada de caché de direcciones URL.
CRYPT_INTEGER_BLOB Esta estructura se usa para una matriz arbitraria de bytes.
CRYPTPROTECT_PROMPTSTRUCT Proporciona el texto de un mensaje e información sobre cuándo y dónde se mostrará ese mensaje al usar las funciones CryptProtectData y CryptUnprotectData .
CRYPTUI_INITDIALOG_STRUCT Admite la estructura CRYPTUI_VIEWCERTIFICATE_STRUCT .
CRYPTUI_SELECTCERTIFICATE_STRUCT Contiene información sobre el cuadro de diálogo que muestra la función CryptUIDlgSelectCertificate .
CRYPTUI_VIEWCERTIFICATE_STRUCT Contiene información sobre un certificado que se va a ver. Se usa en la función CryptUIDlgViewCertificate .
CRYPTUI_VIEWSIGNERINFO_STRUCT Contiene información para la función CryptUIDlgViewSignerInfo .
CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO Contiene información que controla el funcionamiento de la función CryptUIWizExport cuando un certificado es el objeto que se exporta.
CRYPTUI_WIZ_EXPORT_INFO Contiene información que controla el funcionamiento de la función CryptUIWizExport .
CRYPTUI_WIZ_IMPORT_SRC_INFO Contiene el asunto para importar en la función CryptUIWizImport .
DHPRIVKEY_VER3 Contiene información específica de la clave privada determinada contenida en el BLOB de clave.
DHPUBKEY Contiene información específica del Diffie-Hellman clave pública determinada contenida en el BLOB de clave.
DHPUBKEY_VER3 Contiene información específica de la clave pública determinada contenida en el BLOB de clave.
Blobs de clave privada diffie-Hellman, versión 3 Se usa para exportar e importar información sobre una clave privada DH.
Blobs de clave pública diffie-Hellman, versión 3 Se usa para exportar e importar información sobre una clave pública DH.
BLOBS de clave privada de DSS versión 3 Se usa para exportar e importar información sobre una clave privada DH.
Blobs de clave pública de DSS versión 3 Se usa para exportar e importar información sobre una clave pública DH.
DSSPRIVKEY_VER3 Contiene información específica de la clave privada determinada contenida en el BLOB de clave.
DSSPUBKEY Contiene información específica de la clave pública determinada contenida en el BLOB de clave.
DSSPUBKEY_VER3 Contiene información específica de la clave pública determinada contenida en el BLOB de clave.
DSSSEED Contiene los valores de inicialización y contador que se pueden usar para comprobar los primos de la clave pública de DSS.
HMAC_INFO Especifica el algoritmo hash y las cadenas internas y externas que se usarán para calcular el hash del código de autenticación de mensajes basado en hash (HMAC).
KEYSVC_BLOB Define un BLOB de servicio de claves.
KEYSVC_UNICODE_STRING Define una cadena Unicode del servicio de claves.
OCSP_BASIC_RESPONSE_ENTRY Contiene el estado actual del certificado para un único certificado.
OCSP_BASIC_RESPONSE_INFO Contiene una respuesta OCSP básica especificada por RFC 2560.
OCSP_BASIC_REVOKED_INFO Contiene el motivo por el que se revoca un certificado.
OCSP_BASIC_SIGNED_RESPONSE_INFO Contiene una respuesta OCSP básica con una firma.
OCSP_CERT_ID Contiene información para identificar un certificado en una solicitud o respuesta OCSP.
OCSP_REQUEST_ENTRY Contiene información sobre un único certificado en una solicitud OCSP.
OCSP_REQUEST_INFO Contiene información para una solicitud OCSP según lo especificado por RFC 2560.
OCSP_RESPONSE_INFO Indica el éxito o error de la solicitud OCSP correspondiente. Para las solicitudes correctas, contiene el tipo y el valor de la información de respuesta.
OCSP_SIGNATURE_INFO Contiene una firma para una solicitud o respuesta OCSP.
OCSP_SIGNED_REQUEST_INFO Contiene información para una solicitud OCSP con información de firma opcional.
PROV_ENUMALGS Devuelto por llamadas a CryptGetProvParam o CPGetProvParam.
PROV_ENUMALGS_EX Devuelto por llamadas a CryptGetProvParam o CPGetProvParam.
PUBLICKEYSTRUC Indica el tipo BLOB de una clave y el algoritmo que usa la clave.
ROOT_INFO_LUID Contiene un identificador único local (LUID) para la información raíz de tarjeta inteligente criptográfica.
RSAPUBKEY Contiene información específica de la clave pública determinada contenida en el BLOB de clave.
SCHANNEL_ALG Contiene información de tamaño de clave y algoritmo.
SIGNER_ATTR_AUTHCODE Especifica los atributos de una firma Authenticode .
SIGNER_BLOB_INFO Especifica un BLOB que se va a firmar.
SIGNER_CERT Especifica un certificado usado para firmar un documento. El certificado se puede almacenar en un archivo de certificado de publicador de software (SPC) o en un almacén de certificados.
SIGNER_CERT_STORE_INFO Especifica el almacén de certificados usado para firmar un documento.
SIGNER_CONTEXT Contiene un BLOB firmado.
SIGNER_FILE_INFO Especifica un archivo que se va a firmar.
SIGNER_PROVIDER_INFO Especifica la información de CSP y clave privada que se usa para crear una firma digital.
SIGNER_SIGNATURE_INFO Contiene información sobre una firma digital.
SIGNER_SPC_CHAIN_INFO Especifica un certificado de publicador de software (SPC) y una cadena de certificados que se usan para firmar un documento.
SIGNER_SUBJECT_INFO Especifica un asunto para firmar.

 

Estructuras de certificados comunes

Muchas de las funciones de certificado usan las siguientes estructuras.

Estructura Descripción
CERT_BIOMETRIC_DATA Contiene información sobre los datos biométricos.
CERT_BIOMETRIC_EXT_INFO Contiene un conjunto de información biométrica.
CERT_CONTEXT Contiene las representaciones codificadas y descodificadas de un certificado.
CERT_CRL_CONTEXT_PAIR Contiene un contexto de certificado y un contexto de CRL asociado.
CERT_DH_PARAMETERS Contiene parámetros asociados a un algoritmo de clave pública Diffie-Hellman .
CERT_DSS_PARAMETERS Contiene parámetros asociados a un algoritmo de clave pública de DSS.
CERT_ECC_SIGNATURE Contiene los valores r y s de una firma de algoritmo de firma digital de curva elíptica (ECDSA).
CERT_EXTENSION Contiene la información de extensión de un certificado, una lista de revocación de certificados (CRL) o una lista de confianza de certificados (CTL).
CERT_EXTENSIONS Contiene una matriz de extensiones.
CERT_GENERAL_SUBTREE Se usa en CERT_NAME_CONSTRAINTS_INFO estructura, esta estructura proporciona la identidad de un certificado que se puede incluir o excluir.
CERT_HASHED_URL Contiene una dirección URL con hash.
CERT_ID Se usa como medio flexible para identificar de forma única un certificado.
CERT_INFO Contiene la información de un certificado.
CERT_KEY_CONTEXT Contiene datos para el miembro pvData de un miembro Value de CERT_EXTENSION estructura asociada a una propiedad CERT_KEY_CONTEXT_PROP_ID.
CERT_KEYGEN_REQUEST_INFO Contiene información almacenada en la solicitud de Netscape Keygen.
CERT_LDAP_STORE_OPENED_PARA Se usa con la función CertOpenStore cuando se especifica el proveedor de CERT_STORE_PROV_LDAP mediante la marca CERT_LDAP_STORE_OPENED_FLAG para especificar la sesión LDAP existente que se usará para realizar la consulta, así como la cadena de consulta LDAP.
CERT_LOGOTYPE_AUDIO Contiene información sobre un logotipo de audio.
CERT_LOGOTYPE_AUDIO_INFO Contiene información más detallada sobre un logotipo de audio.
CERT_LOGOTYPE_DATA Contiene datos de tipo de logotipo.
CERT_LOGOTYPE_DETAILS Contiene información adicional sobre un logotipo.
CERT_LOGOTYPE_EXT_INFO Contiene un conjunto de información de tipo de logotipo.
CERT_LOGOTYPE_IMAGE Contiene información sobre un logotipo de imagen.
CERT_LOGOTYPE_IMAGE_INFO Contiene información más detallada sobre un logotipo de imagen.
CERT_LOGOTYPE_INFO Contiene información sobre los datos logotype.
CERT_LOGOTYPE_REFERENCE Contiene información de referencia del tipo de logotipo.
CERT_NAME_CONSTRAINTS_INFO Contiene información sobre los certificados que se permiten o excluyen específicamente de la confianza.
CERT_NAME_INFO Contiene nombres de asunto o emisor. La información se representa como una matriz de estructuras de CERT_RDN .
CERT_NAME_VALUE Contiene un valor de atributo de nombre distintivo relativo (RDN).
CERT_OTHER_LOGOTYPE_INFO Contiene información sobre los tipos de logotipo que no están predefinidos.
CERT_PAIR Contiene un certificado y su par entre certificados.
CERT_PHYSICAL_STORE_INFO Contiene información sobre los almacenes de certificados físicos.
CERT_POLICY_CONSTRAINTS_INFO Contiene directivas establecidas para aceptar certificados como de confianza.
CERT_POLICY_MAPPING Contiene una asignación entre los identificadores de dominio del emisor y los identificadores de dominio del firmante.
CERT_POLICY_MAPPINGS_INFO Proporciona asignación entre los identificadores de identificadores de directiva de dos dominios.
CERT_PUBLIC_KEY_INFO Contiene una clave pública y su algoritmo.
CERT_QC_STATEMENT Representa una sola instrucción en una secuencia de una o varias instrucciones para su inclusión en una extensión de instrucciones de certificado calificado (QC).
CERT_QC_STATEMENTS_EXT_INFO Contiene una secuencia de una o varias instrucciones que componen la extensión de instrucciones De certificado calificado (QC) para un QC.
CERT_RDN Contiene un nombre distintivo relativo (RDN) que consta de una matriz de estructuras de CERT_RDN_ATTR .
CERT_RDN_ATTR Contiene un único atributo de un nombre distintivo relativo (RDN).
CERT_REQUEST_INFO Contiene información para una solicitud de certificado.
CERT_REVOCATION_CRL_INFO Contiene información actualizada por un controlador de tipos de revocación de CRL.
CERT_REVOCATION_PARA Esta estructura se puede pasar opcionalmente a CertVerifyRevocation para ayudar a encontrar el emisor del contexto que se va a comprobar.
CERT_REVOCATION_STATUS Contiene información sobre el estado de revocación del certificado.
CERT_SELECT_STRUCT Contiene criterios sobre los que seleccionar los certificados que se presentan en un cuadro de diálogo de selección de certificados. Esta estructura se usa en la función CertSelectCertificate .
CERT_SIGNED_CONTENT_INFO Contiene contenido codificado que se va a firmar y un BLOB que contiene la firma.
CERT_STORE_PROV_FIND_INFO Muchas de las funciones de devolución de llamada del proveedor de almacén usan esta estructura.
CERT_STORE_PROV_INFO Contiene información devuelta por el CertDllOpenStoreProv instalado cuando se abre un almacén con CertOpenStore.
CERT_STRONG_SIGN_PARA Contiene parámetros que se usan para comprobar las firmas seguras en certificados, CRL, repositorios OCSP y mensajes PKCS #7.
CERT_STRONG_SIGN_SERIALIZED_INFO Contiene elalgoritmo hash del algoritmo/ de firma y los pares delongitud de bits del algoritmo / de clave públicaque se pueden usar para la firma segura.
CERT_SUBJECT_INFO_ACCESS Se trata de un sinónimo de la estructura de CERT_AUTHORITY_INFO_ACCESS .
CERT_SYSTEM_STORE_INFO Contiene información utilizada por funciones que funcionan con almacenes del sistema.
CERT_SYSTEM_STORE_RELOCATE_PARA Contiene los datos que se van a pasar a CertOpenStore cuando el parámetro dwFlags de esa función se establece en CERT_SYSTEM_STORE_RELOCATE_FLAG.
CERT_TEMPLATE_EXT Esta estructura es una plantilla de certificado.
CERT_X942_DH_PARAMETERS Contiene parámetros asociados a un algoritmo de clave pública Diffie-Hellman.
CERT_X942_DH_VALIDATION_PARAMS Opcionalmente, esta estructura está apuntada por un miembro de la estructura de CERT_X942_DH_PARAMETERS y contiene información adicional de inicialización.
CMC_ADD_ATTRIBUTES_INFO Contiene atributos de certificado que se van a agregar a un certificado.
CMC_ADD_EXTENSIONS_INFO Contiene atributos de control de extensión de certificado que se van a agregar a un certificado.
CMC_DATA_INFO Esta estructura proporciona un medio para comunicar diferentes fragmentos de información etiquetada.
CMC_PEND_INFO Esta estructura es un posible miembro de una estructura CMC_STATUS_INFO .
CMC_RESPONSE_INFO Esta estructura proporciona un medio para comunicar diferentes fragmentos de información etiquetada.
CMC_STATUS_INFO Contiene información de estado sobre los mensajes de administración de certificados a través de CMS.
CMC_TAGGED_ATTRIBUTE Esta estructura se usa en las estructuras CMC_DATA_INFO y CMC_RESPONSE_INFO .
CMC_TAGGED_CERT_REQUEST Esta estructura se usa en la estructura CMC_TAGGED_REQUEST .
CMC_TAGGED_CONTENT_INFO Esta estructura se usa en las estructuras CMC_DATA_INFO y CMC_RESPONSE_INFO .
CMC_TAGGED_OTHER_MSG Esta estructura se usa en las estructuras CMC_DATA_INFO y CMC_RESPONSE_INFO .
CMC_TAGGED_REQUEST Esta estructura se usa en las estructuras de CMC_DATA_INFO para solicitar un certificado.
CRL_CONTEXT Contiene las representaciones codificadas y descodificadas de una CRL.
CRL_ENTRY Contiene información sobre un único certificado revocado. Es miembro de una estructura CRL_INFO .
CRL_INFO Contiene la información de una lista de revocación de certificados (CRL).
CRL_ISSUING_DIST_POINT Contiene información sobre los tipos de certificados enumerados en una CRL.
CROSS_CERT_DIST_POINTS_INFO Esta estructura proporciona información utilizada para actualizar certificados cruzados dinámicos.
CTL_ANY_SUBJECT_INFO Contiene un SubjectAlgorithm para que coincida con el CTL y subjectIdentifier que se va a buscar en una de las entradas de CTL en las llamadas a CertFindSubjectInCTL.
CTL_CONTEXT Contiene las representaciones codificadas y descodificadas de un CTL.
CTL_ENTRY Esta estructura es un elemento de una lista de confianza de certificados (CTL).
CTL_FIND_SUBJECT_PARA Contiene datos usados por CertFindCTLInStore con un dwFindType de CTL_FIND_SUBJECT para buscar una lista de confianza de certificados (CTL).
CTL_FIND_USAGE_PARA Esta estructura es un miembro de la estructura CTL_FIND_SUBJECT_PARA y la usa CertFindCTLInStore.
CTL_INFO Contiene la información almacenada en una lista de confianza de certificados (CTL).
CTL_MODIFY_REQUEST Contiene una solicitud para modificar una lista de confianza de certificados. Esta estructura se usa en la función CertModifyCertificatesToTrust .
CTL_USAGE Contiene una matriz de identificadores de objeto (OID) para las extensiones de lista de confianza de certificados (CTL).
CTL_VERIFY_USAGE_PARA Contiene parámetros usados por CertVerifyCTLUsage para establecer la validez del uso de un CTL.
CTL_VERIFY_USAGE_STATUS Contiene información sobre una lista de confianza de certificados (CTL) devuelta por CertVerifyCTLUsage.

 

Estructuras de extensión de certificado X.509

Las estructuras siguientes están asociadas a estructuras X.509 CERT_EXTENSION .

Estructura Descripción
CERT_ACCESS_DESCRIPTION Esta estructura es un miembro de una estructura CERT_AUTHORITY_INFO_ACCESS .
CERT_ALT_NAME_ENTRY Contiene un nombre alternativo en una de las diversas formas de nombre.
CERT_ALT_NAME_INFO Se usa en extensiones de codificación y descodificación para certificados de firmante o emisor, lista de revocación de certificados (CRL) y lista de confianza de certificados (CTL).
CERT_AUTHORITY_INFO_ACCESS Representa el acceso a la información de autoridad y las extensiones de certificado de acceso a la información del sujeto y especifica cómo obtener acceso a información y servicios adicionales para el sujeto o el emisor de ese certificado.
CERT_AUTHORITY_KEY_ID_INFO Identifica la clave usada para firmar un certificado o CRL.
CERT_AUTHORITY_KEY_ID2_INFO Identifica la clave usada para firmar un certificado o CRL. Difiere de la estructura CERT_AUTHORITY_KEY_ID_INFO en que el emisor de certificados es un CERT_ALT_NAME_INFO en lugar de un CERT_NAME_BLOB.
CERT_BASIC_CONSTRAINTS_INFO Contiene información que indica si el sujeto certificado puede actuar como una ENTIDAD de certificación, una entidad final o ambos.
CERT_BASIC_CONSTRAINTS2_INFO Contiene información que indica si el sujeto certificado puede actuar como una entidad de certificación o una entidad final.
CERT_KEY_ATTRIBUTES_INFO Contiene información adicional opcional sobre la clave pública que se está certificando.
CERT_KEY_USAGE_RESTRICTION_INFO Contiene restricciones impuestas al uso de la clave pública de un certificado.
CERT_POLICIES_INFO Contiene una matriz de CERT_POLICY_INFO.
CERT_POLICY_ID Contiene una lista de directivas de certificado que el certificado admite expresamente, junto con información de calificador opcional relativa a estas directivas.
CERT_POLICY_INFO Contiene un identificador de objeto (OID) que especifica una directiva y una matriz opcional de calificadores de directiva.
CERT_POLICY_QUALIFIER_INFO Contiene un identificador de objeto (OID) que especifica el calificador y la información complementaria específica del calificador.
CERT_PRIVATE_KEY_VALIDITY Indica un intervalo de tiempo válido para la clave privada correspondiente a la clave pública de un certificado.
CRL_DIST_POINT Identifica un único punto de distribución CRL al que un usuario de certificado puede hacer referencia para determinar si se han revocado los certificados.
CRL_DIST_POINT_NAME Identifica una ubicación desde la que se puede obtener la CRL.
CRL_DIST_POINTS_INFO Contiene una lista de puntos de distribución CRL a los que un usuario de certificado puede hacer referencia para determinar si se ha revocado el certificado.

 

Estas estructuras se pueden codificar en el miembro Value de una estructura de CERT_EXTENSION mediante las funciones CryptEncodeObject y CryptEncodeObjectEx . Se crean y devuelven mediante las funciones CryptDecodeObject y CryptDecodeObjectEx cuando se descodifica el miembro Value de una estructura de CERT_EXTENSION .

La estructura codificada o creada depende del miembro de cadena pszObjId de la estructura CERT_EXTENSION .

En la tabla siguiente se muestran las constantes y los identificadores de identificadores predefinidos de extensión actuales junto con la estructura asociada a cada una de ellas.

Nota:

La constante predefinida (columna 1) y su OID correspondiente (columna 2) se pueden usar indistintamente.

 

Constante predefinida Identificador de objeto (OID) Estructura de los datos
X509_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_INFO_ACCESS CERT_AUTHORITY_INFO_ACCESS
X509_AUTHORITY_KEY_ID szOID_AUTHORITY_KEY_IDENTIFIER CERT_AUTHORITY_KEY_ID_INFO
X509_ALTERNATE_NAME szOID_SUBJECT_ALT_NAME – o –
szOID_ISSUER_ALT_NAME
CERT_ALT_NAME_INFO
X509_BASIC_CONSTRAINTS szOID_BASIC_CONSTRAINTS CERT_BASIC_CONSTRAINTS_INFO
X509_BASIC_CONSTRAINTS2 szOID_BASIC_CONSTRAINTS2 CERT_BASIC_CONSTRAINTS2_INFO
X509_CERT_POLICIES szOID_CERT_POLICIES CERT_POLICIES_INFO
X509_KEY_ATTRIBUTES szOID_KEY_ATTRIBUTES CERT_KEY_ATTRIBUTES_INFO
X509_KEY_USAGE szOID_KEY_USAGE CRYPT_BIT_BLOB
X509_KEY_USAGE_RESTRICTION szOID_KEY_USAGE_RESTRICTION CERT_KEY_USAGE_RESTRICTION_INFO
Ninguno szOID_POLICY_MAPPINGS No implementado
Ninguno szOID_SUBJECT_DIR_ATTRS No implementado

 

Estructuras de mensajes

Las funciones de mensajes criptográficos usan las siguientes estructuras.

Estructura Descripción
CMSG_CMS_RECIPIENT_INFO Esta estructura se usa con la función CryptMsgGetParam para obtener información sobre un transporte de claves, un contrato de clave o un destinatario del mensaje de sobre de lista de correo.
CMSG_CMS_SIGNER_INFO Esta estructura contiene el contenido de signerInfo definido en mensajes firmados o firmados y sobres.
CMSG_CNG_CONTENT_DECRYPT_INFO Contiene toda la información pertinente que se pasa entre las funciones instalables CryptMsgControl y OID para la importación y descifrado de una API de criptografía: clave de cifrado de contenido de próxima generación (CNG).
CMSG_CONTENT_ENCRYPT_INFO Contiene información compartida entre las funciones instalables de PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY, PFN_CMSG_EXPORT_KEY_TRANS, PFN_CMSG_EXPORT_KEY_AGREE y PFN_CMSG_EXPORT_MAIL_LISTidentificador de objeto (OID) usadas para el cifrado y exportación de una clave de cifrado de contenido.
CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA Esta estructura se usa para agregar un atributo no autenticado a un firmante de un mensaje firmado.
CMSG_CTRL_DECRYPT_PARA Esta estructura contiene información utilizada para descifrar un mensaje sobre para un destinatario de transporte de claves. Esta estructura se pasa a CryptMsgControl si el parámetro dwCtrlType es CMSG_CTRL_DECRYPT.
CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA Esta estructura se usa para eliminar un atributo no autenticado de un firmante de un mensaje firmado.
CMSG_CTRL_KEY_AGREE_DECRYPT_PARA Esta estructura contiene información sobre un destinatario del contrato de clave.
CMSG_CTRL_KEY_TRANS_DECRYPT_PARA Esta estructura contiene información sobre un destinatario del mensaje de transporte de claves.
CMSG_CTRL_MAIL_LIST_DECRYPT_PARA Esta estructura contiene información sobre un destinatario del mensaje de lista de correo.
CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA Esta estructura contiene información utilizada para comprobar una firma de mensaje. Contiene el índice del firmante y la clave pública del firmante. La clave pública del firmante puede ser la estructura de CERT_PUBLIC_KEY_INFOdel firmante, el contexto del certificado o el contexto de cadena.
CMSG_ENVELOPED_ENCODE_INFO Esta estructura contiene información necesaria para codificar un mensaje sobre. Se pasa a CryptMsgOpenToEncode si dwMsgType está CMSG_ENVELOPED.
CMSG_ENVELOPED_HASHED_INFO Esta estructura se usa con mensajes hash . Se pasa a CryptMsgOpenToEncode si dwMsgType está CMSG_ENVELOPED.
CMSG_KEY_AGREE_ENCRYPT_INFO Contiene información de cifrado aplicable a todos los destinatarios del contrato de clave de un mensaje sobre.
CMSG_KEY_AGREE_KEY_ENCRYPT_INFO Contiene la clave cifrada para un destinatario del contrato de clave de un mensaje sobre.
CMSG_KEY_TRANS_ENCRYPT_INFO Contiene información de cifrado para un destinatario de transporte de claves de datos sobres.
CMSG_MAIL_LIST_ENCRYPT_INFO Contiene información de cifrado para un destinatario de lista de correo de datos sobres.
CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO Esta estructura contiene información sobre un destinatario del mensaje mediante la administración de claves de contrato de claves.
CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO Esta estructura contiene información de transporte de clave codificada para un destinatario del mensaje.
CMSG_KEY_TRANS_RECIPIENT_INFO Esta estructura contiene información utilizada en algoritmos de transporte clave.
CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO Esta estructura se usa con claves simétricas distribuidas previamente para descifrar la clave de cifrado de clave de contenido (KEK).
CMSG_MAIL_LIST_RECIPIENT_INFO Esta estructura contiene información usada para claves de cifrado de claves simétricas distribuidas previamente (KEK).
CMSG_RC2_AUX_INFO Esta estructura contiene la longitud de bits de la clave para los algoritmos de cifrado RC2. El miembro pvEncryptionAuxInfo de CMSG_ENVELOPED_ENCODE_INFOse puede establecer para que apunte a una instancia de esta estructura.
CMSG_RC4_AUX_INFO Esta estructura contiene la longitud de bits de la clave para algoritmos de cifrado RC4. El miembro pvEncryptionAuxInfo de CMSG_ENVELOPED_ENCODE_INFOse puede establecer para que apunte a una instancia de esta estructura.
CMSG_RECIPIENT_ENCODE_INFO Esta estructura contiene información sobre el tipo de administración de claves de cifrado de contenido del destinatario del mensaje.
CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO Esta estructura contiene información sobre un receptor de mensajes usado para descifrar la clave de sesión necesaria para descifrar el contenido del mensaje. Esta estructura se usa con mensajes de bajo nivel cmS mediante cualquiera de los métodos de administración de claves.
CMSG_RECIPIENT_ENCRYPTED_KEY_INFO Esta estructura contiene información utilizada para un destinatario de contrato de clave individual.
CMSG_SIGNED_ENCODE_INFO Esta estructura contiene información que se va a pasar a CryptMsgOpenToEncode si dwMsgType es CMSG_SIGNED.
CMSG_SIGNER_ENCODE_INFO Esta estructura contiene información del firmante. Se pasa a CryptMsgCountersign, CryptMsgCountersignEncoded y, opcionalmente, a CryptMsgOpenToEncode como miembro de la estructura CMSG_SIGNED_ENCODE_INFO , si el parámetro dwMsgType es CMSG_SIGNED.
CMSG_SIGNER_INFO Esta estructura contiene el contenido del signerInfo definido por PKCS #7 en los mensajes firmados.
CMSG_SP3_COMPATIBLE_AUX_INFO Esta estructura contiene información necesaria para el cifrado compatible con SP3.
CMSG_STREAM_INFO Esta estructura se usa para habilitar el procesamiento de datos de flujo en lugar de un solo procesamiento de bloques. El procesamiento de flujos se usa con más frecuencia al procesar mensajes de gran tamaño. Los mensajes de proceso de transmisión pueden originarse en cualquier origen serializado, como un archivo en un disco duro, un servidor o una ROM de CD.
CRYPT_DECRYPT_MESSAGE_PARA Contiene información para descifrar mensajes.
CRYPT_ENCRYPT_MESSAGE_PARA Contiene información utilizada para cifrar mensajes.
CRYPT_HASH_MESSAGE_PARA Contiene datos para los mensajes hash .
CRYPT_SIGN_MESSAGE_PARA Contiene información para firmar mensajes mediante un contexto de certificado de firma especificado .
CRYPT_VERIFY_MESSAGE_PARA Contiene información necesaria para comprobar un mensaje firmado.

 

Estructuras de compatibilidad de OID

Las siguientes estructuras las usan las funciones de compatibilidad de OID.

Estructura Descripción
CRYPT_OID_FUNC_ENTRY Contiene un identificador de objeto (OID) y un puntero a su función relacionada. Se usa con CryptInstallOIDFunctionAddress
CRYPT_OID_INFO Contiene información sobre un identificador de objeto (OID).
CRYPT_RC2_CBC_PARAMETERS Contiene información utilizada con el cifrado de szOID_RSA_RC2CBC.
CRYPT_SMIME_CAPABILITIES Contiene una matriz prioritaria de funcionalidades admitidas.
CRYPT_SMIME_CAPABILITY Especifica una sola funcionalidad y sus parámetros asociados.

 

Estructuras de la cadena de certificados

Las estructuras siguientes se usan en la creación de cadenas de certificados que se usan para establecer la confianza en un certificado.

Estructura Descripción
AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA Contiene información de directiva usada en la comprobación de cadenas de certificados para archivos.
AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS Contiene información adicional de la directiva Authenticode para la comprobación de la cadena de archivos.
AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA Contiene información de directiva de marca de tiempo que se puede usar en la comprobación de la cadena de certificados de los archivos.
CERT_CHAIN_CONTEXT Contiene una matriz de cadenas de certificados simples y una estructura de estado de confianza que indica datos de validez de resumen en todas las cadenas simples conectadas.
CERT_CHAIN_ELEMENT Esta estructura es un único elemento de una cadena de certificados simple.
CERT_CHAIN_ENGINE_CONFIG Establece parámetros para crear un motor de cadena de certificados no predeterminado.
CERT_CHAIN_FIND_BY_ISSUER_PARA Contiene información usada en CertFindChainInStore para crear cadenas de certificados.
CERT_CHAIN_PARA Establece los criterios de búsqueda y coincidencia que se usarán en la creación de una cadena de certificados.
CERT_CHAIN_POLICY_PARA Contiene información utilizada en CertVerifyCertificateChainPolicy para establecer criterios de directiva para la comprobación de cadenas de certificados.
CERT_CHAIN_POLICY_STATUS Contiene la información de estado de la cadena de certificados devuelta por CertVerifyCertificateChainPolicy de la comprobación de cadenas de certificados.
CERT_REVOCATION_INFO Indica el estado de revocación de un certificado en un CERT_CHAIN_ELEMENT.
CERT_SELECT_CHAIN_PARA Contiene los parámetros usados para compilar y seleccionar cadenas.
CERT_SIMPLE_CHAIN Contiene una matriz de elementos de cadena y un estado de confianza de resumen para la cadena que representa la matriz.
CERT_SELECTUI_INPUT Usado por la función CertSelectionGetSerializedBlob para serializar los certificados contenidos en un almacén o una matriz de cadenas de certificados. El BLOB serializado devuelto se puede pasar a la función CredUIPromptForWindowsCredentials .
CERT_TRUST_LIST_INFO Indica el uso válido de un CTL.
CERT_TRUST_STATUS Contiene información de confianza sobre un certificado en una cadena de certificados, información de resumen de confianza sobre una cadena simple de certificados o información de resumen sobre una matriz de cadenas simples.
CERT_USAGE_MATCH Proporciona parámetros para buscar certificados de emisor usados para crear una cadena de certificados.
CTL_USAGE_MATCH Proporciona parámetros para buscar listas de confianza de certificados (CTL) usadas para crear una cadena de certificados.
SSL_EXTRA_CERT_CHAIN_POLICY_PARA Contiene información de directiva utilizada en la comprobación de cadenas de certificados de cliente/servidor de Capa de sockets seguros (SSL).

 

Estructuras de CSP

Las estructuras siguientes se usan con funciones de proveedor de servicios criptográficos (CSP).

Estructura Descripción
BLOBHEADER Indica el tipo BLOB de una clave y el algoritmo que usa la clave.
VTableProvStruc Contiene punteros a funciones de devolución de llamada que las funciones de CSP pueden usar.
PLAINTEXTKEYBLOB Contiene información de encabezado de parámetro para una clave de texto no cifrado.

 

Estructuras de WinTrust

Las estructuras siguientes se usan con la función WinVerifyTrust .

Estructura Descripción
CRYPT_PROVIDER_DEFUSAGE Usado por la función WintrustGetDefaultForUsage para recuperar información de devolución de llamada para el uso predeterminado de un proveedor.
CRYPT_PROVIDER_REGDEFUSAGE Usado por la función WintrustAddDefaultForUsage para registrar información de devolución de llamada sobre el uso predeterminado de un proveedor.
SPC_INDIRECT_DATA_CONTENT Almacena el resumen y otros atributos de un archivo firmado por Authenticode.
WINTRUST_BLOB_INFO Se usa al llamar a WinVerifyTrust para comprobar un BLOB de memoria.
WINTRUST_CATALOG_INFO Se usa al llamar a WinVerifyTrust para comprobar un miembro de un catálogo de Microsoft.
WINTRUST_CERT_INFO Se usa al llamar a WinVerifyTrust para comprobar un CERT_CONTEXT.
WINTRUST_DATA Se usa al llamar a WinVerifyTrust para pasar la información necesaria a los proveedores de confianza.
WINTRUST_FILE_INFO Se usa al llamar a WinVerifyTrust para comprobar un archivo individual.
WINTRUST_SGNR_INFO Se usa al llamar a WinVerifyTrust para comprobar una estructura de CMSG_SIGNER_INFO .

 

Estructuras SIP

El paquete de interfaz de asunto usa las siguientes estructuras (funciones SIPP).

Estructura Descripción
SIP_ADD_NEWPROVIDER Define un SIP.
SIP_CAP_SET Define las funciones de un SIP.
SIP_DISPATCH_INFO Contiene un conjunto de punteros a funciones SIP.
SIP_INDIRECT_DATA Contiene un resumen de la información del sujeto con hash.
SIP_SUBJECTINFO Especifica la información del asunto SIP.