Procedure voor ondertekeningsgegevens
Eén functie, CryptSignMessage, voert alle taken uit die worden vermeld in Een ondertekend bericht maken. Initialisatie van structuren en andere gegevens is echter nog steeds nodig. In de volgende afbeelding ziet u de relatie tussen deze functieparameters die verwijzen naar structuren of matrices en de geïnitialiseerde gegevens. In de afbeelding ziet u alleen de functieparameters en structuurleden die zijn afgeleid van andere structuren of functies. De rest van de parameters zijn eenvoudige initialisaties.
Gegevens ondertekenen met CryptSignMessage
- Haal een aanwijzer op voor de gegevens die moeten worden gesigneerd.
- Wijs de aanwijzer toe aan de gegevens om nul van een matrix 'te ondertekenen gegevens' te indexeren.
- Haal een ingang op voor de cryptografische provider.
- Open een certificaatarchief dat het certificaat van de ondertekenaar bevat.
- Verkrijg het adres van het certificaat van de ondertekenaar.
- Wijs het adres van het certificaat toe aan de nulindex van de MsgCert matrix.
- Wijs de adressen van andere certificaten toe die moeten worden opgenomen in het bericht aan de MsgCert matrix.
- Initialiseer de CRYPT_ALGORITHM_IDENTIFIER-structuur, waarbij het pszObjId-lid wordt ingesteld op het gewenste hash-algoritme en de andere leden op passende wijze.
- Initialiseer de CRYPT_SIGN_MESSAGE_PARA structuur, initialiseer het pSigningCert lid naar het adres van het certificaat van de ondertekenaar, het MsgCert lijstlid naar het adres van de certificaten van de ondertekenaar en andere certificaten, het HashAlgorithm lid naar het adres van de CRYPT_ALGORITHM_IDENTIFIER structuur, en de andere leden zoals passend.
- Roep de functie CryptSignMessage aan, waarbij de CRYPT_SIGN_MESSAGE_PARA structuur voor de parameter pSignPara wordt doorgegeven, het adres van de matrix 'te ondertekenen gegevens' voor de parameter rgpbToBeSigned, een adres voor de pbSignedBlob uitvoerparameter en waarden voor de andere parameters.