Delen via


Een CERT_INFO-structuur coderen

Het coderingsproces is het omgekeerde van het decoderingsproces dat wordt beschreven in Decodering van een CERT_INFO Structuur. Met de volgende procedure voegt u bijvoorbeeld een gecodeerde Issuer- toe aan een CERT_INFO structuur. Zie ook de afbeelding die volgt op de procedure.

Een gecodeerde verlener toevoegen aan een CERT_INFO structuur

  1. Maak een tekenreeks met de naam van de uitgever die gebruikt moet worden.
  2. Maak een matrix van CERT_RDN_ATTR structuren, die worden geïnitialiseerd om de juiste informatie te bevatten over de naamtekenreeks van de verlener die zojuist is gemaakt.
  3. Maak een matrix van CERT_RDN structuren, waarvan één de informatie bevat over de matrix van CERT_RDN_ATTR structuren die zojuist zijn geïnitialiseerd.
  4. Maak een CERT_NAME_INFO structuur met een aanwijzer naar de matrix van CERT_RDN structuren die zojuist zijn gemaakt.
  5. Roep CryptEncodeObject aan om de grootte van de uitvoer-gecodeerde BLOB op te halen en geef het adres van de CERT_NAME_INFO structuur die u zojuist hebt gemaakt door.
  6. Wijs geheugen toe voor de uitvoer van de gecodeerde BLOB.
  7. Roep CryptEncodeObject opnieuw aan, waarbij dezelfde informatie wordt doorgegeven, maar nu wordt het adres doorgegeven van het zojuist toegewezen geheugen.
  8. Stel de Issuer.cbData lid van de CERT_INFO-structuur in op de grootte die is geretourneerd in stap 5 en het Issuer.pbData lid op het adres dat is verkregen in stap 6. De gecodeerde Issuer BLOB bevindt zich daar.

een gecodeerde verlener toevoegen aan een structuur met certificaatgegevens

Als u bepaalde certificaatextensiegegevens wilt initialiseren en coderen, gebruikt u de volgende procedure. Zie ook de afbeelding die volgt op de procedure.

Om gecodeerde extensiegegevens toe te voegen aan een CERT_INFO structuur

  1. Maak en initialiseer een structuur voor extensie-informatie. In dit voorbeeld is het een CERT_BASIC_CONSTRAINTS_INFO structuur.
  2. Roep CryptEncodeObjectaan en geef het adres door van de zojuist gemaakte structuur om de grootte van de uitvoer van de gecodeerde BLOB op te halen.
  3. Wijs geheugen toe voor de gecodeerde BLOB.
  4. Roep CryptEncodeObject opnieuw aan, waarbij dezelfde informatie wordt doorgegeven, met uitzondering van het adres van het toegewezen geheugen.
  5. Maak een matrix van CERT_EXTENSION structuren.
  6. Initialiseer een van de CERT_EXTENSION structuren zodat de pszObjId- de juiste tekenreeks is voor de gegevens in waardeen dat waarde de versleutelde gegevens-BLOB bevat die is uitgevoerd van de aanroep naar CryptEncodeObject.
  7. Initialiseer de rgExtension lid van de CERT_INFO structuur om te verwijzen naar de matrix van CERT_EXTENSION structuren.

gecodeerde extensiegegevens toevoegen aan een structuur met certificaatgegevens