Delen via


createCNGCustomCMC

Het createCNGCustomCMC-voorbeeld maakt een CMC-aanvraagobject op basis van een binnenste geneste PKCS #10-aanvraag. De binnenste aanvraag wordt gemaakt met behulp van een asymmetrische persoonlijke sleutel. De persoonlijke sleutel wordt gemaakt met behulp van de cryptografie-API: De cryptografische provider Next Generation (CNG) en het algoritme dat is opgegeven op de opdrachtregel. Aangepaste opties, zoals exportbeleid en sleutelbeveiligingsniveau, worden ook ingesteld op de persoonlijke sleutel.

Plaats

Wanneer u de Microsoft Windows Software Development Kit (SDK) installeert, wordt het voorbeeld standaard geïnstalleerd in de map %ProgramFiles%\Microsoft SDK's\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\createCNGCustomCMC.

Discussie

Het createCNGCustomCMC-voorbeeld:

  1. Hiermee worden de volgende opdrachtregelargumenten verwerkt:
    • De naam van een CNG-cryptografische serviceprovider (CSP).
    • De naam van het algoritme dat wordt gebruikt voor het genereren van een asymmetrische persoonlijke sleutel.
    • De naam van het algoritme dat wordt gebruikt voor het hash de certificaataanvraag.
    • Een uitvoerbestand waarin de certificaataanvraag moet worden opgeslagen.
    • Een optionele tekenreeks (AlternateSignature) die, indien aanwezig, aangeeft dat een discrete in plaats van een gecombineerd handtekening-algoritme wordt gebruikt. Zie de eigenschap AlternateSignatureAlgorithm voor meer informatie.
  2. Hiermee maakt u een IX509PrivateKey object en stelt u de volgende eigenschappen in:
  3. Hiermee maakt u een asymmetrische persoonlijke sleutel.
  4. Hiermee maakt u een IX509CertificateRequestPkcs10-object en initialiseert u het met behulp van de persoonlijke sleutel.
  5. Hiermee maakt u een IX509CertificateRequestCmc--object en initialiseert u het met behulp van het PKCS #10-aanvraagobject dat u in stap 4 hebt gemaakt.
  6. Hiermee stelt u de vlag voor het alternatieve handtekeningalgoritmen in op VARIANT_TRUE of VARIANT_FALSE, afhankelijk van of een alternatieve handtekeningtekenreeks is opgegeven op de opdrachtregel. Zie AlternateSignatureAlgorithmvoor meer informatie.
  7. Hiermee maakt u een hash-algoritmeobject-id (OID) op basis van de algoritmenaam die is opgegeven op de opdrachtregel en stelt u de OID in op het CMC-aanvraagobject.
  8. Ondertekent de certificaataanvraag en codeert deze met behulp van Distinguished Encoding Rules (DER).
  9. Haalt een tekenreeks op die de gecodeerde CMC-certificaataanvraag bevat en slaat deze op in een bestand. De functie EncodeToFileW is gedefinieerd in EnrollCommon.cpp.

CMC-aanvraag

PKCS #10 aanvragen

de opgenomen voorbeelden gebruiken

IX509PrivateKey