Contextes de fournisseur de services de chiffrement
La première fonction CryptoAPI appelée par une application qui utilise une API de chiffrement est la fonction CryptAcquireContext . Cette fonction renvoie un descripteur à un CSP particulier qui comprend la spécification d’un conteneur de clé particulier au sein du CSP. Ce conteneur de clé est soit un conteneur de clé demandé spécifiquement, soit le conteneur de clé par défaut pour l’utilisateur actuellement connecté.
CryptAcquireContext peut également créer un conteneur de clé. Pour plus d’informations, consultez exemple de programme c : création d’un conteneur de clé et génération de clés et exemple de programme c : utilisation de CryptAcquireContext.
Un fournisseur de services de chiffrement (CSP) a un nom et un type. Par exemple, le nom de l’un des fournisseurs de services de chiffrement actuellement fournis avec le système d’exploitation est Microsoft base Cryptographic Provider. Il s’agit d’un fournisseur de type _ _ complet RSA Proven . Le nom de chaque fournisseur est unique ; le type de fournisseur n’est pas.
Lorsqu’une application appelle CryptAcquireContext pour obtenir un handle CSP, elle spécifie un type de fournisseur et, éventuellement, un nom de fournisseur. Si un type et un nom sont tous deux spécifiés, la fonction charge le CSP avec le type de fournisseur et le nom de fournisseur correspondants. La fonction retourne le descripteur du CSP qui fournit l’accès à la fois au CSP et à un conteneur de clé au sein du CSP.
Lorsqu’une application appelle CryptAcquireContext et spécifie un type de fournisseur, mais aucun nom de fournisseur, la fonction recherche un fournisseur nommé, en vérifiant d’abord une liste de fournisseurs nommés par défaut associés à l’utilisateur connecté et, en cas d’échec, à partir d’une liste de fournisseurs nommés par défaut associés à l’ordinateur. Une fois le nom du fournisseur déterminé, la fonction CryptAcquireContext recherche le CSP pour ce fournisseur, la charge et retourne son handle.
Lorsque vous avez fini d’utiliser un descripteur CSP, libérez-le en appelant la fonction CryptReleaseContext .