Funciones de criptografía
Las funciones de criptografía se clasifican según el uso de la siguiente manera:
- Funciones CryptXML
- Funciones del firmante
- Funciones de criptografía base
- Funciones de almacén de certificados y certificados
- Funciones MakeCert
- Funciones de comprobación de certificados
- Funciones de mensajes
- Funciones auxiliares
- Funciones de copia de seguridad y restauración de Servicios de certificados
- Funciones de devolución de llamada
- Funciones de definición de catálogo
- Funciones de catálogo
- Funciones de WinTrust
- Funciones de localizador de objetos
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 de retorno 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 marcas de tiempo compatibles con X.509 Public Key Infrastructure, RFC 3161–compliant. |
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. Una sola aplicación puede usar ocasionalmente 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 y intercambio de claves
- 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). |
Generación de claves y funciones de 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 algoritmo 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 un algoritmo 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, almacenamiento y recuperación de certificados, listas de revocación de certificados (CRL) y listas de confianza de certificados (CTL). Estas funciones se dividen en los siguientes grupos:
- Funciones del almacén de certificados
- Funciones de mantenimiento de 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 rastro 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 hay 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 direcciones URL de logotipo o 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 para 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 para 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 desde 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, o siguiente, en un almacén. |
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 ese certificado se revoca. |
CertSetCertificateContextPropertiesFromCTLEntry | Establece las propiedades en el contexto de certificado mediante los atributos de la entrada 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 mensaje 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 para la transmisión y para 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 actualización final de CryptMsgUpdate 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 descodificar. |
CryptMsgOpenToEncode | Abre un mensaje criptográfico para la codificación. |
CryptMsgUpdate | Novedades el contenido de un mensaje criptográfico. |
CryptMsgVerifyCountersignatureEncoded | Comprueba una contrafirma en términos de la estructura SignerInfo (definida por 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 de uso de claves mejoradas
- 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 los datos y los 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 se incluyen 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, reemplazando así 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 de uso de claves mejoradas
Las siguientes funciones tratan con la extensión de uso mejorado de claves (EKU) y la propiedad extendida 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 EKU de un certificado. |
CertSetEnhancedKeyUsage | Establece la propiedad EKU para 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 o privada. Puede ser cualquier identificador único, pero normalmente es el hash SHA1 de 20 bytes de una estructura de CERT_PUBLIC_KEY_INFO codificada. Se puede obtener un identificador de clave a través del 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 las CRL ni a las 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 a partir 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:
- CryptEncodeObject
- CryptEncodeObjectEx
- CryptDecodeObject
- CryptDecodeObjectEx
- CertVerifyRevocation
- CertOpenStore
Para obtener información general sobre este proceso, consulte Extensión de la funcionalidad cryptoAPI.
Las siguientes funciones funcionan con los OID.
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 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 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 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 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 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 siguientes funciones 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 funciones siguientes admiten blobs con formato BLOB de intercambio 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 cargando la biblioteca Certadm.dll en la memoria llamando a LoadLibrary y, a continuación, determinando 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 de la sección CatalogFiles de un CDF. |
CryptCATCDFOpen | Abre un 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 del catálogo de 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 del 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 del firmante (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 para el archivo. |
WTHelperGetProvCertFromChain | Recupera un certificado de proveedor de confianza de la cadena de certificados. |
WTHelperGetProvPrivateDataFromChain | Recibe una estructura CRYPT_PROVIDER_PRIVDATA de la cadena mediante el identificador de proveedor. |
WTHelperGetProvSignerFromChain | Recupera un firmante o un contrafirmador por índice de la cadena. |
WTHelperProvDataFromStateData | Recupera la información del proveedor de confianza de un identificador especificado. |
Funciones de localizador de objetos
El siguiente proveedor personalizado puede 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. |