Funciones de criptografía

Las funciones de criptografía se clasifican según el uso de la siguiente manera:

Funciones CryptXML

Las funciones XML criptográficas proporcionan una API para crear y representar firmas digitales mediante datos con formato XML. Para obtener información sobre las firmas con formato XML, vea la especificación de sintaxis y procesamiento de XML-Signature en https://go.microsoft.com/fwlink/p/?linkid=139649.

Función Descripción
A_SHAFinal Calcula el hash final de los datos introducidos por la función MD5Update.
A_SHAInit Inicia el hash de un flujo de datos.
A_SHAUpdate Agrega datos a un objeto hash especificado.
CryptXmlCreateReference Crea una referencia a una firma XML.
CryptXmlAddObject Agrega el elemento Object a la firma en el contexto de documento abierto para la codificación.
CryptXmlClose Cierra un identificador de objeto XML criptográfico.
CryptXmlDigestReference Usado por una aplicación para resúmenes de la referencia resuelta. Esta función aplica transformaciones antes de actualizar el resumen.
CryptXmlDllCloseDigest Libera la CRYPT_XML_DIGEST asignada por la función CryptXmlDllCreateDigest .
CryptXmlDllCreateDigest Crea un objeto digest para el método especificado.
CryptXmlDllCreateKey Analiza el elemento KeyValue y crea un identificador de clave BCrypt de Cryptography API: Next Generation (CNG) para comprobar una firma.
CryptXmlDllDigestData Coloca los datos en el resumen.
CryptXmlDllEncodeAlgorithm Codifica los elementos SignatureMethod o DigestMethod para algoritmos ágiles con parámetros predeterminados.
CryptXmlDllEncodeKeyValue Codifica un elemento KeyValue .
CryptXmlDllFinalizeDigest Recupera el valor de resumen.
CryptXmlDllGetAlgorithmInfo Descodifica el algoritmo XML y devuelve información sobre el algoritmo.
CryptXmlDllGetInterface Recupera un puntero a las funciones de extensión criptográfica para el algoritmo especificado.
CryptXmlDllSignData Firma datos.
CryptXmlDllVerifySignature Comprueba una firma.
CryptXmlEncode Codifica los datos de firma mediante la función de devolución de llamada del escritor XML proporcionada.
CryptXmlGetAlgorithmInfo Descodifica la estructura CRYPT_XML_ALGORITHM y devuelve información sobre el algoritmo.
CryptXmlGetDocContext Devuelve el contexto del documento especificado por el identificador proporcionado.
CryptXmlGetReference Devuelve el elemento Reference especificado por el identificador proporcionado.
CryptXmlGetSignature Devuelve un elemento Signature XML.
CryptXmlGetStatus Devuelve una estructura CRYPT_XML_STATUS que contiene información de estado sobre el objeto especificado por el identificador proporcionado.
CryptXmlGetTransforms Devuelve información sobre el motor de cadena de transformación predeterminado.
CryptXmlImportPublicKey Importa la clave pública especificada por el identificador proporcionado.
CryptXmlOpenToEncode Abre una firma digital XML para codificar y devuelve un identificador del elemento Signature abierto. El identificador encapsula un contexto de documento con una única estructura de CRYPT_XML_SIGNATURE y permanece abierto hasta que se llama a la función CryptXmlClose .
CryptXmlOpenToDecode Abre una firma digital XML para descodificar y devuelve el identificador del contexto del documento que encapsula una estructura de CRYPT_XML_SIGNATURE . El contexto del documento puede incluir uno o varios elementos Signature .
CryptXmlSetHMACSecret Establece el secreto HMAC en el identificador antes de llamar a la función CryptXmlSign o CryptXmlVerify .
CryptXmlSign Crea una firma criptográfica de un elemento SignedInfo .
CryptXmlVerifySignature Realiza una validación de firma criptográfica de un elemento SignedInfo .
PFN_CRYPT_XML_WRITE_CALLBACK Crea una transformación para un proveedor de datos especificado.
PFN_CRYPT_XML_CREATE_TRANSFORM Escribe datos XML criptográficos.
PFN_CRYPT_XML_DATA_PROVIDER_READ Lee datos XML criptográficos.
PFN_CRYPT_XML_DATA_PROVIDER_CLOSE Libera el proveedor de datos XML criptográfico.
PFN_CRYPT_XML_ENUM_ALG_INFO Enumera entradas de CRYPT_XML_ALGORITHM_INFO predefinidas y registradas.

 

Funciones del firmante

Proporciona funciones para firmar y marcar los datos de marca de tiempo.

Función Descripción
SignerFreeSignerContext Libera una estructura de SIGNER_CONTEXT asignada por una llamada anterior a la función SignerSignEx .
SignError Llama a la función GetLastError y convierte el código devuelto en un HRESULT.
SignerSign Firma el archivo especificado.
SignerSignEx Firma el archivo especificado y devuelve un puntero a los datos firmados.
SignerSignEx2 Firma y marca de tiempo el archivo especificado, lo que permite varias firmas anidadas.
SignerTimeStamp Marca de tiempo el asunto especificado. Esta función admite la marca de tiempo Authenticode. Para realizar la marca de tiempo X.509 Public Key Infrastructure (RFC 3161), use la función SignerTimeStampEx2 .
SignerTimeStampEx Marca de tiempo el asunto especificado y, opcionalmente, devuelve un puntero a una estructura de SIGNER_CONTEXT que contiene un puntero a un BLOB. Esta función admite la marca de tiempo Authenticode. Para realizar la marca de tiempo X.509 Public Key Infrastructure (RFC 3161), use la función SignerTimeStampEx2 .
SignerTimeStampEx2 Marca de tiempo el asunto especificado y, opcionalmente, devuelve un puntero a una estructura de SIGNER_CONTEXT que contiene un puntero a un BLOB. Esta función se puede usar para realizar la infraestructura de clave pública X.509, las marcas de tiempo compatibles con RFC 3161.
SignerTimeStampEx3 Marca de tiempo el asunto especificado y admite la configuración de marcas de tiempo en varias firmas.

 

Funciones de criptografía base

Las funciones criptográficas base proporcionan los medios más flexibles para desarrollar aplicaciones de criptografía. Toda la comunicación con un proveedor de servicios criptográficos (CSP) se produce a través de estas funciones.

Un CSP es un módulo independiente que realiza todas las operaciones criptográficas. Se requiere al menos un CSP con cada aplicación que use funciones criptográficas. En ocasiones, una sola aplicación puede usar más de un CSP.

Si se usa más de un CSP, se puede especificar el que se va a usar en las llamadas a funciones criptográficas cryptoAPI. Un CSP, el proveedor criptográfico base de Microsoft, se agrupa con CryptoAPI. Este CSP se usa como proveedor predeterminado por muchas de las funciones CryptoAPI si no se especifica ningún otro CSP.

Cada CSP proporciona una implementación diferente de la compatibilidad criptográfica proporcionada a CryptoAPI. Algunos proporcionan algoritmos criptográficos más seguros; otros contienen componentes de hardware, como tarjetas inteligentes. Además, algunos CSP pueden comunicarse ocasionalmente directamente con los usuarios, como cuando se realizan firmas digitales mediante la clave privada de firma del usuario.

Las funciones criptográficas base se encuentran en los siguientes grupos generales:

  • Funciones del proveedor de servicios
  • Funciones de generación de claves y Exchange
  • Funciones de codificación y descodificación de objetos
  • Funciones de cifrado y descifrado de datos
  • Funciones hash y firma digital

Funciones del proveedor de servicios

Las aplicaciones usan las siguientes funciones de servicio para conectarse y desconectar un proveedor de servicios criptográficos (CSP).

Función Descripción
CryptAcquireContext
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Adquiere un identificador para el contenedor de claves del usuario actual dentro de un CSP determinado.
CryptContextAddRef
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Incrementa el recuento de referencias en un identificador HCRYPTPROV .
CryptEnumProviders
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Enumera los proveedores de un equipo.
CryptEnumProviderTypes
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Enumera los tipos de proveedores admitidos en el equipo.
CryptGetDefaultProvider
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Determina el CSP predeterminado para el usuario actual o para el equipo para un tipo de proveedor especificado.
CryptGetProvParam
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Recupera los parámetros que rigen las operaciones de un CSP.
CryptInstallDefaultContext
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Instala un contexto HCRYPTPROV adquirido previamente para usarse como contexto predeterminado.
CryptReleaseContext
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Libera el identificador adquirido por la función CryptAcquireContext .
CryptSetProvider y CryptSetProviderEx
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Especifica el CSP predeterminado de usuario para un tipo de CSP determinado.
CryptSetProvParam
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Especifica los atributos de un CSP.
CryptUninstallDefaultContext
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Quita un contexto predeterminado instalado previamente por CryptInstallDefaultContext.
FreeCryptProvFromCertEx Libera el identificador a un proveedor de servicios criptográficos (CSP) o a una clave cryptography API: Next Generation (CNG).

 

Funciones de generación de claves y Exchange

Las funciones de generación y intercambio de claves intercambian claves con otros usuarios y crean, configuran y destruyen claves criptográficas.

Función Descripción
CryptDeriveKey
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Crea una clave derivada de una contraseña.
CryptDestroyKey
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Destruye una clave.
CryptDuplicateKey
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Realiza una copia exacta de una clave, incluido el estado de la clave.
CryptExportKey
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Transfiere una clave del CSP a un BLOB de clave en el espacio de memoria de la aplicación.
CryptGenKey
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Crea una clave aleatoria.
CryptGenRandom
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Genera datos aleatorios.
CryptGetKeyParam
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Recupera los parámetros de una clave.
CryptGetUserKey
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Obtiene un identificador para el intercambio de claves o la clave de firma.
CryptImportKey
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Transfiere una clave de un BLOB de clave a un CSP.
CryptSetKeyParam
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Especifica los parámetros de una clave.

 

Funciones de codificación y descodificación de objetos

Se trata de funciones de codificación y descodificación generalizadas. Se usan para codificar y descodificar certificados, listas de revocación de certificados (CRL), solicitudes de certificado y extensiones de certificado.

Función Descripción
CryptDecodeObject Descodifica una estructura de tipo lpszStructType.
CryptDecodeObjectEx Descodifica una estructura de tipo lpszStructType. CryptDecodeObjectEx admite la opción de asignación de memoria de un solo paso.
CryptEncodeObject Codifica una estructura de tipo lpszStructType.
CryptEncodeObjectEx Codifica una estructura de tipo lpszStructType. CryptEncodeObjectEx admite la opción de asignación de memoria de paso único.

 

Funciones de cifrado y descifrado de datos

Las siguientes funciones admiten operaciones de cifrado y descifrado. CryptEncrypt y CryptDecrypt requieren una clave criptográfica antes de llamarse. Esto se hace mediante la función CryptGenKey, CryptDeriveKey o CryptImportKey . El algoritmo de cifrado se especifica cuando se crea la clave. CryptSetKeyParam puede establecer parámetros de cifrado adicionales.

Función Descripción
CryptDecrypt
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Descifra una sección de texto cifrado mediante la clave de cifrado especificada.
CryptEncrypt
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Cifra una sección de texto no cifrado mediante la clave de cifrado especificada.
CryptProtectData Realiza el cifrado en los datos de una estructura de DATA_BLOB .
CryptProtectMemory Cifra la memoria para proteger la información confidencial.
CryptUnprotectData Realiza una comprobación de descifrado e integridad de los datos de un DATA_BLOB.
CryptUnprotectMemory Descifra la memoria cifrada mediante CryptProtectMemory.

 

Funciones hash y firma digital

Estas funciones calculan hashes de datos y también crean y comprueban firmas digitales. Los hash también se conocen como resúmenes de mensajes.

Función Descripción
CryptCreateHash
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Crea un objeto hash vacío.
CryptDestroyHash
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Destruye un objeto hash.
CryptDuplicateHash Duplica un objeto hash.
CryptGetHashParam Recupera un parámetro de objeto hash.
CryptHashData
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Aplica un hash a un bloque de datos y lo agrega al objeto hash especificado.
CryptHashSessionKey
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Aplica hash a una clave de sesión y la agrega al objeto hash especificado.
CryptSetHashParam
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Establece un parámetro de objeto hash.
CryptSignHash
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Firma el objeto hash especificado.
CryptUIWizDigitalSign Muestra un asistente que firma digitalmente un documento o un BLOB.
CryptUIWizFreeDigitalSignContext Libera un puntero a una estructura de CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT .
CryptVerifySignature
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Comprueba una firma digital, dada un identificador al objeto hash.
PFNCFILTERPROC Filtra los certificados que aparecen en el asistente para firmas digitales que muestra la función CryptUIWizDigitalSign .

 

Funciones de almacén de certificados y certificados

Las funciones de almacén de certificados y certificados administran el uso, el almacenamiento y la recuperación de certificados, las listas de revocación de certificados (CRL) y las listas de confianza de certificados (CTL). Estas funciones se dividen en los siguientes grupos:

  • Funciones del almacén de certificados
  • Funciones de mantenimiento del almacén de certificados y certificados
  • Funciones de certificado
  • Funciones de lista de revocación de certificados
  • Funciones de lista de confianza de certificados
  • Funciones de propiedad extendidas
  • Funciones MakeCert

Funciones del almacén de certificados

Un sitio de usuario puede, con el tiempo, recopilar muchos certificados. Normalmente, un sitio tiene certificados para el usuario del sitio, así como otros certificados que describen esas personas y entidades con las que se comunica el usuario. Para cada entidad, puede haber más de un certificado. Para cada certificado individual, debe haber una cadena de comprobación de certificados que proporcione un final a un certificado raíz de confianza. Los almacenes de certificados y sus funciones relacionadas proporcionan funcionalidad para almacenar, recuperar, enumerar, comprobar y usar la información almacenada en los certificados.

Función Descripción
CertAddStoreToCollection Agrega un almacén de certificados del mismo nivel a un almacén de certificados de recopilación.
CertCloseStore Cierra un identificador de almacén de certificados.
CertControlStore Permite que se notifique a una aplicación cuando haya una diferencia entre el contenido de un almacén almacenado en caché y el contenido del almacén que se conserva en el almacenamiento. También proporciona desincronización del almacén almacenado en caché, si es necesario, y proporciona un medio para confirmar los cambios realizados en el almacén almacenado en caché en el almacenamiento almacenado en caché.
CertDuplicateStore Duplica un identificador de almacén incrementando el recuento de referencias.
CertEnumPhysicalStore Enumera los almacenes físicos de un almacén del sistema especificado.
CertEnumSystemStore Enumera todos los almacenes del sistema disponibles.
CertEnumSystemStoreLocation Enumera todas las ubicaciones que tienen un almacén del sistema disponible.
CertGetStoreProperty Obtiene una propiedad de almacén.
CertOpenStore Abre un almacén de certificados mediante un tipo de proveedor de almacén especificado.
CertOpenSystemStore Abre un almacén de certificados del sistema basado en un protocolo de subsistema.
CertRegisterPhysicalStore Agrega un almacén físico a una colección de almacenes del sistema del Registro.
CertRegisterSystemStore Registra un almacén del sistema.
CertRemoveStoreFromCollection Quita un almacén de certificados relacionado de un almacén de recopilación.
CertSaveStore Guarda el almacén de certificados.
CertSetStoreProperty Establece una propiedad de almacén.
CertUnregisterPhysicalStore Quita un almacén físico de una colección de almacenes del sistema especificada.
CertUnregisterSystemStore Anula el registro de un almacén del sistema especificado.
CryptUIWizExport Presenta un asistente que exporta un certificado, una lista de confianza de certificados (CTL), una lista de revocación de certificados (CRL) o un almacén de certificados.
CryptUIWizImport Presenta un asistente que importa un certificado, una lista de confianza de certificados (CTL), una lista de revocación de certificados (CRL) o un almacén de certificados.

 

Funciones de mantenimiento de almacén de certificados y certificados

CryptoAPI proporciona un conjunto de funciones de mantenimiento de almacén de certificados y certificados generales.

Función Descripción
CertAddSerializedElementToStore Agrega el certificado serializado o el elemento CRL al almacén.
CertCreateContext Crea el contexto especificado a partir de los bytes codificados. El nuevo contexto no se coloca en un almacén.
CertEnumSubjectInSortedCTL Enumera los objetos TrustedSubject en un contexto CTL ordenado.
CertFindSubjectInCTL Busca el asunto especificado en un CTL.
CertFindSubjectInSortedCTL Busca el asunto especificado en un CTL ordenado.
OpenPersonalTrustDBDialog y OpenPersonalTrustDBDialogEx Muestra el cuadro de diálogo Certificados .

 

Funciones de certificado

La mayoría de las funciones de certificado tienen funciones relacionadas para tratar con CRL y CTL. Para obtener más información sobre las funciones CRL y CTL relacionadas, vea Funciones de lista de revocación de certificados y Funciones de lista de confianza de certificados.

Función Descripción
CertAddCertificateContextToStore Agrega un contexto de certificado al almacén de certificados.
CertAddCertificateLinkToStore Agrega un vínculo en un almacén de certificados a un contexto de certificado en otro almacén.
CertAddEncodedCertificateToStore Convierte el certificado codificado en un contexto de certificado y, a continuación, agrega el contexto al almacén de certificados.
CertAddRefServerOcspResponse Incrementa el recuento de referencias de un identificador de HCERT_SERVER_OCSP_RESPONSE .
CertAddRefServerOcspResponseContext Incrementa el recuento de referencias de una estructura de CERT_SERVER_OCSP_RESPONSE_CONTEXT .
CertCloseServerOcspResponse Cierra un identificador de respuesta del servidor del protocolo de estado de certificado en línea (OCSP).
CertCreateCertificateContext Crea un contexto de certificado a partir de un certificado codificado. El contexto creado no se coloca en un almacén de certificados.
CertCreateSelfSignCertificate Crea un certificado autofirmado.
CertDeleteCertificateFromStore Elimina un certificado del almacén de certificados.
CertDuplicateCertificateContext Duplica un contexto de certificado incrementando su recuento de referencias.
CertEnumCertificatesInStore Enumera los contextos de certificado en el almacén de certificados.
CertFindCertificateInStore Busca el primer contexto de certificado, o siguiente, en el almacén de certificados que cumple un criterio de búsqueda.
CertFreeCertificateContext Libera un contexto de certificado.
CertGetIssuerCertificateFromStore Obtiene un contexto de certificado del almacén de certificados para el primero o siguiente emisor del certificado de sujeto especificado.
CertGetServerOcspResponseContext Recupera un contexto de respuesta de protocolo de estado de certificado en línea (OCSP) no bloqueado y de tiempo válido para el identificador especificado.
CertGetSubjectCertificateFromStore Obtiene del almacén de certificados el contexto del certificado del firmante, que se identifica de forma única por su emisor y número de serie.
CertGetValidUsages Devuelve una matriz de usos que consta de la intersección de los usos válidos para todos los certificados de una matriz de certificados.
CertOpenServerOcspResponse Abre un identificador para una respuesta del protocolo de estado de certificado en línea (OCSP) asociada a una cadena de certificados de servidor.
CertRetrieveLogoOrBiometricInfo Realiza una recuperación de la dirección URL del logotipo o la información biométrica especificada en la extensión de certificado szOID_LOGOTYPE_EXT o szOID_BIOMETRIC_EXT .
CertSelectCertificate Presenta un cuadro de diálogo que permite al usuario seleccionar certificados de un conjunto de certificados que coinciden con un criterio determinado.
CertSelectCertificateChains Recupera cadenas de certificados en función de los criterios de selección especificados.
CertSelectionGetSerializedBlob Función auxiliar que se usa para recuperar un blob de certificado serializado de una estructura de CERT_SELECTUI_INPUT .
CertSerializeCertificateStoreElement Serializa el certificado codificado de un contexto de certificado y una representación codificada de sus propiedades.
CertVerifySubjectCertificateContext Realiza las comprobaciones de comprobación habilitadas en el certificado del firmante mediante el emisor.
CryptUIDlgCertMgr Muestra un cuadro de diálogo que permite al usuario administrar certificados.
CryptUIDlgSelectCertificate Muestra un cuadro de diálogo que permite a un usuario seleccionar un certificado.
CryptUIDlgSelectCertificateFromStore Muestra un cuadro de diálogo que permite la selección de un certificado de un almacén especificado.
CryptUIDlgViewCertificate Presenta un cuadro de diálogo que muestra un certificado especificado.
CryptUIDlgViewContext Muestra un certificado, CRL o CTL.
CryptUIDlgViewSignerInfo Muestra un cuadro de diálogo que contiene la información del firmante de un mensaje firmado.
GetFriendlyNameOfCert Recupera el nombre para mostrar de un certificado.
RKeyCloseKeyService Cierra un identificador de servicio de claves.
RKeyOpenKeyService Abre un identificador de servicio de claves en un equipo remoto.
RKeyPFXInstall Instala un certificado en un equipo remoto.

 

Funciones de lista de revocación de certificados

Estas funciones administran el almacenamiento y la recuperación de listas de revocación de certificados (CRL).

Función Descripción
CertAddCRLContextToStore Agrega un contexto CRL al almacén de certificados.
CertAddCRLLinkToStore Agrega un vínculo en un almacén a un contexto CRL en otro almacén.
CertAddEncodedCRLToStore Convierte la CRL codificada en un contexto CRL y, a continuación, agrega el contexto al almacén de certificados.
CertCreateCRLContext Crea un contexto CRL a partir de una CRL codificada. El contexto creado no se coloca en un almacén de certificados.
CertDeleteCRLFromStore Elimina una CRL del almacén de certificados.
CertDuplicateCRLContext Duplica un contexto CRL incrementando el recuento de referencias.
CertEnumCRLsInStore Enumera los contextos de CRL en un almacén.
CertFindCertificateInCRL Busca el certificado especificado en la lista de revocación de certificados (CRL).
CertFindCRLInStore Busca el primer contexto crL o siguiente en el almacén de certificados que coincide con un criterio específico.
CertFreeCRLContext Libera un contexto CRL.
CertGetCRLFromStore Obtiene el primer contexto CRL del almacén de certificados del certificado especificado o siguiente.
CertSerializeCRLStoreElement Serializa la CRL codificada del contexto CRL y sus propiedades.

 

Funciones de lista de confianza de certificados

Estas funciones administran el almacenamiento y la recuperación de listas de confianza de certificados (CTL).

Función Descripción
CertAddCTLContextToStore Agrega un contexto CTL al almacén de certificados.
CertAddCTLLinkToStore Agrega un vínculo en un almacén a un contexto CRL en otro almacén.
CertAddEncodedCTLToStore Convierte el CTL codificado en un contexto de CTL y, a continuación, agrega el contexto al almacén de certificados.
CertCreateCTLContext Crea un contexto de CTL a partir de una lista de confianza de certificado codificada. El contexto creado no se coloca en un almacén de certificados.
CertDeleteCTLFromStore Elimina un CTL del almacén de certificados.
CertDuplicateCTLContext Duplica un contexto de CTL incrementando el recuento de referencias.
CertEnumCTLsInStore Enumera los contextos de CTL en el almacén de certificados.
CertFindCTLInStore Busca el primer contexto de CTL, o siguiente, en el almacén de certificados que coincida con un criterio específico.
CertFreeCTLContext Libera un contexto de CTL.
CertModifyCertificatesToTrust Modifica el conjunto de certificados de un CTL para un propósito determinado.
CertSerializeCTLStoreElement Serializa el CTL codificado del contexto CTL y sus propiedades.

 

Funciones de propiedad extendidas

Las siguientes funciones funcionan con propiedades extendidas de certificados, CRL y CTL.

Función Descripción
CertEnumCertificateContextProperties Enumera las propiedades del contexto de certificado especificado.
CertEnumCRLContextProperties Enumera las propiedades del contexto CRL especificado.
CertEnumCTLContextProperties Enumera las propiedades del contexto de CTL especificado.
CertGetCertificateContextProperty Recupera las propiedades del certificado.
CertGetCRLContextProperty Recupera las propiedades de CRL.
CertGetCTLContextProperty Recupera las propiedades de CTL.
CertSetCertificateContextProperty Establece las propiedades del certificado.
CertSetCRLContextProperty Establece las propiedades crL.
CertSetCTLContextProperty Establece las propiedades de CTL.

 

Funciones MakeCert

Las siguientes funciones admiten la herramienta MakeCert .

Función Descripción
FreeCryptProvFromCert Libera el identificador de un proveedor de servicios criptográficos (CSP) y, opcionalmente, elimina el contenedor temporal creado por la función GetCryptProvFromCert .
GetCryptProvFromCert Obtiene un identificador de un CSP y una especificación de clave para un contexto de certificado.
PvkFreeCryptProv Libera el identificador de un CSP y, opcionalmente, elimina el contenedor temporal creado por la función PvkGetCryptProv .
PvkGetCryptProv Obtiene un identificador de un CSP basado en un nombre de archivo de clave privada o en un nombre de contenedor de claves.
PvkPrivateKeyAcquireContextFromMemory Crea un contenedor temporal en el CSP y carga una clave privada de la memoria en el contenedor.
PvkPrivateKeySave Guarda una clave privada y su clave pública correspondiente en un archivo especificado.
SignError Llama a GetLastError y convierte el código de retorno en un HRESULT.

 

Funciones de comprobación de certificados

Los certificados se comprueban mediante CTL o cadenas de certificados. Se proporcionan funciones para ambos:

  • Funciones de comprobación mediante CTL
  • Funciones de comprobación de la cadena de certificados

Funciones de comprobación mediante CTL

Estas funciones usan CTL en el proceso de comprobación. Puede encontrar funciones adicionales para trabajar con CTL en Funciones de lista de confianza de certificados y Funciones de propiedad extendida.

Las siguientes funciones usan CTL directamente para la comprobación.

Función Descripción
CertVerifyCTLUsage Comprueba el uso de un CTL.
CryptMsgEncodeAndSignCTL Codifica y firma un CTL como mensaje.
CryptMsgGetAndVerifySigner Recupera y comprueba un CTL de un mensaje.
CryptMsgSignCTL Firma un mensaje que contiene un CTL.

 

Funciones de comprobación de la cadena de certificados

Las cadenas de certificados se crean para proporcionar información de confianza sobre los certificados individuales.

Nombre de la función Descripción
CertCreateCertificateChainEngine Crea un nuevo motor de cadena no predeterminado para una aplicación.
CertCreateCTLEntryFromCertificateContextProperties Crea una entrada de CTL cuyos atributos son las propiedades del contexto de certificado.
CertDuplicateCertificateChain Duplica una cadena de certificados incrementando el recuento de referencias de la cadena y devolviendo un puntero a la cadena.
CertFindChainInStore Busca el primer contexto de cadena de certificados en un almacén, o el siguiente.
CertFreeCertificateChain Libera una cadena de certificados reduciendo su recuento de referencias.
CertFreeCertificateChainEngine Libera un motor de cadena de certificados no predeterminado.
CertFreeCertificateChainList Libera la matriz de punteros a contextos de cadena.
CertGetCertificateChain Crea un contexto de cadena a partir de un certificado final y vuelve a un certificado raíz de confianza, si es posible.
CertIsValidCRLForCertificate Comprueba una CRL para determinar si incluiría un certificado específico si se revocara ese certificado.
CertSetCertificateContextPropertiesFromCTLEntry Establece las propiedades en el contexto del certificado mediante los atributos de la entrada de CTL.
CertVerifyCertificateChainPolicy Comprueba una cadena de certificados para comprobar su validez, incluido su cumplimiento con los criterios de directiva de validez especificados.

 

Funciones de mensajes

Las funciones de mensaje cryptoAPI constan de dos grupos de funciones: funciones de mensaje de bajo nivel y funciones de mensaje simplificadas.

Las funciones de mensajes de bajo nivel crean y funcionan directamente con mensajes PKCS #7. Estas funciones codifican datos PKCS #7 para la transmisión y descodifican los datos PKCS #7 recibidos. También descifran y comprueban las firmas de los mensajes recibidos. Para obtener información general sobre los mensajes estándar y de bajo nivel de PKCS #7, consulte Mensajes de bajo nivel.

Las funciones de mensaje simplificadas están en un nivel superior y encapsulan varias funciones de mensaje de bajo nivel y funciones de certificado en funciones únicas que realizan una tarea específica de una manera específica. Estas funciones reducen el número de llamadas de función necesarias para realizar una tarea, lo que simplifica el uso de CryptoAPI. Para obtener información general sobre los mensajes simplificados, consulte Mensajes simplificados.

  • Funciones de mensaje de bajo nivel
  • Funciones de mensaje simplificadas

Funciones de mensaje de bajo nivel

Las funciones de mensaje de bajo nivel proporcionan la funcionalidad necesaria para codificar los datos de transmisión y descodificar los mensajes PKCS #7 recibidos. También se proporciona funcionalidad para descifrar y comprobar las firmas de los mensajes recibidos. No se recomienda el uso de estas funciones de mensaje de bajo nivel en la mayoría de las aplicaciones. Para la mayoría de las aplicaciones, se prefiere el uso de funciones de mensaje simplificadas, que encapsulan varias funciones de mensaje de bajo nivel en una sola llamada de función.

Función Descripción
CryptMsgCalculateEncodedLength Calcula la longitud de un mensaje criptográfico codificado.
CryptMsgClose Cierra un identificador de un mensaje criptográfico.
CryptMsgControl Realiza una función de control especial después de la CryptMsgUpdate final de un mensaje criptográfico codificado o descodificado.
CryptMsgCountersign Contrasigna una firma ya existente en un mensaje.
CryptMsgCountersignEncoded Contrasigna una firma ya existente (SignerInfo codificada, tal como se define en PKCS #7).
CryptMsgDuplicate Duplica un identificador de mensaje criptográfico incrementando el recuento de referencias. El recuento de referencias realiza un seguimiento de la duración del mensaje.
CryptMsgGetParam Adquiere un parámetro después de codificar o descodificar un mensaje criptográfico.
CryptMsgOpenToDecode Abre un mensaje criptográfico para la descodificación.
CryptMsgOpenToEncode Abre un mensaje criptográfico para la codificación.
CryptMsgUpdate Actualiza el contenido de un mensaje criptográfico.
CryptMsgVerifyCountersignatureEncoded Comprueba una contrafirma en términos de la estructura SignerInfo (tal como se define en PKCS #7).
CryptMsgVerifyCountersignatureEncodedEx Comprueba que el parámetro pbSignerInfoCounterSignature contiene el hash cifrado del campo encryptedDigest de la estructura de parámetros pbSignerInfo .

 

Funciones de mensaje simplificadas

Las funciones de mensaje simplificadas encapsulan funciones de mensaje de bajo nivel en una sola función para realizar una tarea especificada.

Función Descripción
CryptDecodeMessage Descodifica un mensaje criptográfico.
CryptDecryptAndVerifyMessageSignature Descifra el mensaje especificado y comprueba el firmante.
CryptDecryptMessage Descifra el mensaje especificado.
CryptEncryptMessage Cifra el mensaje para los destinatarios o destinatarios.
CryptGetMessageCertificates Devuelve el almacén de certificados que contiene los certificados y las CRL del mensaje.
CryptGetMessageSignerCount Devuelve el recuento de firmantes en el mensaje firmado.
CryptHashMessage Crea un hash del mensaje.
CryptSignAndEncryptMessage Firma el mensaje y, a continuación, lo cifra para el destinatario o los destinatarios.
CryptSignMessageWithKey Firma un mensaje mediante la clave privada de un CSP especificada en los parámetros de la función .
CryptSignMessage Firma el mensaje.
CryptVerifyDetachedMessageHash Comprueba un mensaje hash que contiene un hash desasociado.
CryptVerifyDetachedMessageSignature Comprueba un mensaje firmado que contiene una firma o firmas desasociadas.
CryptVerifyMessageHash Comprueba un mensaje con hash.
CryptVerifyMessageSignature Comprueba un mensaje firmado.
CryptVerifyMessageSignatureWithKey Comprueba la firma de un mensaje firmado mediante la información de clave pública especificada.

 

Funciones auxiliares

Las funciones auxiliares se agrupan de la siguiente manera:

  • funciones de Administración de datos
  • Funciones de conversión de datos
  • Funciones mejoradas de uso de claves
  • Funciones de identificador de clave
  • Funciones de compatibilidad con OID
  • Funciones de recuperación de objetos remotos
  • Funciones PFX

funciones de Administración de datos

Las siguientes funciones CryptoAPI administran datos y certificados.

Función Descripción
CertCompareCertificate Compara dos certificados para determinar si son idénticos.
CertCompareCertificateName Compara dos nombres de certificado para determinar si son idénticos.
CertCompareIntegerBlob Compara dos blobs enteros.
CertComparePublicKeyInfo Compara dos claves públicas para determinar si son idénticas.
CertFindAttribute Busca el primer atributo identificado por su identificador de objeto (OID).
CertFindExtension Busca la primera extensión identificada por su OID.
CertFindRDNAttr Busca el primer atributo RDN identificado por su OID en la lista de nombres de los nombres distintivos relativos.
CertGetIntendedKeyUsage Adquiere los bytes de uso de clave previstos del certificado.
CertGetPublicKeyLength Adquiere la longitud de bits de la clave pública o privada del BLOB de clave pública.
CertIsRDNAttrsInCertificateName Compara los atributos del nombre del certificado con el CERT_RDN especificado para determinar si todos los atributos están incluidos allí.
CertIsStrongHashToSign Determina si el algoritmo hash especificado y la clave pública del certificado de firma se pueden usar para realizar una firma segura.
CertVerifyCRLRevocation Comprueba que el certificado del firmante no está en la lista de revocación de certificados (CRL).
CertVerifyCRLTimeValidity Comprueba la validez temporal de una CRL.
CertVerifyRevocation Comprueba que el certificado del firmante no está en la CRL.
CertVerifyTimeValidity Comprueba la validez temporal de un certificado.
CertVerifyValidityNesting Comprueba que la validez de la hora del firmante anida dentro de la validez temporal del emisor.
CryptExportPKCS8 Esta función se sustituye por la función CryptExportPKCS8Ex .
CryptExportPKCS8Ex Exporta la clave privada en formato PKCS #8.
CryptExportPublicKeyInfo Exporta la información de clave pública asociada a la clave privada correspondiente del proveedor.
CryptExportPublicKeyInfoEx Exporta la información de clave pública asociada a la clave privada correspondiente del proveedor. Esta función difiere de CryptExportPublicKeyInfo en que el usuario puede especificar el algoritmo de clave pública, lo que invalida el valor predeterminado proporcionado por el CSP.
CryptExportPublicKeyInfoFromBCryptKeyHandle Exporta la información de clave pública asociada a la clave privada correspondiente de un proveedor.
CryptFindCertificateKeyProvInfo Enumera los proveedores criptográficos y sus contenedores de claves para buscar la clave privada que corresponde a la clave pública de un certificado.
CryptFindLocalizedName Busca el nombre localizado de un nombre especificado, por ejemplo, busca el nombre localizado para el nombre de almacén del sistema raíz.
CryptHashCertificate
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Aplica hash al contenido codificado.
CryptHashCertificate2 Aplica hash a un bloque de datos mediante un proveedor hash Cryptography API: Next Generation (CNG).
CryptHashPublicKeyInfo
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Calcula el hash de la información de clave pública codificada.
CryptHashToBeSigned
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Calcula el hash de la información "para firmar" en el contenido firmado codificado (CERT_SIGNED_CONTENT_INFO).
CryptImportPKCS8
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Importa la clave privada en formato PKCS #8 a un proveedor de servicios criptográficos (CSP).
CryptImportPublicKeyInfo
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Convierte e importa información de clave pública en el proveedor y devuelve un identificador de la clave pública.
CryptImportPublicKeyInfoEx
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Convierte e importa la información de clave pública en el proveedor y devuelve un identificador de la clave pública. Se proporcionan parámetros adicionales (sobre los especificados por CryptImportPublicKeyInfo) que se pueden usar para invalidar los valores predeterminados para complementar CERT_PUBLIC_KEY_INFO.
CryptImportPublicKeyInfoEx2 Importa una clave pública en un proveedor asimétrico CNG.
CryptMemAlloc Asigna memoria para un búfer. Todas las funciones Crypt32.lib usan esta memoria que devuelven búferes asignados.
CryptMemFree Libera memoria asignada por CryptMemAlloc o CryptMemRealloc.
CryptMemRealloc Libera memoria asignada actualmente para un búfer y asigna memoria para un nuevo búfer.
CryptQueryObject
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Recupera información sobre el contenido de un BLOB o un archivo.
CryptSignAndEncodeCertificate Codifica la información "que se va a firmar", firma esta información codificada y codifica la información firmada y codificada resultante.
CryptSignCertificate Firma la información "que se va a firmar" en el contenido codificado y firmado.
CryptSIPAddProvider Agrega un paquete de interfaz de asunto (SIP).
CryptSIPCreateIndirectData Devuelve una estructura SIP_INDIRECT_DATA que contiene un hash de la estructura de SIP_SUBJECTINFO proporcionada, el algoritmo de resumen y un atributo de codificación. El hash se puede usar como referencia indirecta a los datos.
CryptSIPGetCaps Recupera las funciones de un SIP.
CryptSIPGetSignedDataMsg Recupera una firma Authenticode del archivo.
CryptSIPLoad Carga la biblioteca de vínculos dinámicos que implementa un paquete de interfaz de asunto y asigna las funciones de exportación de biblioteca adecuadas a una estructura de SIP_DISPATCH_INFO .
CryptSIPPutSignedDataMsg Almacena una firma Authenticode en el archivo de destino.
CryptSIPRemoveProvider Quita un SIP agregado por una llamada anterior a la función CryptSIPAddProvider .
CryptSIPRemoveSignedDataMsg Quita una firma Authenticode especificada.
CryptSIPRetrieveSubjectGuid Recupera un GUID basado en la información de encabezado de un archivo especificado.
CryptSIPRetrieveSubjectGuidForCatalogFile Recupera el GUID del firmante asociado al archivo especificado.
CryptSIPVerifyIndirectData Valida los datos hash indirectos en el asunto proporcionado.
CryptUpdateProtectedState Migra las claves maestras del usuario actual después de que el identificador de seguridad (SID) del usuario haya cambiado.
CryptVerifyCertificateSignature Comprueba la firma de un certificado de sujeto o una CRL mediante la información de clave pública.
CryptVerifyCertificateSignatureEx Una versión extendida de CryptVerifyCertificateSignature.
GetEncSChannel Almacena el contenido cifrado del archivo DLL de Schannel en la memoria.
pCryptSIPGetCaps Implementado por un SIP para informar de las funcionalidades.

 

Funciones de conversión de datos

Las siguientes funciones CryptoAPI convierten miembros de estructura de certificados en diferentes formularios.

Función Descripción
CertAlgIdToOID Convierte un identificador de algoritmo CryptoAPI (ALG_ID) en una cadena de identificador de objeto (OID) de notación de sintaxis abstracta (ASN.1).
CertGetNameString Adquiere el nombre del firmante o emisor de un certificado y lo convierte en una cadena de caracteres terminada en null.
CertNameToStr Convierte un nombre de certificado BLOB en una cadena terminada en cero.
CertOIDToAlgId Convierte la cadena de identificador de objeto ASN.1 en el identificador del algoritmo csp.
CertRDNValueToStr Convierte un valor de nombre en una cadena terminada en null.
CertStrToName Convierte una cadena X.500 terminada en null en un nombre de certificado codificado.
CryptBinaryToString Convierte una secuencia binaria en una cadena con formato.
CryptFormatObject Da formato a los datos codificados y devuelve una cadena Unicode.
CryptStringToBinary Convierte una cadena con formato en una secuencia binaria.

 

Funciones mejoradas de uso de claves

Las siguientes funciones tratan con la extensión de uso mejorado de claves (EKU) y la propiedad extendida de EKU de los certificados. La extensión EKU y la propiedad extendida especifican y limitan los usos válidos de un certificado. Las extensiones forman parte del propio certificado. El emisor del certificado los establece y son de solo lectura. Las propiedades extendidas por certificado son valores asociados a un certificado que se puede establecer en una aplicación.

Función Descripción
CertAddEnhancedKeyUsageIdentifier Agrega un identificador de uso a la propiedad EKU de un certificado.
CertGetEnhancedKeyUsage Adquiere, a partir de un certificado, información sobre la extensión o propiedad de EKU.
CertRemoveEnhancedKeyUsageIdentifier Quita el identificador de uso de la propiedad extendida de EKU de un certificado.
CertSetEnhancedKeyUsage Establece la propiedad EKU de un certificado.

 

Funciones de identificador de clave

Las funciones de identificador de clave permiten al usuario crear, establecer, recuperar o buscar un identificador de clave o sus propiedades.

Un identificador de clave es el identificador único de un par de claves pública y privada. Puede ser cualquier identificador único, pero normalmente es el hash SHA1 de 20 bytes de una estructura CERT_PUBLIC_KEY_INFO codificada. Se puede obtener un identificador de clave a través de la CERT_KEY_IDENTIFIER_PROP_ID del certificado. El identificador de clave permite el uso de ese par de claves para cifrar o descifrar mensajes sin usar el certificado.

Los identificadores de clave no están asociados a CRL o CTL.

Un identificador de clave puede tener las mismas propiedades que un contexto de certificado. Para obtener más información, vea CertCreateContext.

Función Descripción
CryptCreateKeyIdentifierFromCSP
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Crea un identificador de clave a partir del BLOB de clave pública de un CSP.
CryptEnumKeyIdentifierProperties Enumera los identificadores de clave y sus propiedades.
CryptGetKeyIdentifierProperty
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Adquiere una propiedad específica de un identificador de clave especificado.
CryptSetKeyIdentifierProperty
[! Importante]
Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.

Establece una propiedad de un identificador de clave especificado.

 

Funciones de compatibilidad con OID

Estas funciones proporcionan compatibilidad con el identificador de objeto (OID). Estas funciones instalan, registran y envían a funciones específicas del tipo de codificación y OID.

Las siguientes funciones cryptoAPI usan estas funciones de compatibilidad de OID:

Para obtener información general sobre este proceso, consulte Extensión de la funcionalidad cryptoAPI.

Las siguientes funciones funcionan con identificadores de identificadores de usuario.

Función Descripción
CryptEnumOIDFunction Enumera las funciones de OID registradas identificadas por su tipo de codificación, nombre de función y OID.
CryptEnumOIDInfo Enumera la información de OID registrada identificada por su grupo y llama a pfnEnumOIDInfo para buscar coincidencias.
CryptFindOIDInfo Usa la clave y el grupo especificados para buscar información de OID.
CryptFreeOIDFunctionAddress Libera el recuento de identificadores que se incrementó y devolvió CryptGetOIDFunctionAddress o CryptGetDefaultOIDFunctionAddress.
CryptGetDefaultOIDDllList Adquiere la lista de entradas DLL predeterminadas registradas para el conjunto de funciones y el tipo de codificación especificados.
CryptGetDefaultOIDFunctionAddress Adquiere la primera o la siguiente función predeterminada instalada, o carga el archivo DLL que contiene la función predeterminada.
CryptGetOIDFunctionAddress Busca en la lista de funciones instaladas una coincidencia de tipo de codificación y OID. Si no se encuentra una coincidencia allí, se busca una coincidencia en el Registro.
CryptGetOIDFunctionValue Adquiere el valor del tipo de codificación, el nombre de la función, el OID y el nombre del valor especificados.
CryptInitOIDFunctionSet Inicializa y devuelve un identificador del conjunto de funciones OID identificado por el nombre de función proporcionado.
CryptInstallOIDFunctionAddress Instala un conjunto de direcciones de función de OID invocables.
CryptRegisterDefaultOIDFunction Registra el archivo DLL que contiene la función predeterminada a la que se va a llamar para el tipo de codificación y el nombre de función especificados.
CryptRegisterOIDFunction Registra el archivo DLL que contiene la función a la que se va a llamar para el tipo de codificación, el nombre de la función y el OID especificados.
CryptRegisterOIDInfo Registra la información de OID especificada en la estructura de CRYPT_OID_INFO y la conserva en el registro.
CryptSetOIDFunctionValue Establece el valor del tipo de codificación, el nombre de la función, el OID y el nombre del valor especificados.
CryptUnregisterDefaultOIDFunction Quita el registro del archivo DLL que contiene la función predeterminada a la que se va a llamar para el tipo de codificación y el nombre de función especificados.
CryptUnregisterOIDFunction Quita el registro del archivo DLL que contiene la función a la que se va a llamar para el tipo de codificación, el nombre de la función y el OID especificados.
CryptUnregisterOIDInfo Quita el registro de la información de OID especificada.

 

Funciones de recuperación de objetos remotos

Las funciones siguientes permiten al usuario recuperar un objeto de infraestructura de clave pública (PKI), adquirir la dirección URL de un certificado, CTL o CRL, o extraer una dirección URL de un objeto.

Función Descripción
CryptGetObjectUrl Adquiere la dirección URL del objeto remoto a partir de un certificado, CTL o CRL.
CryptRetrieveObjectByUrl Recupera el objeto PKI de una ubicación especificada por una dirección URL.

 

Funciones PFX

Las siguientes funciones admiten blobs con formato BLOB de Exchange de información personal (PFX).

Función Descripción
PFXExportCertStore Exporta desde el almacén de certificados al que se hace referencia los certificados y, si está disponible, sus claves privadas asociadas.
PFXExportCertStoreEx Exporta desde el almacén de certificados al que se hace referencia los certificados y, si está disponible, sus claves privadas asociadas.
PFXImportCertStore Importa un BLOB PFX y devuelve el identificador de un almacén que contiene certificados y las claves privadas asociadas.
PFXIsPFXBlob Intenta descodificar la capa externa de un BLOB como un paquete PFX.
PFXVerifyPassword Intenta descodificar la capa externa de un BLOB como un paquete PFX y descifrarla con la contraseña especificada.

 

Funciones de copia de seguridad y restauración de Servicios de certificados

Servicios de certificados incluye funciones para realizar copias de seguridad y restaurar la base de datos de Servicios de certificados. Estas funciones de copia de seguridad y restauración de Servicios de certificados se encuentran en Certadm.dll. A diferencia de los demás elementos de API asociados a Servicios de certificados, estas funciones no se encapsulan en un objeto que se puede usar para llamar a métodos de clase. En su lugar, primero se llama a las API de copia de seguridad y restauración mediante la carga de la biblioteca Certadm.dll en la memoria mediante una llamada a LoadLibrary y, a continuación, la determinación de la dirección de las funciones mediante una llamada a GetProcAddress. Cuando haya terminado de llamar a las funciones de copia de seguridad y restauración de Servicios de certificados, llame a FreeLibrary para liberar Certadm.dll recursos de la memoria.

Nota

Las funciones de copia de seguridad y restauración proporcionadas por Certadm.dll no realizan copias de seguridad ni restauran las claves privadas del servicio de certificados. Para obtener información sobre la copia de seguridad de las claves privadas de Servicios de certificados, consulte Copia de seguridad y restauración de la clave privada de servicios de certificados.

Para llamar a las funciones de copia de seguridad y restauración, debe tener privilegios de copia de seguridad y restauración. Para obtener más información, consulte Establecimiento de los privilegios de copia de seguridad y restauración.

 

Nota

Si se llamó previamente a CoInitializeEx en el mismo subproceso usado para llamar a las API de copia de seguridad y restauración de Servicios de certificados, la marca COINIT_APARTMENTTHREADED debe haberse pasado a CoInitializeEx. Es decir, cuando se usa el mismo subproceso, no se puede llamar a la API de copia de seguridad y restauración de Servicios de certificados si el subproceso ha pasado previamente la marca COINIT_MULTITHREADED en una llamada a CoInitializeEx.

 

Las API de copia de seguridad de Servicios de certificados se definen en Certbcli.h. Sin embargo, al crear el programa, use Certsrv.h como archivo de inclusión.

Las siguientes API se exportan mediante Certadm.dll.

Función Descripción
CertSrvBackupClose Cierra un archivo abierto.
CertSrvBackupEnd Finaliza una sesión de copia de seguridad.
CertSrvBackupFree Libera un búfer asignado por las API de copia de seguridad y restauración.
CertSrvBackupGetBackupLogs Devuelve una lista de los archivos de registro de los que se debe realizar una copia de seguridad.
CertSrvBackupGetDatabaseNames Devuelve una lista de archivos de base de datos de los que se debe realizar una copia de seguridad.
CertSrvBackupGetDynamicFileList Recupera la lista de nombres de archivo dinámicos de Servicios de certificados de los que se debe realizar una copia de seguridad para el contexto de copia de seguridad especificado.
CertSrvBackupOpenFile Abre un archivo como preparación para realizar una copia de seguridad.
CertSrvBackupPrepare Prepara la base de datos para la copia de seguridad en línea.
CertSrvBackupRead Lee el contenido de un archivo abierto.
CertSrvBackupTruncateLogs Trunca los archivos de registro.
CertSrvIsServerOnline Determina si un servidor de Servicios de certificados está en línea (en ejecución activamente).
CertSrvRestoreEnd Finaliza una sesión de restauración.
CertSrvRestoreGetDatabaseLocations Recupera ubicaciones de base de datos (usadas para escenarios de copia de seguridad y restauración).
CertSrvRestorePrepare Inicia una sesión de restauración.
CertSrvRestoreRegister Registra una operación de restauración.
CertSrvRestoreRegisterComplete Completa una operación de restauración registrada anteriormente.
CertSrvRestoreRegisterThroughFile Registra una operación de restauración.
CertSrvServerControl Envía un comando de control a la instancia de Servicios de certificados.

 

Funciones de devolución de llamada

Las funciones de devolución de llamada de esta sección se usan para registrar o instalar proveedores de almacén de certificados definidos por la aplicación y para proporcionar funcionalidad relacionada mediante funciones de devolución de llamada. Las funciones cryptoAPI implementan las funciones de devolución de llamada y las llama. Las funciones de devolución de llamada permiten a la aplicación controlar, en parte, la forma en que las funciones CryptoAPI manipulan los datos.

Función de devolución de llamada Uso
CertChainFindByIssuerCallback Función de devolución de llamada definida por la aplicación que permite a la aplicación filtrar certificados que se pueden agregar a la cadena de certificados.
CertDllOpenStoreProv Define la función open del proveedor de almacén.
CertEnumPhysicalStoreCallback Función de devolución de llamada usada por la función CertEnumPhysicalStore para dar formato y presentar información sobre cada almacén físico encontrado.
CertEnumSystemStoreCallback Función de devolución de llamada usada por la función CertEnumSystemStore para dar formato y presentar información sobre cada almacén físico encontrado.
CertEnumSystemStoreLocationCallback Función de devolución de llamada usada por la función CertEnumSystemStoreLocation para dar formato y presentar información sobre cada almacén físico encontrado.
CertStoreProvCloseCallback Determina lo que sucede cuando el recuento de referencias de un almacén abierto se convierte en cero.
CertStoreProvControl Permite que se notifique a una aplicación cuando hay una diferencia entre el contenido de un almacén almacenado en caché en uso y el contenido de ese almacén, ya que se conserva en el almacenamiento.
CertStoreProvDeleteCertCallback Determina las acciones que se deben realizar antes de que se elimine un certificado de un almacén de certificados.
CertStoreProvDeleteCRLCallback Determina las acciones que se deben realizar antes de que se elimine una lista de revocación de certificados (CRL) de un almacén de certificados.
CertStoreProvDeleteCTL Determina si se puede eliminar un CTL.
CertStoreProvFindCert Busca el primer certificado, o siguiente, en un almacén que coincida con los criterios especificados.
CertStoreProvFindCRL Busca la primera crL, o a continuación, en un almacén que coincida con los criterios especificados.
CertStoreProvFindCTL Busca el primero o siguiente CTL en un almacén que coincida con los criterios especificados.
CertStoreProvFreeFindCert Libera un contexto de certificado encontrado anteriormente.
CertStoreProvFreeFindCRL Libera un contexto CRL encontrado anteriormente.
CertStoreProvFreeFindCTL Libera un contexto CTL encontrado anteriormente.
CertStoreProvGetCertProperty Recupera una propiedad especificada de un certificado.
CertStoreProvGetCRLProperty Recupera una propiedad especificada de una CRL.
CertStoreProvGetCTLProperty Recupera una propiedad especificada de un CTL.
CertStoreProvReadCertCallback Actualmente no se usa, pero se puede exportar a futuros CSP.
CertStoreProvReadCRLCallback Actualmente no se usa, pero se puede exportar a futuros CSP.
CertStoreProvReadCTL Lea la copia del proveedor del contexto CTL y, si existe, cree un nuevo contexto de CTL.
CertStoreProvSetCertPropertyCallback Determina las acciones que se deben realizar antes de una llamada a CertSetCertificateContextProperty o CertGetCertificateContextProperty.
CertStoreProvSetCRLPropertyCallback Determina las acciones que se deben realizar antes de una llamada a CertSetCRLContextProperty o CertGetCRLContextProperty.
CertStoreProvSetCTLProperty Determina si una propiedad se puede establecer en un CTL.
CertStoreProvWriteCertCallback Determina las acciones que se deben realizar antes de agregar un certificado a un almacén.
CertStoreProvWriteCRLCallback Determina las acciones que se deben realizar antes de agregar una CRL a un almacén.
CertStoreProvWriteCTL Determina si se puede agregar un CTL al almacén.
CRYPT_ENUM_KEYID_PROP Función de devolución de llamada usada por la función CryptEnumKeyIdentifierProperties .
CRYPT_ENUM_OID_FUNCTION Función de devolución de llamada usada por la función CryptEnumOIDFunction .
CRYPT_ENUM_OID_INFO Función de devolución de llamada usada por la función CryptEnumOIDInfo .
CryptGetSignerCertificateCallback Función de devolución de llamada usada con la estructura CRYPT_VERIFY_MESSAGE_PARA para obtener y comprobar el certificado de un firmante de mensajes.
PCRYPT_DECRYPT_PRIVATE_KEY_FUNC Función de devolución de llamada usada por la función CryptImportPKCS8 .
PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC Función de devolución de llamada usada al crear la estructura de CRYPT_ENCRYPTED_PRIVATE_KEY_INFO .
PCRYPT_RESOLVE_HCRYPTPROV_FUNC Función de devolución de llamada usada por la función CryptImportPKCS8 .
PFN_CDF_PARSE_ERROR_CALLBACK Una función definida por el usuario denominada para errores de función de definición de catálogo al analizar un archivo de definición de catálogo (CDF).
PFN_CERT_CREATE_CONTEXT_SORT_FUNC Se llama a para cada entrada de contexto ordenada cuando se crea un contexto.
PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY Función instalable del identificador de objeto (OID) de CNG para la importación de una clave de cifrado de contenido (CEK) ya descifrada.
PFN_CMSG_CNG_IMPORT_KEY_AGREE Importa una clave de cifrado de contenido para un destinatario de transporte de claves de un mensaje sobre.
PFN_CMSG_CNG_IMPORT_KEY_TRANS Una función instalable de OID de CNG para importar y descifrar un destinatario de transporte de claves, cifrado, clave de cifrado de contenido (CEK).
PFN_CMSG_EXPORT_KEY_AGREE Cifra y exporta la clave de cifrado de contenido para un destinatario del contrato de clave de un mensaje sobre.
PFN_CMSG_EXPORT_KEY_TRANS Cifra y exporta la clave de cifrado de contenido para un destinatario de transporte de claves de un mensaje sobre.
PFN_CMSG_EXPORT_MAIL_LIST Cifra y exporta la clave de cifrado de contenido para un destinatario de la lista de correo de un mensaje sobre.
PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY Genera la clave simétrica utilizada para cifrar el contenido de un mensaje sobre.
PFN_CMSG_IMPORT_KEY_AGREE Importa una clave de cifrado de contenido para un destinatario de transporte de claves de un mensaje sobre.
PFN_CMSG_IMPORT_KEY_TRANS Importa una clave de cifrado de contenido para un destinatario de transporte de claves de un mensaje sobre.
PFN_CMSG_IMPORT_MAIL_LIST Importa una clave de cifrado de contenido para un destinatario de transporte de claves de un mensaje sobre.
PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC Llamado por CryptExportPublicKeyInfoEx para exportar una clave pública BLOB y codificarla.
PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC Se llama para descodificar y devolver el identificador del algoritmo hash y, opcionalmente, los parámetros de firma.
PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC Se llama para firmar y codificar un hash calculado.
PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC Se llama para descifrar una firma codificada y compararla con un hash calculado.
PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC Llamado por CryptImportPublicKeyInfoEx2 para descodificar el identificador del algoritmo de clave pública , cargar el proveedor de algoritmos e importar el par de claves.
PFNCCERTDISPLAYPROC Función de devolución de llamada definida por el usuario que permite al autor de la llamada de la función CryptUIDlgSelectCertificate controlar la visualización de los certificados que el usuario selecciona ver.
PFNCMFILTERPROC Filtra cada certificado para decidir si aparecerá en el cuadro de diálogo selección de certificado que muestra la función CertSelectCertificate .
PFNCMHOOKPROC Se llama antes de que el cuadro de diálogo de selección de certificado generado por la función CertSelectCertificate procese los mensajes.

 

Funciones de definición de catálogo

Estas funciones se usan para crear un catálogo. MakeCat llama a todas estas funciones.

Función Descripción
CryptCATCDFClose Cierra un archivo de definición de catálogo y libera la memoria de la estructura CRYPTCATCDF correspondiente.
CryptCATCDFEnumAttributesWithCDFTag Enumera los atributos de los archivos de miembro en la sección CatalogFiles de un CDF.
CryptCATCDFEnumCatAttributes Enumera los atributos de nivel de catálogo dentro de la sección CatalogHeader de una CDF.
CryptCATCDFEnumMembersByCDFTagEx Enumera los miembros de archivo individuales en la sección CatalogFiles de un CDF.
CryptCATCDFOpen Abre una red CDF existente para leer e inicializar una estructura CRYPTCATCDF .

 

Funciones de catálogo

Estas funciones se usan para administrar un catálogo.

Función Descripción
CryptCATAdminAcquireContext Adquiere un identificador para un contexto de administrador de catálogos. Este identificador se puede usar mediante llamadas posteriores a las funciones CryptCATAdminAddCatalog, CryptCATAdminEnumCatalogFromHash y CryptCATAdminRemoveCatalog .
CryptCATAdminAcquireContext2 Adquiere un identificador para un contexto de administrador de catálogo para un algoritmo hash y una directiva hash determinada.
CryptCATAdminAddCatalog Agrega un catálogo a la base de datos de catálogo.
CryptCATAdminCalcHashFromFileHandle Calcula el hash de un archivo.
CryptCATAdminCalcHashFromFileHandle2 Calcula el hash de un archivo mediante el algoritmo especificado.
CryptCATAdminEnumCatalogFromHash Enumera los catálogos que contienen un hash especificado.
CryptCATAdminReleaseCatalogContext Libera un identificador en un contexto de catálogo devuelto anteriormente por la función CryptCATAdminAddCatalog .
CryptCATAdminReleaseContext Libera el identificador asignado previamente por la función CryptCATAdminAcquireContext .
CryptCATAdminRemoveCatalog Elimina un archivo de catálogo y quita la entrada del catálogo de la base de datos de catálogo Windows.
CryptCATAdminResolveCatalogPath Recupera la ruta de acceso completa del catálogo especificado.
CryptCATCatalogInfoFromContext Recupera información de catálogo de un contexto de catálogo especificado.
CryptCATClose Cierra un identificador de catálogo abierto anteriormente por la función CryptCATOpen .
CryptCATEnumerateAttr Enumera los atributos asociados a un miembro de un catálogo.
CryptCATEnumerateCatAttr Enumera los atributos asociados a un catálogo.
CryptCATEnumerateMember Enumera los miembros de un catálogo.
CryptCATGetAttrInfo Recupera información sobre un atributo de un miembro de un catálogo.
CryptCATGetMemberInfo Recupera información de miembro del PKCS #7 del catálogo. Además de recuperar la información de miembro de una etiqueta de referencia especificada, esta función abre un contexto de miembro.
CryptCATOpen Abre un catálogo y devuelve un identificador de contexto al catálogo abierto.
IsCatalogFile Recupera un valor booleano que indica si el archivo especificado es un archivo de catálogo.

 

Funciones de WinTrust

Las siguientes funciones se usan para realizar varias operaciones de confianza.

Función Descripción
WintrustAddActionID Agrega una acción de proveedor de confianza al sistema del usuario.
WintrustGetRegPolicyFlags Recupera marcas de directiva para un proveedor de directivas.
WintrustAddDefaultForUsage Especifica el identificador de uso predeterminado y la información de devolución de llamada de un proveedor.
WintrustGetDefaultForUsage Recupera el identificador de uso predeterminado y la información de devolución de llamada.
WintrustLoadFunctionPointers Carga los puntos de entrada de función para un GUID de acción especificado.
WintrustRemoveActionID Quita una acción agregada por la función WintrustAddActionID .
WintrustSetDefaultIncludePEPageHashes Establece la configuración predeterminada que determina si se incluyen hashes de página al crear datos indirectos del paquete de interfaz de asunto (SIP) para archivos ejecutables portátiles.
WintrustSetRegPolicyFlags Establece marcas de directiva para un proveedor de directivas.
WinVerifyTrust Realiza una acción de comprobación de confianza en un objeto especificado.
WinVerifyTrustEx Realiza una acción de comprobación de confianza en un objeto especificado y toma un puntero a una estructura de WINTRUST_DATA.
WTHelperCertCheckValidSignature Comprueba si una firma es válida.
WTHelperCertFindIssuerCertificate Busca un certificado de emisor de los almacenes de certificados especificados que coincidan con el certificado de sujeto especificado.
WTHelperCertIsSelfSigned Comprueba si un certificado está autofirmado.
WTHelperGetFileHash Comprueba la firma de un archivo firmado y obtiene el valor hash y el identificador de algoritmo del archivo.
WTHelperGetProvCertFromChain Recupera un certificado de proveedor de confianza de la cadena de certificados.
WTHelperGetProvPrivateDataFromChain Recibe una estructura de CRYPT_PROVIDER_PRIVDATA de la cadena mediante el identificador de proveedor.
WTHelperGetProvSignerFromChain Recupera un firmante o un contador por índice de la cadena.
WTHelperProvDataFromStateData Recupera la información del proveedor de confianza de un identificador especificado.

 

Funciones de localizador de objetos

Los siguientes proveedores personalizados pueden implementar las siguientes funciones de devolución de llamada que el paquete de seguridad del canal seguro (Schannel) va a llamar para recuperar certificados.

Función Descripción
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH Especifica que un objeto ha cambiado.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET Recupera un objeto .
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE Libera el proveedor.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD Libera la contraseña usada para cifrar una matriz de bytes PFX.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE Libera el objeto devuelto por el proveedor.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER Libera memoria para un identificador de objeto.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE Inicializa el proveedor.