Encodage d’une structure d’informations de certificat _
Le processus d’encodage est l’inverse du processus de décodage décrit dans décoder une _ structure d’informations de certificat. Par exemple, la procédure suivante ajoute un émetteur encodé à une structure d’informations de certificat _ . Consultez également l’illustration qui suit la procédure.
Pour ajouter un émetteur encodé à une structure d’informations de certificat _
- Créez une chaîne contenant le nom de l’émetteur à utiliser.
- Créez un tableau de structures _ _ attr RDN de CERT , qui seront initialisées pour contenir les informations appropriées sur la chaîne de nom d’émetteur que vous venez de créer.
- Créez un tableau de structures de compte _ RDN de certificat , dont l’une contient les informations sur le tableau de structures _ _ attr RDN de CERT qui vient d’être initialisé.
- Créez une structure d' _ _ informations de nom de certificat qui a un pointeur vers le tableau de structures de nom _ RDN de certificat que vous venez de créer.
- Appelez CryptEncodeObject pour connaître la taille de l’objet BLOB encodé de sortie, en lui transmettant l’adresse de la structure d' _ _ informations du nom de certificat que vous venez de créer.
- Allouez de la mémoire pour l’objet BLOB encodé de sortie.
- Appelez à nouveau CryptEncodeObject , en lui transmettant les mêmes informations, mais en lui transmettant à présent l’adresse de la mémoire qui vient d’être allouée.
- Définissez le membre Issuer. cbData de la structure des _ informations de certificat sur la taille retournée à l’étape 5 et le membre émetteur. pbData sur l’adresse obtenue à l’étape 6. L’objet blob d' émetteur encodé se trouve maintenant ici.

Pour initialiser et encoder certaines informations d’extension de certificat, utilisez la procédure suivante. Consultez également l’illustration qui suit la procédure.
Pour ajouter des informations d’extension encodées à une structure d’informations de certificat _
- Créer et initialiser une structure d’informations d’extension : pour cet exemple, il s’agit d’une structure d’informations de _ contraintes de base _ _ CERT .
- Appelez CryptEncodeObject, en lui transmettant l’adresse de la structure que vous venez de créer, pour connaître la taille de l’objet BLOB encodé de sortie.
- Allouez de la mémoire pour l’objet BLOB encodé de sortie.
- Appelez à nouveau CryptEncodeObject , en passant les mêmes informations, à l’exception de Pass à présent dans l’adresse de la mémoire allouée.
- Créez un tableau de structures d' _ extension de certificat .
- Initialisez une des structures d' _ extension du certificat afin que pszObjId soit la chaîne appropriée pour les données contenues dans la valeur, et cette valeur contient l’objet blob de données chiffrées qui a été généré à partir de l’appel à CryptEncodeObject.
- Initialisez le membre rgExtension de la structure d' _ informations de certificat pour qu’il pointe vers le tableau de structures d' _ extension de certificat .
