Fonctions de chiffrement
Les fonctions de chiffrement sont classées en fonction de l’utilisation comme suit :
- Fonctions CryptXML
- Fonctions du signataire
- Fonctions de chiffrement de base
- Fonctions de certificat et de magasin de certificats
- Fonctions MakeCert
- Fonctions de vérification de certificat
- Fonctions de message
- Fonctions auxiliaires
- Fonctions de sauvegarde et de restauration des services de certificats
- Fonctions de rappel
- Fonctions de définition de catalogue
- Fonctions de catalogue
- Fonctions WinTrust
- Fonctions de localisateur d’objets
Fonctions CryptXML
Les fonctions XML de chiffrement fournissent une API permettant de créer et de représenter des signatures numériques à l’aide de données au format XML. Pour plus d’informations sur les signatures au format XML, consultez la spécification de XML-Signature syntaxe et de traitement à l’adresse https://go.microsoft.com/fwlink/p/?linkid=139649.
Fonction | Description |
---|---|
A_SHAFinal | Calcule le hachage final des données entrées par la fonction MD5Update. |
A_SHAInit | Lance le hachage d’un flux de données. |
A_SHAUpdate | Ajoute des données à un objet de hachage spécifié. |
CryptXmlCreateReference | Crée une référence à une signature XML. |
CryptXmlAddObject | Ajoute l’élément Object à la signature dans le contexte de document ouvert pour l’encodage. |
CryptXmlClose | Ferme un handle d’objet XML de chiffrement. |
CryptXmlDigestReference | Utilisé par une application pour digester la référence résolue. Cette fonction applique des transformations avant de mettre à jour le digest. |
CryptXmlDllCloseDigest | Libère le CRYPT_XML_DIGEST alloué par la fonction CryptXmlDllCreateDigest . |
CryptXmlDllCreateDigest | Crée un objet digest pour la méthode spécifiée. |
CryptXmlDllCreateKey | Analyse l’élément KeyValue et crée une API de chiffrement : handle de clé BCrypt de nouvelle génération (CNG) pour vérifier une signature. |
CryptXmlDllDigestData | Place les données dans le digest. |
CryptXmlDllEncodeAlgorithm | Encode les éléments SignatureMethod ou DigestMethod pour les algorithmes agiles avec des paramètres par défaut. |
CryptXmlDllEncodeKeyValue | Encode un élément KeyValue . |
CryptXmlDllFinalizeDigest | Récupère la valeur digest. |
CryptXmlDllGetAlgorithmInfo | Décode l’algorithme XML et retourne des informations sur l’algorithme. |
CryptXmlDllGetInterface | Récupère un pointeur vers les fonctions d’extension de chiffrement pour l’algorithme spécifié. |
CryptXmlDllSignData | Signe les données. |
CryptXmlDllVerifySignature | Vérifie une signature. |
CryptXmlEncode | Encode les données de signature à l’aide de la fonction de rappel de l’enregistreur XML fournie. |
CryptXmlGetAlgorithmInfo | Décode la structure CRYPT_XML_ALGORITHM et retourne des informations sur l’algorithme. |
CryptXmlGetDocContext | Retourne le contexte de document spécifié par le handle fourni. |
CryptXmlGetReference | Retourne l’élément Reference spécifié par le handle fourni. |
CryptXmlGetSignature | Retourne un élément signature XML. |
CryptXmlGetStatus | Retourne une structure CRYPT_XML_STATUS qui contient des informations d’état sur l’objet spécifié par le handle fourni. |
CryptXmlGetTransforms | Retourne des informations sur le moteur de chaîne de transformation par défaut. |
CryptXmlImportPublicKey | Importe la clé publique spécifiée par le handle fourni. |
CryptXmlOpenToEncode | Ouvre une signature numérique XML pour encoder et retourne un handle de l’élément Signature ouvert. Le handle encapsule un contexte de document avec une structure de CRYPT_XML_SIGNATURE unique et reste ouvert jusqu’à ce que la fonction CryptXmlClose soit appelée. |
CryptXmlOpenToDecode | Ouvre une signature numérique XML pour décoder et retourne le handle du contexte de document qui encapsule une structure CRYPT_XML_SIGNATURE . Le contexte de document peut inclure un ou plusieurs éléments Signature . |
CryptXmlSetHMACSecret | Définit le secret HMAC sur le handle avant d’appeler la fonction CryptXmlSign ou CryptXmlVerify . |
CryptXmlSign | Crée une signature de chiffrement d’un élément SignedInfo . |
CryptXmlVerifySignature | Effectue une validation de signature de chiffrement d’un élément SignedInfo . |
PFN_CRYPT_XML_WRITE_CALLBACK | Crée une transformation pour un fournisseur de données spécifié. |
PFN_CRYPT_XML_CREATE_TRANSFORM | Écrit des données XML de chiffrement. |
PFN_CRYPT_XML_DATA_PROVIDER_READ | Lit les données XML de chiffrement. |
PFN_CRYPT_XML_DATA_PROVIDER_CLOSE | Libère le fournisseur de données XML de chiffrement. |
PFN_CRYPT_XML_ENUM_ALG_INFO | Énumère les entrées de CRYPT_XML_ALGORITHM_INFO prédéfinies et inscrites. |
Fonctions de signataire
Fournit des fonctions permettant de signer et d’horodatage des données.
Fonction | Description |
---|---|
SignerFreeSignerContext | Libère une structure SIGNER_CONTEXT allouée par un appel précédent à la fonction SignerSignEx . |
SignError | Appelle la fonction GetLastError et convertit le code de retour en HRESULT. |
SignerSign | Signe le fichier spécifié. |
SignerSignEx | Signe le fichier spécifié et retourne un pointeur vers les données signées. |
SignerSignEx2 | Signe et horodatage le fichier spécifié, ce qui autorise plusieurs signatures imbriquées. |
SignerTimeStamp | Horodatage de l’objet spécifié. Cette fonction prend en charge l’horodatage Authenticode. Pour effectuer l’horodatage X.509 Public Key Infrastructure (RFC 3161), utilisez la fonction SignerTimeStampEx2 . |
SignerTimeStampEx | Horodatage de l’objet spécifié et retourne éventuellement un pointeur vers une structure SIGNER_CONTEXT qui contient un pointeur vers un OBJET BLOB. Cette fonction prend en charge l’horodatage Authenticode. Pour effectuer l’horodatage X.509 Public Key Infrastructure (RFC 3161), utilisez la fonction SignerTimeStampEx2 . |
SignerTimeStampEx2 | Horodatage de l’objet spécifié et retourne éventuellement un pointeur vers une structure SIGNER_CONTEXT qui contient un pointeur vers un OBJET BLOB. Cette fonction peut être utilisée pour effectuer l’infrastructure de clé publique X.509, RFC 3161 conforme aux horodatages. |
SignerTimeStampEx3 | Horodatages de l’objet spécifié et prend en charge la définition d’horodatages sur plusieurs signatures. |
Fonctions de chiffrement de base
Les fonctions de chiffrement de base fournissent les moyens les plus flexibles de développer des applications de chiffrement. Toutes les communications avec un fournisseur de services de chiffrement (fournisseur de solutions Cloud) se produisent via ces fonctions.
Un fournisseur de solutions Cloud est un module indépendant qui effectue toutes les opérations de chiffrement. Au moins une fournisseur de solutions Cloud est requise avec chaque application qui utilise des fonctions de chiffrement. Une seule application peut parfois utiliser plusieurs fournisseur de solutions Cloud.
Si plusieurs fournisseur de solutions Cloud sont utilisés, celui à utiliser peut être spécifié dans les appels de fonction de chiffrement CryptoAPI. Un fournisseur de solutions Cloud, le fournisseur de chiffrement de base Microsoft, est fourni avec CryptoAPI. Cette fournisseur de solutions Cloud est utilisée comme fournisseur par défaut par de nombreuses fonctions CryptoAPI si aucune autre fournisseur de solutions Cloud n’est spécifiée.
Chaque fournisseur de solutions Cloud fournit une implémentation différente de la prise en charge du chiffrement fournie à CryptoAPI. Certains fournissent des algorithmes de chiffrement plus forts; d’autres contiennent des composants matériels, tels que des cartes à puce. En outre, certains fournisseurs de services cloud peuvent parfois communiquer directement avec les utilisateurs, par exemple lorsque des signatures numériques sont effectuées à l’aide de la clé privée de signature de l’utilisateur.
Les fonctions de chiffrement de base se trouvent dans les groupes généraux suivants :
- Fonctions du fournisseur de services
- Fonctions de génération de clés et de Exchange
- Fonctions d’encodage et de décodage d’objets
- Fonctions de chiffrement et de déchiffrement des données
- Fonctions de hachage et de signature numérique
Fonctions du fournisseur de services
Les applications utilisent les fonctions de service suivantes pour connecter et déconnecter un fournisseur de services de chiffrement (fournisseur de solutions Cloud).
Fonction | Description |
---|---|
CryptAcquireContext | [! Important] Acquiert un handle au conteneur de clés de l’utilisateur actuel dans un fournisseur de solutions Cloud particulier. |
CryptContextAddRef | [! Important] Incrémente le nombre de références sur un handle HCRYPTPROV . |
CryptEnumProviders | [! Important] Énumère les fournisseurs sur un ordinateur. |
CryptEnumProviderTypes | [! Important] Énumère les types de fournisseurs pris en charge sur l’ordinateur. |
CryptGetDefaultProvider | [! Important] Détermine la fournisseur de solutions Cloud par défaut pour l’utilisateur actuel ou pour l’ordinateur pour un type de fournisseur spécifié. |
CryptGetProvParam | [! Important] Récupère les paramètres qui régissent les opérations d’un fournisseur de solutions Cloud. |
CryptInstallDefaultContext | [! Important] Installe un contexte HCRYPTPROV précédemment acquis à utiliser comme contexte par défaut. |
CryptReleaseContext | [! Important] Libère le handle acquis par la fonction CryptAcquireContext . |
CryptSetProvider et CryptSetProviderEx | [! Important] Spécifie la fournisseur de solutions Cloud par défaut de l’utilisateur pour un type de fournisseur de solutions Cloud particulier. |
CryptSetProvParam | [! Important] Spécifie les attributs d’un fournisseur de solutions Cloud. |
CryptUninstallDefaultContext | [! Important] Supprime un contexte par défaut précédemment installé par CryptInstallDefaultContext. |
FreeCryptProvFromCertEx | Libère le handle vers un fournisseur de services de chiffrement (fournisseur de solutions Cloud) ou une clé CNG (Cryptography API: Next Generation). |
Fonctions de génération et de Exchange clés
Les fonctions de génération et d’échange de clés échangent des clés avec d’autres utilisateurs et créent, configurent et détruisent des clés de chiffrement.
Fonction | Description |
---|---|
CryptDeriveKey | [! Important] Crée une clé dérivée d’un mot de passe. |
CryptDestroyKey | [! Important] Détruit une clé. |
CryptDuplicateKey | [! Important] Effectue une copie exacte d’une clé, y compris l’état de la clé. |
CryptExportKey | [! Important] Transfère une clé du fournisseur de solutions Cloud dans un objet BLOB de clé dans l’espace mémoire de l’application. |
CryptGenKey | [! Important] Crée une clé aléatoire. |
CryptGenRandom | [! Important] Génère des données aléatoires. |
CryptGetKeyParam | [! Important] Récupère les paramètres d’une clé. |
CryptGetUserKey | [! Important] Obtient un handle pour l’échange de clés ou la clé de signature. |
CryptImportKey | [! Important] Transfère une clé d’un objet blob de clés à un fournisseur de solutions Cloud. |
CryptSetKeyParam | [! Important] Spécifie les paramètres d’une clé. |
Fonctions d’encodage et de décodage d’objets
Il s’agit de fonctions d’encodage et de décodage généralisées. Ils sont utilisés pour encoder et décoder des certificats, des listes de révocation de certificats (CRL), des demandes de certificat et des extensions de certificat.
Fonction | Description |
---|---|
CryptDecodeObject | Décode une structure de type lpszStructType. |
CryptDecodeObjectEx | Décode une structure de type lpszStructType. CryptDecodeObjectEx prend en charge l’option d’allocation de mémoire à passe unique. |
CryptEncodeObject | Encode une structure de type lpszStructType. |
CryptEncodeObjectEx | Encode une structure de type lpszStructType. CryptEncodeObjectEx prend en charge l’option d’allocation de mémoire à passe unique. |
Fonctions de chiffrement et de déchiffrement des données
Les fonctions suivantes prennent en charge les opérations de chiffrement et de déchiffrement. CryptEncrypt et CryptDecrypt nécessitent une clé de chiffrement avant d’être appelées. Pour ce faire, utilisez la fonction CryptGenKey, CryptDeriveKey ou CryptImportKey . L’algorithme de chiffrement est spécifié lors de la création de la clé. CryptSetKeyParam peut définir des paramètres de chiffrement supplémentaires.
Fonction | Description |
---|---|
CryptDecrypt | [! Important] Déchiffre une section de chiffrement en utilisant la clé de chiffrement spécifiée. |
CryptEncrypt | [! Important] Chiffre une section de texte brut à l’aide de la clé de chiffrement spécifiée. |
CryptProtectData | Effectue le chiffrement sur les données d’une structure DATA_BLOB . |
CryptProtectMemory | Chiffre la mémoire pour protéger les informations sensibles. |
CryptUnprotectData | Effectue une vérification de déchiffrement et d’intégrité des données dans un DATA_BLOB. |
CryptUnprotectMemory | Déchiffre la mémoire chiffrée à l’aide de CryptProtectMemory. |
Fonctions de hachage et de signature numérique
Ces fonctions calculent les hachages de données et créent et vérifient également les signatures numériques. Les hachages sont également appelés synthèses de messages.
Fonction | Description |
---|---|
CryptCreateHash | [! Important] Crée un objet de hachage vide. |
CryptDestroyHash | [! Important] Détruit un objet de hachage. |
CryptDuplicateHash | Doublons un objet de hachage. |
CryptGetHashParam | Récupère un paramètre d’objet de hachage. |
CryptHashData | [! Important] Hachage un bloc de données, l’ajout à l’objet de hachage spécifié. |
CryptHashSessionKey | [! Important] Hachage une clé de session, l’ajout à l’objet de hachage spécifié. |
CryptSetHashParam | [! Important] Définit un paramètre d’objet de hachage. |
CryptSignHash | [! Important] Signe l’objet de hachage spécifié. |
CryptUIWizDigitalSign | Affiche un Assistant qui signe numériquement un document ou un OBJET BLOB. |
CryptUIWizFreeDigitalSignContext | Libère un pointeur vers une structure de CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT . |
CryptVerifySignature | [! Important] Vérifie une signature numérique, en fonction d’un handle à l’objet de hachage. |
PFNCFILTERPROC | Filtre les certificats qui apparaissent dans l’Assistant Signature numérique affiché par la fonction CryptUIWizDigitalSign . |
Fonctions du certificat et du magasin de certificats
Les fonctions de magasin de certificats et de certificats gèrent l’utilisation, le stockage et la récupération des certificats, des listes de révocation de certificats (CRL) et des listes d’approbation de certificats (CTL). Ces fonctions sont divisées en groupes suivants :
- Fonctions du magasin de certificats
- Fonctions de maintenance du certificat et du magasin de certificats
- Fonctions de certificat
- Fonctions de liste de révocation de certificats
- Fonctions de liste d’approbation de certificats
- Fonctions de propriété étendues
- MakeCert Functions
Fonctions du magasin de certificats
Un site utilisateur peut, au fil du temps, collecter de nombreux certificats. En règle générale, un site dispose de certificats pour l’utilisateur du site ainsi que d’autres certificats qui décrivent ces individus et entités avec lesquels l’utilisateur communique. Pour chaque entité, il peut y avoir plusieurs certificats. Pour chaque certificat individuel, il doit y avoir une chaîne de vérification des certificats qui fournit une piste à un certificat racine approuvé. Les magasins de certificats et leurs fonctions associées fournissent des fonctionnalités permettant de stocker, récupérer, énumérer, vérifier et utiliser les informations stockées dans les certificats.
Fonction | Description |
---|---|
CertAddStoreToCollection | Ajoute un magasin de certificats frère à un magasin de certificats de collection. |
CertCloseStore | Ferme un handle de magasin de certificats. |
CertControlStore | Permet à une application d’être avertie lorsqu’il existe une différence entre le contenu d’un magasin mis en cache et le contenu du magasin qui est conservé dans le stockage. Il fournit également la désynchronisation du magasin mis en cache, si nécessaire, et fournit un moyen de valider les modifications apportées dans le magasin mis en cache pour conserver le stockage. |
CertDuplicateStore | Doublons un handle de magasin en incrémentant le nombre de références. |
CertEnumPhysicalStore | Énumère les magasins physiques d’un magasin système spécifié. |
CertEnumSystemStore | Énumère tous les magasins système disponibles. |
CertEnumSystemStoreLocation | Énumère tous les emplacements qui ont un magasin système disponible. |
CertGetStoreProperty | Obtient une propriété de magasin. |
CertOpenStore | Ouvre un magasin de certificats à l’aide d’un type de fournisseur de magasin spécifié. |
CertOpenSystemStore | Ouvre un magasin de certificats système basé sur un protocole de sous-système. |
CertRegisterPhysicalStore | Ajoute un magasin physique à une collection de magasins de registre. |
CertRegisterSystemStore | Inscrit un magasin système. |
CertRemoveStoreFromCollection | Supprime un magasin de certificats frère d’un magasin de collections. |
CertSaveStore | Enregistre le magasin de certificats. |
CertSetStoreProperty | Définit une propriété de magasin. |
CertUnregisterPhysicalStore | Supprime un magasin physique d’une collection de magasins système spécifiée. |
CertUnregisterSystemStore | Annule l’inscription d’un magasin système spécifié. |
CryptUIWizExport | Présente un Assistant qui exporte un certificat, une liste d’approbation de certificat (CTL), une liste de révocation de certificats (CRL) ou un magasin de certificats. |
CryptUIWizImport | Présente un Assistant qui importe un certificat, une liste d’approbation de certificat (CTL), une liste de révocation de certificats (CRL) ou un magasin de certificats. |
Fonctions de maintenance du certificat et du magasin de certificats
CryptoAPI fournit un ensemble de fonctions générales de maintenance du certificat et du magasin de certificats.
Fonction | Description |
---|---|
CertAddSerializedElementToStore | Ajoute l’élément de certificat sérialisé ou de liste de révocation de certificats au magasin. |
CertCreateContext | Crée le contexte spécifié à partir des octets codés. Le nouveau contexte n’est pas placé dans un magasin. |
CertEnumSubjectInSortedCTL | Énumère les objets approuvés dans un contexte CTL trié. |
CertFindSubjectInCTL | Recherche l’objet spécifié dans une durée de vie CTL. |
CertFindSubjectInSortedCTL | Recherche l’objet spécifié dans une durée de vie CTL triée. |
OpenPersonalTrustDBDialog et OpenPersonalTrustDBDialogEx | Affiche la boîte de dialogue Certificats . |
Fonctions de certificat
La plupart des fonctions de certificat ont des fonctions associées pour traiter les listes de contrôle d’accès (CRL ) et les listes de contrôle de domaine ( CTL). Pour plus d’informations sur les fonctions CRL et CTL associées, consultez Fonctions de liste de révocation de certificats et fonctions de liste d’approbation de certificat.
Fonction | Description |
---|---|
CertAddCertificateContextToStore | Ajoute un contexte de certificat au magasin de certificats. |
CertAddCertificateLinkToStore | Ajoute un lien dans un magasin de certificats à un contexte de certificat dans un autre magasin. |
CertAddEncodedCertificateToStore | Convertit le certificat encodé en contexte de certificat, puis ajoute le contexte au magasin de certificats. |
CertAddRefServerOcspResponse | Incrémente le nombre de références pour un handle HCERT_SERVER_OCSP_RESPONSE . |
CertAddRefServerOcspResponseContext | Incrémente le nombre de références d’une structure CERT_SERVER_OCSP_RESPONSE_CONTEXT . |
CertCloseServerOcspResponse | Ferme un handle de réponse de serveur OCSP ( Online Certificate Status Protocol ). |
CertCreateCertificateContext | Crée un contexte de certificat à partir d’un certificat encodé. Le contexte créé n’est pas placé dans un magasin de certificats. |
CertCreateSelfSignCertificate | Crée un certificat auto-signé |
CertDeleteCertificateFromStore | Supprime un certificat du magasin de certificats. |
CertDuplicateCertificateContext | Dupliquer un contexte de certificat en incrémentant son nombre de références. |
CertEnumCertificatesInStore | Énumère les contextes de certificat dans le magasin de certificats. |
CertFindCertificateInStore | Recherche le premier ou le contexte de certificat suivant dans le magasin de certificats qui répond à un critère de recherche. |
CertFreeCertificateContext | Libère un contexte de certificat. |
CertGetIssuerCertificateFromStore | Obtient un contexte de certificat à partir du magasin de certificats pour le premier ou le suivant, émetteur du certificat d’objet spécifié. |
CertGetServerOcspResponseContext | Récupère un contexte de réponse ocSP (Non bloquant, time valid online certificate status protocol ) pour le handle spécifié. |
CertGetSubjectCertificateFromStore | Obtient à partir du magasin de certificats le contexte de certificat d’objet, qui est identifié de manière unique par son émetteur et son numéro de série. |
CertGetValidUsages | Retourne un tableau d’utilisations qui se composent de l’intersection des utilisations valides pour tous les certificats dans un tableau de certificats. |
CertOpenServerOcspResponse | Ouvre un handle à une réponse OCSP ( Online Certificate Status Protocol ) associée à une chaîne de certificats de serveur. |
CertRetrieveLogoOrBiometricInfo | Effectue une récupération d’URL du logo ou des informations biométriques spécifiées dans l’extension de certificat szOID_LOGOTYPE_EXT ou szOID_BIOMETRIC_EXT . |
CertSelectCertificate | Présente une boîte de dialogue qui permet à l’utilisateur de sélectionner des certificats dans un ensemble de certificats qui correspondent à un critère donné. |
CertSelectCertificateChains | Récupère les chaînes de certificats en fonction des critères de sélection spécifiés. |
CertSelectionGetSerializedBlob | Fonction d’assistance utilisée pour récupérer un objet BLOB de certificat sérialisé à partir d’une structure CERT_SELECTUI_INPUT . |
CertSerializeCertificateStoreElement | Sérialise le certificat encodé d’un contexte de certificat et une représentation codée de ses propriétés. |
CertVerifySubjectCertificateContext | Effectue les vérifications de vérification activées sur le certificat sujet à l’aide de l’émetteur. |
CryptUIDlgCertMgr | Affiche une boîte de dialogue qui permet à l’utilisateur de gérer les certificats. |
CryptUIDlgSelectCertificate | Affiche une boîte de dialogue qui permet à un utilisateur de sélectionner un certificat. |
CryptUIDlgSelectCertificateFromStore | Affiche une boîte de dialogue qui autorise la sélection d’un certificat à partir d’un magasin spécifié. |
CryptUIDlgViewCertificate | Présente une boîte de dialogue qui affiche un certificat spécifié. |
CryptUIDlgViewContext | Affiche un certificat, une liste de révocation de certificats ou une liste de révocation de certificats. |
CryptUIDlgViewSignerInfo | Affiche une boîte de dialogue qui contient les informations du signataire pour un message signé. |
GetFriendlyNameOfCert | Récupère le nom complet d’un certificat. |
RKeyCloseKeyService | Ferme un handle de service de clé. |
RKeyOpenKeyService | Ouvre un handle de service de clé sur un ordinateur distant. |
RKeyPFXInstall | Installe un certificat sur un ordinateur distant. |
Fonctions de liste de révocation de certificats
Ces fonctions gèrent le stockage et la récupération des listes de révocation de certificats (CRL).
Fonction | Description |
---|---|
CertAddCRLContextToStore | Ajoute un contexte de liste de révocation de certificats au magasin de certificats. |
CertAddCRLLinkToStore | Ajoute un lien dans un magasin à un contexte de liste de révocation de certificats dans un autre magasin. |
CertAddEncodedCRLToStore | Convertit la liste de révocation de certificats en contexte de liste de révocation de certificats, puis ajoute le contexte au magasin de certificats. |
CertCreateCRLContext | Crée un contexte de liste de révocation de certificats à partir d’une liste de révocation de certificats encodée. Le contexte créé n’est pas placé dans un magasin de certificats. |
CertDeleteCRLFromStore | Supprime une liste de révocation de certificats du magasin de certificats. |
CertDuplicateCRLContext | Duplique un contexte de liste de révocation de certificats en incrémentant le nombre de références. |
CertEnumCRLsInStore | Énumère les contextes de liste de révocation de certificats dans un magasin. |
CertFindCertificateInCRL | Recherche le certificat spécifié dans la liste de révocation de certificats (CRL). |
CertFindCRLInStore | Recherche le premier contexte de liste de révocation de certificats dans le magasin de certificats qui correspond à un critère spécifique. |
CertFreeCRLContext | Libère un contexte de liste de révocation de certificats. |
CertGetCRLFromStore | Obtient le premier ou le contexte de liste de révocation de certificats du magasin de certificats pour le certificat émetteur spécifié. |
CertSerializeCRLStoreElement | Sérialise la liste de révocation de certificats encodée du contexte et ses propriétés. |
Fonctions de liste d’approbation de certificats
Ces fonctions gèrent le stockage et la récupération des listes d’approbation de certificat (CTL).
Fonction | Description |
---|---|
CertAddCTLContextToStore | Ajoute un contexte de durée de vie au magasin de certificats. |
CertAddCTLLinkToStore | Ajoute un lien dans un magasin à un contexte de liste de révocation de certificats dans un autre magasin. |
CertAddEncodedCTLToStore | Convertit la durée de vie encodée en contexte de durée de vie, puis ajoute le contexte au magasin de certificats. |
CertCreateCTLContext | Crée un contexte CTL à partir d’une liste d’approbations de certificat encodée. Le contexte créé n’est pas placé dans un magasin de certificats. |
CertDeleteCTLFromStore | Supprime une liste de certificats du magasin de certificats. |
CertDuplicateCTLContext | Duplique un contexte de durée de vie en incrémentant le nombre de références. |
CertEnumCTLsInStore | Énumère les contextes de durée de vie dans le magasin de certificats. |
CertFindCTLInStore | Recherche le premier contexte, ou suivant, CTL dans le magasin de certificats qui correspond à un critère spécifique. |
CertFreeCTLContext | Libère un contexte de durée de vie. |
CertModifyCertificatesToTrust | Modifie l’ensemble de certificats dans une durée de vie donnée. |
CertSerializeCTLStoreElement | Sérialise la durée de vie encodée du contexte CTL et ses propriétés. |
Fonctions de propriété étendues
Les fonctions suivantes fonctionnent avec les propriétés étendues des certificats, des listes de révocation de certificats et des listes de révocation de certificats.
Fonction | Description |
---|---|
CertEnumCertificateContextProperties | Énumère les propriétés du contexte de certificat spécifié. |
CertEnumCRLContextProperties | Énumère les propriétés du contexte de liste de révocation de certificats spécifié. |
CertEnumCTLContextProperties | Énumère les propriétés du contexte CTL spécifié. |
CertGetCertificateContextProperty | Récupère les propriétés du certificat. |
CertGetCRLContextProperty | Récupère les propriétés de la liste de révocation de certificats. |
CertGetCTLContextProperty | Récupère les propriétés CTL. |
CertSetCertificateContextProperty | Définit les propriétés du certificat. |
CertSetCRLContextProperty | Définit les propriétés de liste de révocation de certificats. |
CertSetCTLContextProperty | Définit les propriétés CTL. |
Fonctions MakeCert
Les fonctions suivantes prennent en charge l’outil MakeCert .
Fonction | Description |
---|---|
FreeCryptProvFromCert | Libère le handle sur un fournisseur de services de chiffrement (fournisseur de solutions Cloud) et supprime éventuellement le conteneur temporaire créé par la fonction GetCryptProvFromCert. |
GetCryptProvFromCert | Obtient un handle vers un fournisseur de solutions Cloud et une spécification de clé pour un contexte de certificat. |
PvkFreeCryptProv | Libère le handle sur un fournisseur de solutions Cloud et supprime éventuellement le conteneur temporaire créé par la fonction PvkGetCryptProv. |
PvkGetCryptProv | Obtient un handle vers un fournisseur de solutions Cloud en fonction d’un nom de fichier de clé privée ou d’un nom de conteneur de clés. |
PvkPrivateKeyAcquireContextFromMemory | Crée un conteneur temporaire dans le fournisseur de solutions Cloud et charge une clé privée de la mémoire dans le conteneur. |
PvkPrivateKeySave | Enregistre une clé privée et sa clé publique correspondante dans un fichier spécifié. |
SignError | Appelle GetLastError et convertit le code de retour en HRESULT. |
Fonctions de vérification des certificats
Les certificats sont vérifiés à l’aide de dll ou de chaînes de certificats. Les fonctions sont fournies pour ces deux éléments :
- Fonctions de vérification à l’aide de dll de contrôle
- Fonctions de vérification de la chaîne de certificats
Fonctions de vérification à l’aide de dll de contrôle
Ces fonctions utilisent des dll CTL dans le processus de vérification. Vous trouverez des fonctions supplémentaires pour l’utilisation des listes de contrôle de certification dans les fonctions de liste d’approbation de certificats et les fonctions de propriété étendues.
Les fonctions suivantes utilisent des dll CTL directement pour la vérification.
Fonction | Description |
---|---|
CertVerifyCTLUsage | Vérifie l’utilisation d’une durée de vie CTL. |
CryptMsgEncodeAndSignCTL | Encode et signe une durée de vie CTL en tant que message. |
CryptMsgGetAndVerifySigner | Récupère et vérifie une durée de vie CTL à partir d’un message. |
CryptMsgSignCTL | Signe un message qui contient une durée de vie CTL. |
Fonctions de vérification de la chaîne de certificats
Les chaînes de certificats sont créées pour fournir des informations d’approbation sur des certificats individuels.
Nom de fonction | Description |
---|---|
CertCreateCertificateChainEngine | Crée un moteur de chaîne non-default pour une application. |
CertCreateCTLEntryFromCertificateContextProperties | Crée une entrée CTL dont les attributs sont les propriétés du contexte de certificat. |
CertDuplicateCertificateChain | Duplique une chaîne de certificats en incrémentant le nombre de références de la chaîne et en retournant un pointeur vers la chaîne. |
CertFindChainInStore | Recherche le premier contexte de chaîne de certificats ou suivant dans un magasin. |
CertFreeCertificateChain | Libère une chaîne de certificats en réduisant son nombre de références. |
CertFreeCertificateChainEngine | Libère un moteur de chaîne de certificats nondefault. |
CertFreeCertificateChainList | Libère le tableau des pointeurs vers des contextes de chaîne. |
CertGetCertificateChain | Génère un contexte de chaîne à partir d’un certificat final et retourne à un certificat racine approuvé, le cas échéant. |
CertIsValidCRLForCertificate | Vérifie une liste de révocation de certificats pour déterminer s’il inclurait un certificat spécifique si ce certificat a été révoqué. |
CertSetCertificateContextPropertiesFromCTLEntry | Définit les propriétés sur le contexte de certificat à l’aide des attributs de l’entrée CTL. |
CertVerifyCertificateChainPolicy | Vérifie une chaîne de certificats pour vérifier sa validité, y compris sa conformité avec tous les critères de stratégie de validité spécifiés. |
Fonctions de message
Les fonctions de message CryptoAPI se composent de deux groupes de fonctions : fonctions de message de bas niveau et fonctions de message simplifiées.
Les fonctions de message de bas niveau créent et fonctionnent directement avec les messages PKCS #7. Ces fonctions encodent les données PKCS #7 pour la transmission et décoder les données PKCS #7 reçues. Ils déchiffrent également et vérifient les signatures des messages reçus. Pour obtenir une vue d’ensemble des messages standard et de bas niveau PKCS #7, consultez Messages de bas niveau.
Les fonctions de message simplifiées sont à un niveau supérieur et encapsulent plusieurs fonctions de message de bas niveau et fonctions de certificat dans des fonctions uniques qui effectuent une tâche spécifique de manière spécifique. Ces fonctions réduisent le nombre d’appels de fonction nécessaires pour accomplir une tâche, ce qui simplifie l’utilisation de CryptoAPI. Pour obtenir une vue d’ensemble des messages simplifiés, consultez Messages simplifiés.
- Fonctions de message de bas niveau
- Fonctions de message simplifiées
Fonctions de message de bas niveau
Les fonctions de message de bas niveau fournissent les fonctionnalités nécessaires pour encoder les données pour la transmission et décoder les messages PKCS #7 reçus. La fonctionnalité est également fournie pour déchiffrer et vérifier les signatures des messages reçus. L’utilisation de ces fonctions de message de bas niveau dans la plupart des applications n’est pas recommandée. Pour la plupart des applications, l’utilisation de fonctions de message simplifiées, qui encapsulent plusieurs fonctions de message de bas niveau dans un seul appel de fonction, est préférée.
Fonction | Description |
---|---|
CryptMsgCalculateEncodedLength | Calcule la longueur d’un message de chiffrement codé. |
CryptMsgClose | Ferme un handle d’un message de chiffrement. |
CryptMsgControl | Effectue une fonction de contrôle spéciale après la dernière CryptMsgUpdate d’un message de chiffrement codé ou décodé. |
CryptMsgCountersign | Contresigne une signature déjà existante dans un message. |
CryptMsgCountersignEncoded | Contresigne une signature déjà existante (encodé SignInfo, tel que défini par PKCS #7). |
CryptMsgDuplicate | Dupliquer un handle de message de chiffrement en incrémentant le nombre de références. Le nombre de références suit la durée de vie du message. |
CryptMsgGetParam | Acquiert un paramètre après l’encodage ou le décodage d’un message de chiffrement. |
CryptMsgOpenToDecode | Ouvre un message de chiffrement pour le décodage. |
CryptMsgOpenToEncode | Ouvre un message de chiffrement pour l’encodage. |
CryptMsgUpdate | Met à jour le contenu d’un message de chiffrement. |
CryptMsgVerifyCountersignatureEncoded | Vérifie une contre-signature en termes de structure SignerInfo (telle que définie par PKCS #7). |
CryptMsgVerifyCountersignatureEncodedEx | Vérifie que le paramètre pbSignerInfoCounterSignature contient le hachage chiffré du champ encryptedDigest de la structure de paramètres pbSignerInfo . |
Fonctions de message simplifiées
les fonctions de message simplifiées encapsulent les fonctions de message de bas niveau dans une seule fonction pour accomplir une tâche spécifiée.
Fonction | Description |
---|---|
CryptDecodeMessage | Décode un message de chiffrement. |
CryptDecryptAndVerifyMessageSignature | Déchiffre le message spécifié et vérifie le signataire. |
CryptDecryptMessage | Déchiffre le message spécifié. |
CryptEncryptMessage | Chiffre le message du destinataire ou des destinataires. |
CryptGetMessageCertificates | Retourne le magasin de certificats qui contient les certificats et listes de révocation de certificats du message. |
CryptGetMessageSignerCount | Retourne le nombre de signataires dans le message signé. |
CryptHashMessage | Crée un hachage du message. |
CryptSignAndEncryptMessage | Signe le message, puis le chiffre pour le destinataire ou les destinataires. |
CryptSignMessageWithKey | Signe un message à l’aide d’une clé privée fournisseur de solutions Cloud spécifiée dans les paramètres de la fonction. |
CryptSignMessage | Signe le message. |
CryptVerifyDetachedMessageHash | Vérifie un message haché qui contient un hachage détaché. |
CryptVerifyDetachedMessageSignature | Vérifie un message signé qui contient une signature ou des signatures détachées. |
CryptVerifyMessageHash | Vérifie un message haché. |
CryptVerifyMessageSignature | Vérifie un message signé. |
CryptVerifyMessageSignatureWithKey | Vérifie la signature d’un message signé à l’aide des informations de clé publique spécifiées. |
Fonctions auxiliaires
Les fonctions auxiliaires sont regroupées comme suit :
- fonctions Gestion des données
- Fonctions de conversion de données
- Fonctions d’utilisation de clés améliorées
- Fonctions d’identificateur de clé
- Fonctions de prise en charge d’OID
- Fonctions de récupération d’objets distants
- Fonctions PFX
fonctions Gestion des données
Les fonctions CryptoAPI suivantes gèrent les données et les certificats.
Fonction | Description |
---|---|
CertCompareCertificate | Compare deux certificats pour déterminer s’ils sont identiques. |
CertCompareCertificateName | Compare deux noms de certificat pour déterminer s’ils sont identiques. |
CertCompareIntegerBlob | Compare deux objets blob entiers. |
CertComparePublicKeyInfo | Compare deux clés publiques pour déterminer si elles sont identiques. |
CertFindAttribute | Recherche le premier attribut identifié par son identificateur d’objet (OID). |
CertFindExtension | Recherche la première extension identifiée par son OID. |
CertFindRDNAttr | Recherche le premier attribut RDN identifié par son OID dans la liste des noms uniques relatifs. |
CertGetIntendedKeyUsage | Acquiert les octets d’utilisation de clé prévus à partir du certificat. |
CertGetPublicKeyLength | Acquiert la longueur de bits de la clé publique/privée à partir de l’objet blob de clé publique. |
CertIsRDNAttrsInCertificateName | Compare les attributs du nom du certificat avec le CERT_RDN spécifié pour déterminer si tous les attributs y sont inclus. |
CertIsStrongHashToSign | Détermine si l’algorithme de hachage spécifié et la clé publique dans le certificat de signature peuvent être utilisés pour effectuer une signature forte. |
CertVerifyCRLRevocation | Vérifie que le certificat d’objet ne figure pas dans la liste de révocation de certificats (CRL). |
CertVerifyCRLTimeValidity | Vérifie la validité d’une liste de révocation de certificats. |
CertVerifyRevocation | Vérifie que le certificat d’objet n’est pas sur la liste de révocation de certificats. |
CertVerifyTimeValidity | Vérifie la validité de l’heure d’un certificat. |
CertVerifyValidityNesting | Vérifie que la validité de l’heure de l’objet est imbriquée dans la validité de l’émetteur. |
CryptExportPKCS8 | Cette fonction est remplacée par la fonction CryptExportPKCS8Ex . |
CryptExportPKCS8Ex | Exporte la clé privée au format PKCS #8. |
CryptExportPublicKeyInfo | Exporte les informations de clé publique associées à la clé privée correspondante du fournisseur. |
CryptExportPublicKeyInfoEx | Exporte les informations de clé publique associées à la clé privée correspondante du fournisseur. Cette fonction diffère de CryptExportPublicKeyInfo, car l’utilisateur peut spécifier l’algorithme de clé publique, remplaçant ainsi la valeur par défaut fournie par le fournisseur de solutions Cloud. |
CryptExportPublicKeyInfoFromBCryptKeyHandle | Exporte les informations de clé publique associées à la clé privée correspondante d’un fournisseur. |
CryptFindCertificateKeyProvInfo | Énumère les fournisseurs de chiffrement et leurs conteneurs de clés pour rechercher la clé privée qui correspond à la clé publique d’un certificat. |
CryptFindLocalizedName | Recherche le nom localisé d’un nom spécifié, par exemple, recherche le nom localisé pour le nom de magasin du système racine. |
CryptHashCertificate | [! Important] Hachage le contenu encodé. |
CryptHashCertificate2 | Hachage un bloc de données à l’aide d’une API de chiffrement : fournisseur de hachage CNG (Next Generation). |
CryptHashPublicKeyInfo | [! Important] Calcule le hachage des informations de clé publique encodées. |
CryptHashToBeSigned | [! Important] Calcule le hachage des informations « à signer » dans le contenu signé codé (CERT_SIGNED_CONTENT_INFO). |
CryptImportPKCS8 | [! Important] Importe la clé privée au format PKCS #8 vers un fournisseur de services de chiffrement (fournisseur de solutions Cloud). |
CryptImportPublicKeyInfo | [! Important] Convertit et importe des informations sur la clé publique en fournisseur et retourne un handle de la clé publique. |
CryptImportPublicKeyInfoEx | [! Important] Convertit et importe les informations de clé publique dans le fournisseur et retourne un handle de la clé publique. Des paramètres supplémentaires (sur ceux spécifiés par CryptImportPublicKeyInfo) qui peuvent être utilisés pour remplacer les valeurs par défaut sont fournis pour compléter CERT_PUBLIC_KEY_INFO. |
CryptImportPublicKeyInfoEx2 | Importe une clé publique dans un fournisseur asymétrique CNG. |
CryptMemAlloc | Alloue de la mémoire pour une mémoire tampon. Cette mémoire est utilisée par toutes les fonctions Crypt32.lib qui retournent des mémoires tampons allouées. |
CryptMemFree | Libère la mémoire allouée par CryptMemAlloc ou CryptMemRealloc. |
CryptMemRealloc | Libère la mémoire actuellement allouée pour une mémoire tampon et alloue de la mémoire pour une nouvelle mémoire tampon. |
CryptQueryObject | [! Important] Récupère des informations sur le contenu d’un objet BLOB ou d’un fichier. |
CryptSignAndEncodeCertificate | Encode les informations « à signer », signe ces informations encodées et encode les informations signées, encodées. |
CryptSignCertificate | Signe les informations « à signer » dans le contenu codé et signé. |
CryptSIPAddProvider | Ajoute un package d’interface d’objet (SIP). |
CryptSIPCreateIndirectData | Retourne une structure SIP_INDIRECT_DATA qui contient un hachage de la structure de SIP_SUBJECTINFO fournie, de l’algorithme de synthèse et d’un attribut d’encodage. Le hachage peut être utilisé comme référence indirecte aux données. |
CryptSIPGetCaps | Récupère les fonctionnalités d’un SIP. |
CryptSIPGetSignedDataMsg | Récupère une signature Authenticode à partir du fichier. |
CryptSIPLoad | Charge la bibliothèque de liens dynamiques qui implémente un package d’interface objet et affecte des fonctions d’exportation de bibliothèque appropriées à une structure SIP_DISPATCH_INFO . |
CryptSIPPutSignedDataMsg | Stocke une signature Authenticode dans le fichier cible. |
CryptSIPRemoveProvider | Supprime un SIP ajouté par un appel précédent à la fonction CryptSIPAddProvider . |
CryptSIPRemoveSignedDataMsg | Supprime une signature Authenticode spécifiée. |
CryptSIPRetrieveSubjectGuid | Récupère un GUID en fonction des informations d’en-tête dans un fichier spécifié. |
CryptSIPRetrieveSubjectGuidForCatalogFile | Récupère le GUID de l’objet associé au fichier spécifié. |
CryptSIPVerifyIndirectData | Valide les données de hachage indirectes par rapport à l’objet fourni. |
CryptUpdateProtectedState | Migre les clés principales de l’utilisateur actuel une fois l’identificateur de sécurité (SID) de l’utilisateur modifié. |
CryptVerifyCertificateSignature | Vérifie la signature d’un certificat d’objet ou d’une liste de révocation de certificats à l’aide des informations de clé publique. |
CryptVerifyCertificateSignatureEx | Version étendue de CryptVerifyCertificateSignature. |
GetEncSChannel | Stocke le contenu de la DLL Schannel chiffrée en mémoire. |
pCryptSIPGetCaps | Implémenté par un SIP pour signaler des fonctionnalités. |
Fonctions de conversion de données
Les fonctions CryptoAPI suivantes convertissent les membres de la structure de certificats en différents formulaires.
Fonction | Description |
---|---|
CertAlgIdToOID | Convertit un identificateur d’algorithme CryptoAPI (ALG_ID) en une chaîne d’identificateur d’objet ASN.1 (Abstract Syntax Notation One) (OID). |
CertGetNameString | Acquiert le nom de l’objet ou de l’émetteur à partir d’un certificat et le convertit en chaîne de caractères terminée par null. |
CertNameToStr | Convertit un objet BLOB de nom de certificat en chaîne sans fin. |
CertOIDToAlgId | Convertit la chaîne d’identificateur d’objet ASN.1 en identificateur d’algorithme fournisseur de solutions Cloud. |
CertRDNValueToStr | Convertit une valeur de nom en chaîne terminée par null. |
CertStrToName | Convertit une chaîne X.500 terminée par null en un nom de certificat codé. |
CryptBinaryToString | Convertit une séquence binaire en chaîne mise en forme. |
CryptFormatObject | Met en forme les données encodées et retourne une chaîne Unicode. |
CryptStringToBinary | Convertit une chaîne mise en forme en séquence binaire. |
Fonctions d’utilisation de clés améliorées
Les fonctions suivantes traitent de l’extension d’utilisation améliorée des clés (EKU) et de la propriété étendue EKU des certificats. L’extension EKU et la propriété étendue spécifient et limitent les utilisations valides d’un certificat. Les extensions font partie du certificat lui-même. Ils sont définis par l’émetteur du certificat et sont en lecture seule. Les propriétés étendues de certificat sont des valeurs associées à un certificat qui peut être défini dans une application.
Fonction | Description |
---|---|
CertAddEnhancedKeyUsageIdentifier | Ajoute un identificateur d’utilisation à la propriété EKU d’un certificat. |
CertGetEnhancedKeyUsage | Acquiert, à partir d’un certificat, des informations sur l’extension ou la propriété de la référence EKU. |
CertRemoveEnhancedKeyUsageIdentifier | Supprime l’identificateur d’utilisation de la propriété étendue EKU d’un certificat. |
CertSetEnhancedKeyUsage | Définit la propriété EKU d’un certificat. |
Fonctions d’identificateur de clé
Les fonctions d’identificateur de clé permettent à l’utilisateur de créer, définir, récupérer ou localiser un identificateur de clé ou ses propriétés.
Un identificateur de clé est l’identificateur unique d’une paire de clés publique/privée. Il peut s’agir d’un identificateur unique, mais il s’agit généralement du hachage SHA1 de 20 octets d’une structure de CERT_PUBLIC_KEY_INFO encodée. Un identificateur de clé peut être obtenu via le CERT_KEY_IDENTIFIER_PROP_ID du certificat. L’identificateur de clé permet d’utiliser cette paire de clés pour chiffrer ou déchiffrer des messages sans utiliser le certificat.
Les identificateurs de clé ne sont pas associés à des listes de révocation de certificats ou des listes CTL.
Un identificateur de clé peut avoir les mêmes propriétés qu’un contexte de certificat. Pour plus d’informations, consultez CertCreateContext.
Fonction | Description |
---|---|
CryptCreateKeyIdentifierFromCSP | [! Important] Crée un identificateur de clé à partir de l’objet BLOB de clé publique d’un fournisseur de solutions Cloud. |
CryptEnumKeyIdentifierProperties | Énumère les identificateurs de clé et leurs propriétés. |
CryptGetKeyIdentifierProperty | [! Important] Acquiert une propriété spécifique à partir d’un identificateur de clé spécifié. |
CryptSetKeyIdentifierProperty | [! Important] Définit une propriété d’un identificateur de clé spécifié. |
Fonctions de prise en charge d’OID
Ces fonctions fournissent la prise en charge de l’identificateur d’objet (OID). Ces fonctions installent, inscrivent et distribuent à OID et à des fonctions spécifiques au type d’encodage.
Les fonctions CryptoAPI suivantes utilisent ces fonctions de prise en charge d’OID :
- CryptEncodeObject
- CryptEncodeObjectEx
- CryptDecodeObject
- CryptDecodeObjectEx
- CertVerifyRevocation
- CertOpenStore
Pour obtenir une vue d’ensemble de ce processus, consultez Extension des fonctionnalités CryptoAPI.
Les fonctions suivantes fonctionnent avec les OID.
Fonction | Description |
---|---|
CryptEnumOIDFunction | Énumère les fonctions OID inscrites identifiées par leur type d’encodage, leur nom de fonction et leur OID. |
CryptEnumOIDInfo | Énumère les informations OID inscrites identifiées par leur groupe et appelle pfnEnumOIDInfo pour les correspondances. |
CryptFindOIDInfo | Utilise la clé et le groupe spécifiés pour rechercher des informations OID. |
CryptFreeOIDFunctionAddress | Libère le nombre de handles qui a été incrémenté et retourné par CryptGetOIDFunctionAddress ou CryptGetDefaultOIDFunctionAddress. |
CryptGetDefaultOIDDllList | Acquiert la liste des entrées DLL par défaut inscrites pour le jeu de fonctions et le type d’encodage spécifiés. |
CryptGetDefaultOIDFunctionAddress | Acquiert la première ou la fonction par défaut installée suivante, ou charge la DLL qui contient la fonction par défaut. |
CryptGetOIDFunctionAddress | Recherche dans la liste des fonctions installées un type d’encodage et une correspondance OID. Si une correspondance est introuvable, le Registre est recherché pour obtenir une correspondance. |
CryptGetOIDFunctionValue | Acquiert la valeur du type d’encodage, du nom de fonction, de l’OID et du nom de valeur spécifiés. |
CryptInitOIDFunctionSet | Initialise et retourne un handle du jeu de fonctions OID identifié par le nom de la fonction fourni. |
CryptInstallOIDFunctionAddress | Installe un ensemble d’adresses de fonction OID pouvant être appelées. |
CryptRegisterDefaultOIDFunction | Inscrit la DLL qui contient la fonction par défaut à appeler pour le type d’encodage et le nom de la fonction spécifiés. |
CryptRegisterOIDFunction | Inscrit la DLL qui contient la fonction à appeler pour le type d’encodage, le nom de la fonction et l’OID spécifiés. |
CryptRegisterOIDInfo | Inscrit les informations OID spécifiées dans la structure CRYPT_OID_INFO , en les rendant persistantes dans le Registre. |
CryptSetOIDFunctionValue | Définit la valeur du type d’encodage, du nom de fonction, de l’OID et du nom de valeur spécifiés. |
CryptUnregisterDefaultOIDFunction | Supprime l’inscription de la DLL qui contient la fonction par défaut à appeler pour le type d’encodage et le nom de la fonction spécifiés. |
CryptUnregisterOIDFunction | Supprime l’inscription de la DLL qui contient la fonction à appeler pour le type d’encodage, le nom de la fonction et l’OID spécifiés. |
CryptUnregisterOIDInfo | Supprime l’inscription pour les informations OID spécifiées. |
Fonctions de récupération d’objets distants
Les fonctions suivantes permettent à l’utilisateur de récupérer un objet PKI (Public Key Infrastructure), d’acquérir l’URL d’un certificat, de la CTL ou de la liste de révocation de certificats ou d’extraire une URL d’un objet.
Fonction | Description |
---|---|
CryptGetObjectUrl | Acquiert l’URL de l’objet distant à partir d’un certificat, d’une liste de révocation de certificats ou d’une liste de révocation de certificats. |
CryptRetrieveObjectByUrl | Récupère l’objet PKI à partir d’un emplacement spécifié par une URL. |
Fonctions PFX
Les fonctions suivantes prennent en charge les objets blob au format Informations personnelles Exchange (PFX).
Fonction | Description |
---|---|
PFXExportCertStore | Les exportations à partir du certificat référencé stockent les certificats et, le cas échéant, leurs clés privées associées. |
PFXExportCertStoreEx | Les exportations à partir du certificat référencé stockent les certificats et, le cas échéant, leurs clés privées associées. |
PFXImportCertStore | Importe un objet BLOB PFX et retourne le handle d’un magasin qui contient des certificats et toutes les clés privées associées. |
PFXIsPFXBlob | Tente de décoder la couche externe d’un objet BLOB en tant que paquet PFX. |
PFXVerifyPassword | Tente de décoder la couche externe d’un objet BLOB en tant que paquet PFX et de la déchiffrer avec le mot de passe donné. |
Fonctions de sauvegarde et de restauration des services de certificats
Les services de certificats incluent des fonctions de sauvegarde et de restauration de la base de données Des services de certificats. Ces fonctions de sauvegarde et de restauration des services de certificats sont contenues dans Certadm.dll. Contrairement aux autres éléments d’API associés aux services de certificats, ces fonctions ne sont pas encapsulées dans un objet qui peut être utilisé pour appeler des méthodes de classe. Au lieu de cela, les API de sauvegarde et de restauration sont appelées en chargeant d’abord la bibliothèque Certadm.dll en mémoire en appelant LoadLibrary , puis en déterminant l’adresse des fonctions en appelant GetProcAddress. Une fois que vous avez terminé d’appeler les fonctions de sauvegarde et de restauration des services de certificats, appelez FreeLibrary pour libérer Certadm.dll ressources de la mémoire.
Notes
Les fonctions de sauvegarde et de restauration fournies par Certadm.dll ne sauvegardent pas ou ne restaurent pas les clés privées du service de certificats. Pour plus d’informations sur la sauvegarde des clés privées des services de certificats, consultez Sauvegarde et restauration de la clé privée des services de certificats.
Pour appeler les fonctions de sauvegarde et de restauration, vous devez disposer de privilèges de sauvegarde et de restauration. Pour plus d’informations, consultez Définition des privilèges de sauvegarde et de restauration.
Notes
Si CoInitializeEx a été précédemment appelé dans le même thread utilisé pour appeler les API de sauvegarde et de restauration des services de certificats, l’indicateur COINIT_APARTMENTTHREADED doit avoir été passé à CoInitializeEx. Autrement dit, lorsque vous utilisez le même thread, vous ne pouvez pas appeler l’API de sauvegarde et de restauration des services de certificats si le thread a précédemment passé dans l’indicateur COINIT_MULTITHREADED dans un appel à CoInitializeEx.
Les API de sauvegarde des services de certificats sont définies dans Certbcli.h. Toutefois, lorsque vous créez votre programme, utilisez Certsrv.h comme fichier include.
Les API suivantes sont exportées par Certadm.dll.
Fonction | Description |
---|---|
CertSrvBackupClose | Ferme un fichier ouvert. |
CertSrvBackupEnd | Termine une session de sauvegarde. |
CertSrvBackupFree | Libère une mémoire tampon allouée par les API de sauvegarde et de restauration. |
CertSrvBackupGetBackupLogs | Retourne la liste des fichiers journaux qui doivent être sauvegardés. |
CertSrvBackupGetDatabaseNames | Retourne une liste de fichiers de base de données qui doivent être sauvegardés. |
CertSrvBackupGetDynamicFileList | Récupère la liste des noms de fichiers dynamiques des services de certificats qui doivent être sauvegardés pour le contexte de sauvegarde donné. |
CertSrvBackupOpenFile | Ouvre un fichier en préparation de sa sauvegarde. |
CertSrvBackupPrepare | Prépare la base de données pour la sauvegarde en ligne. |
CertSrvBackupRead | Lit le contenu d’un fichier ouvert. |
CertSrvBackupTruncateLogs | Tronque les fichiers journaux. |
CertSrvIsServerOnline | Détermine si un serveur Certificate Services est en ligne (en cours d’exécution active). |
CertSrvRestoreEnd | Termine une session de restauration. |
CertSrvRestoreGetDatabaseLocations | Récupère les emplacements de base de données (utilisés pour les scénarios de sauvegarde et de restauration). |
CertSrvRestorePrepare | Commence une session de restauration. |
CertSrvRestoreRegister | Inscrit une opération de restauration. |
CertSrvRestoreRegisterComplete | Termine une opération de restauration précédemment inscrite. |
CertSrvRestoreRegisterThroughFile | Inscrit une opération de restauration. |
CertSrvServerControl | Envoie une commande de contrôle à l’instance des services de certificats. |
Fonctions de rappel
Les fonctions de rappel de cette section sont utilisées pour inscrire ou installer des fournisseurs de magasins de certificats définis par l’application et pour fournir des fonctionnalités associées via des fonctions de rappel. Les fonctions de rappel sont implémentées par une application et sont appelées par les fonctions CryptoAPI . Les fonctions de rappel permettent à l’application de contrôler, en partie, la façon dont les fonctions CryptoAPI manipulent des données.
Fonction de rappel | Utilisation |
---|---|
CertChainFindByIssuerCallback | Fonction de rappel définie par l’application qui permet à l’application de filtrer les certificats qui peuvent être ajoutés à la chaîne de certificats. |
CertDllOpenStoreProv | Définit la fonction d’ouverture du fournisseur de magasin. |
CertEnumPhysicalStoreCallback | Fonction de rappel utilisée par la fonction CertEnumPhysicalStore pour mettre en forme et présenter des informations sur chaque magasin physique trouvé. |
CertEnumSystemStoreCallback | Fonction de rappel utilisée par la fonction CertEnumSystemStore pour mettre en forme et présenter des informations sur chaque magasin physique trouvé. |
CertEnumSystemStoreLocationCallback | Fonction de rappel utilisée par la fonction CertEnumSystemStoreLocation pour mettre en forme et présenter des informations sur chaque magasin physique trouvé. |
CertStoreProvCloseCallback | Détermine ce qui se passe quand le nombre de références d’un magasin ouvert devient égal à zéro. |
CertStoreProvControl | Permet à une application d’être avertie lorsqu’il existe une différence entre le contenu d’un magasin mis en cache en cours d’utilisation et le contenu de ce magasin, car il est conservé dans le stockage. |
CertStoreProvDeleteCertCallback | Détermine les actions à entreprendre avant la suppression d’un certificat d’un magasin de certificats. |
CertStoreProvDeleteCRLCallback | Détermine les actions à entreprendre avant la suppression d’une liste de révocation de certificats (CRL) d’un magasin de certificats. |
CertStoreProvDeleteCTL | Détermine si une durée de vie peut être supprimée. |
CertStoreProvFindCert | Recherche le premier certificat, ou suivant, dans un magasin qui correspond aux critères spécifiés. |
CertStoreProvFindCRL | Recherche la première liste de révocation de certificats dans un magasin qui correspond aux critères spécifiés. |
CertStoreProvFindCTL | Recherche la première ou la durée de vie suivante dans un magasin qui correspond aux critères spécifiés. |
CertStoreProvFreeFindCert | Libère un contexte de certificat précédemment trouvé. |
CertStoreProvFreeFindCRL | Libère un contexte de liste de révocation de certificats précédemment trouvé. |
CertStoreProvFreeFindCTL | Libère un contexte de durée de vie CTL précédemment trouvé. |
CertStoreProvGetCertProperty | Récupère une propriété spécifiée d’un certificat. |
CertStoreProvGetCRLProperty | Récupère une propriété spécifiée d’une liste de révocation de certificats. |
CertStoreProvGetCTLProperty | Récupère une propriété spécifiée d’une durée de vie CTL. |
CertStoreProvReadCertCallback | Actuellement non utilisé, mais peut être exporté vers les fournisseurs de services cloud futurs. |
CertStoreProvReadCRLCallback | Actuellement non utilisé, mais peut être exporté vers les fournisseurs de services cloud futurs. |
CertStoreProvReadCTL | Lisez la copie du contexte de la durée de vie du fournisseur et, s’il existe, créez un nouveau contexte de durée de vie. |
CertStoreProvSetCertPropertyCallback | Détermine les actions à effectuer avant un appel à CertSetCertificateContextProperty ou CertGetCertificateContextProperty. |
CertStoreProvSetCRLPropertyCallback | Détermine les actions à effectuer avant un appel à CertSetCRLContextProperty ou CertGetCRLContextProperty. |
CertStoreProvSetCTLProperty | Détermine si une propriété peut être définie sur une durée de vie CTL. |
CertStoreProvWriteCertCallback | Détermine les actions à effectuer avant d’ajouter un certificat à un magasin. |
CertStoreProvWriteCRLCallback | Détermine les actions à effectuer avant d’ajouter une liste de révocation de certificats à un magasin. |
CertStoreProvWriteCTL | Détermine si une durée de vie CTL peut être ajoutée au magasin. |
CRYPT_ENUM_KEYID_PROP | Fonction de rappel utilisée par la fonction CryptEnumKeyIdentifierProperties . |
CRYPT_ENUM_OID_FUNCTION | Fonction de rappel utilisée par la fonction CryptEnumOIDFunction . |
CRYPT_ENUM_OID_INFO | Fonction de rappel utilisée par la fonction CryptEnumOIDInfo . |
CryptGetSignerCertificateCallback | Fonction de rappel utilisée avec la structure CRYPT_VERIFY_MESSAGE_PARA pour obtenir et vérifier le certificat d’un signataire de message. |
PCRYPT_DECRYPT_PRIVATE_KEY_FUNC | Fonction de rappel utilisée par la fonction CryptImportPKCS8 . |
PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC | Fonction de rappel utilisée lors de la création de la structure CRYPT_ENCRYPTED_PRIVATE_KEY_INFO . |
PCRYPT_RESOLVE_HCRYPTPROV_FUNC | Fonction de rappel utilisée par la fonction CryptImportPKCS8 . |
PFN_CDF_PARSE_ERROR_CALLBACK | Fonction définie par l’utilisateur appelée erreurs de fonction de définition de catalogue lors de l’analyse d’un fichier de définition de catalogue (CDF). |
PFN_CERT_CREATE_CONTEXT_SORT_FUNC | Appelé pour chaque entrée de contexte triée lorsqu’un contexte est créé. |
PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY | Fonction installable d’identificateur d’objet CNG (OID) pour l’importation d’une clé de chiffrement de contenu déjà déchiffrée (CEK). |
PFN_CMSG_CNG_IMPORT_KEY_AGREE | Importe une clé de chiffrement de contenu pour un destinataire de transport de clé d’un message enveloppe. |
PFN_CMSG_CNG_IMPORT_KEY_TRANS | Fonction installable CNG OID pour l’importation et le déchiffrement d’un destinataire de clés, chiffré, chiffré, clé de chiffrement de contenu (CEK). |
PFN_CMSG_EXPORT_KEY_AGREE | Chiffre et exporte la clé de chiffrement de contenu pour un destinataire d’un contrat clé d’un message enveloppe. |
PFN_CMSG_EXPORT_KEY_TRANS | Chiffre et exporte la clé de chiffrement de contenu pour un destinataire de transport de clé d’un message enveloppe. |
PFN_CMSG_EXPORT_MAIL_LIST | Chiffre et exporte la clé de chiffrement de contenu pour un destinataire de liste de diffusion d’un message enveloppe. |
PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY | Génère la clé symétrique utilisée pour chiffrer le contenu d’un message enveloppe. |
PFN_CMSG_IMPORT_KEY_AGREE | Importe une clé de chiffrement de contenu pour un destinataire de transport de clé d’un message enveloppe. |
PFN_CMSG_IMPORT_KEY_TRANS | Importe une clé de chiffrement de contenu pour un destinataire de transport de clé d’un message enveloppe. |
PFN_CMSG_IMPORT_MAIL_LIST | Importe une clé de chiffrement de contenu pour un destinataire de transport de clé d’un message enveloppe. |
PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC | Appelé par CryptExportPublicKeyInfoEx pour exporter un objet BLOB de clé publique et l’encoder. |
PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC | Appelé pour décoder et renvoyer l’identificateur de l’algorithme de hachage et éventuellement les paramètres de signature. |
PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC | Appelé pour signer et encoder un hachage calculé. |
PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC | Appelé pour déchiffrer une signature encodée et la comparer à un hachage calculé. |
PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC | Appelé par CryptImportPublicKeyInfoEx2 pour décoder l’identificateur d’algorithme de clé publique , charger le fournisseur d’algorithmes et importer la paire de clés. |
PFNCCERTDISPLAYPROC | Fonction de rappel définie par l’utilisateur qui permet à l’appelant de la fonction CryptUIDlgSelectCertificate de gérer l’affichage des certificats que l’utilisateur sélectionne pour afficher. |
PFNCMFILTERPROC | Filtre chaque certificat pour déterminer s’il apparaît dans la boîte de dialogue de sélection de certificat affichée par la fonction CertSelectCertificate . |
PFNCMHOOKPROC | Appelé avant que les messages soient traités par la boîte de dialogue de sélection de certificat produite par la fonction CertSelectCertificate . |
Fonctions de définition de catalogue
Ces fonctions sont utilisées pour créer un catalogue. Toutes ces fonctions sont appelées par MakeCat.
Fonction | Description |
---|---|
CryptCATCDFClose | Ferme un fichier de définition de catalogue et libère la mémoire de la structure CRYPTCATCDF correspondante. |
CryptCATCDFEnumAttributesWithCDFTag | Énumère les attributs des fichiers membres dans la section CatalogFiles d’un CDF. |
CryptCATCDFEnumCatAttributes | Énumère les attributs au niveau du catalogue dans la section CatalogHeader d’un CDF. |
CryptCATCDFEnumMembersByCDFTagEx | Énumère les membres de fichier individuels dans la section CatalogFiles d’un CDF. |
CryptCATCDFOpen | Ouvre un CDF existant pour la lecture et initialise une structure CRYPTCATCDF . |
Fonctions de catalogue
Ces fonctions sont utilisées pour gérer un catalogue.
Fonction | Description |
---|---|
CryptCATAdminAcquireContext | Acquiert un handle dans un contexte d’administrateur de catalogue. Ce handle peut être utilisé par les appels suivants aux fonctions CryptCATAdminAddCatalog, CryptCATAdminEnumCatalogFromHash et CryptCATAdminRemoveCatalog . |
CryptCATAdminAcquireContext2 | Acquiert un handle dans un contexte d’administrateur de catalogue pour un algorithme de hachage et une stratégie de hachage donnés. |
CryptCATAdminAddCatalog | Ajoute un catalogue à la base de données du catalogue. |
CryptCATAdminCalcHashFromFileHandle | Calcule le hachage d’un fichier. |
CryptCATAdminCalcHashFromFileHandle2 | Calcule le hachage d’un fichier à l’aide de l’algorithme spécifié. |
CryptCATAdminEnumCatalogFromHash | Énumère les catalogues qui contiennent un hachage spécifié. |
CryptCATAdminReleaseCatalogContext | Libère un handle dans un contexte de catalogue précédemment retourné par la fonction CryptCATAdminAddCatalog . |
CryptCATAdminReleaseContext | Libère le handle précédemment affecté par la fonction CryptCATAdminAcquireContext . |
CryptCATAdminRemoveCatalog | Supprime un fichier catalogue et supprime l’entrée de ce catalogue de la base de données de catalogue Windows. |
CryptCATAdminResolveCatalogPath | Récupère le chemin complet du catalogue spécifié. |
CryptCATCatalogInfoFromContext | Récupère les informations de catalogue à partir d’un contexte de catalogue spécifié. |
CryptCATClose | Ferme un handle de catalogue ouvert précédemment par la fonction CryptCATOpen . |
CryptCATEnumerateAttr | Énumère les attributs associés à un membre d’un catalogue. |
CryptCATEnumerateCatAttr | Énumère les attributs associés à un catalogue. |
CryptCATEnumerateMember | Énumère les membres d’un catalogue. |
CryptCATGetAttrInfo | Récupère des informations sur un attribut d’un membre d’un catalogue. |
CryptCATGetMemberInfo | Récupère les informations de membre à partir du PKCS #7 du catalogue. Outre la récupération des informations de membre pour une balise de référence spécifiée, cette fonction ouvre un contexte de membre. |
CryptCATOpen | Ouvre un catalogue et retourne un handle de contexte au catalogue ouvert. |
IsCatalogFile | Récupère une valeur booléenne qui indique si le fichier spécifié est un fichier catalogue. |
Fonctions WinTrust
Les fonctions suivantes sont utilisées pour effectuer diverses opérations d’approbation.
Fonction | Description |
---|---|
WintrustAddActionID | Ajoute une action de fournisseur d’approbation au système de l’utilisateur. |
WintrustGetRegPolicyFlags | Récupère les indicateurs de stratégie pour un fournisseur de stratégies. |
WintrustAddDefaultForUsage | Spécifie l’identificateur d’utilisation par défaut et les informations de rappel d’un fournisseur |
WintrustGetDefaultForUsage | Récupère l’identificateur d’utilisation par défaut et les informations de rappel. |
WintrustLoadFunctionPointers | Charge les points d’entrée de fonction pour un GUID d’action spécifié. |
WintrustRemoveActionID | Supprime une action ajoutée par la fonction WintrustAddActionID . |
WintrustSetDefaultIncludePEPageHashes | Définit le paramètre par défaut qui détermine si les hachages de page sont inclus lors de la création de données indirectes SIP (Subject Interface Package) pour les fichiers exécutables portables. |
WintrustSetRegPolicyFlags | Définit des indicateurs de stratégie pour un fournisseur de stratégies. |
WinVerifyTrust | Exécute une action de vérification d’approbation sur un objet spécifié. |
WinVerifyTrustEx | Effectue une action de vérification d’approbation sur un objet spécifié et prend un pointeur vers une structure WINTRUST_DATA. |
WTHelperCertCheckValidSignature | Vérifie si une signature est valide. |
WTHelperCertFindIssuerCertificate | Recherche un certificat émetteur à partir des magasins de certificats spécifiés qui correspondent au certificat d’objet spécifié. |
WTHelperCertIsSelfSigned | Vérifie si un certificat est auto-signé. |
WTHelperGetFileHash | Vérifie la signature d’un fichier signé et obtient la valeur de hachage et l’identificateur d’algorithme pour le fichier. |
WTHelperGetProvCertFromChain | Récupère un certificat de fournisseur d’approbation à partir de la chaîne de certificats. |
WTHelperGetProvPrivateDataFromChain | Reçoit une structure CRYPT_PROVIDER_PRIVDATA de la chaîne à l’aide de l’ID du fournisseur. |
WTHelperGetProvSignerFromChain | Récupère un signataire ou un contre-signeur par index à partir de la chaîne. |
WTHelperProvDataFromStateData | Récupère les informations du fournisseur d’approbation à partir d’un handle spécifié. |
Fonctions de localisateur d’objets
Les fonctions de rappel suivantes peuvent être implémentées par un fournisseur personnalisé destiné à être appelé par le package de sécurité Schannel (Secure Channel) pour récupérer des certificats.
Fonction | Description |
---|---|
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH | Spécifie qu’un objet a changé. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET | Récupère un objet. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE | Libère le fournisseur. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD | Libère le mot de passe utilisé pour chiffrer un tableau d’octets PFX. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE | Libère l’objet retourné par le fournisseur. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER | Libère la mémoire d’un identificateur d’objet. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE | Initialise le fournisseur. |