Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gehashte gegevens bestaan uit inhoud van elk type en een hash- van de inhoud. Het kan worden gebruikt wanneer het alleen nodig is om te bevestigen dat de berichtinhoud niet is gewijzigd sinds de hash is gemaakt.
Bij het maken van een gehasht bericht kunnen er meerdere hash-algoritmen en meerdere hashes zijn. In de volgende afbeelding ziet u de taken die nodig zijn om een gehasht bericht te coderen. De procedure wordt beschreven in de tekst die volgt op de afbeelding.
Een gehasht bericht maken
- Haal een aanwijzer op voor de gegevens die moeten worden gehasht.
- Selecteer het hash-algoritme dat moet worden gebruikt.
- Voer de gegevens door een hashfunctie met het hash-algoritme.
- Neem de oorspronkelijke gegevens op die moeten worden gehasht, de hash-algoritmen en de hashes in het gecodeerde bericht.
Als u berichtenfuncties op laag niveau wilt gebruiken om de zojuist beschreven taken uit te voeren, gebruikt u de volgende procedure.
Een bericht hashen en coderen met berichtenfuncties op laag niveau
Maak of haal de inhoud op die moet worden gehasht.
Haal een cryptografische provider op.
Initialiseer de CMSG_HASHED_ENCODE_INFO structuur.
Roep CryptMsgCalculateEncodedLength- aan om de grootte van de gecodeerde bericht-BLOB op te halen. Wijs er geheugen voor toe.
Roep CryptMsgOpenToEncode-aan en geef CMSG_HASHED door voor de parameter dwMsgType en een aanwijzer naar CMSG_HASHED_ENCODE_INFO voor de parameter pvMsgEncodeInfo. Als gevolg van deze aanroep krijgt u een ingang voor het geopende bericht.
Roep CryptMsgUpdateaan, waarbij de ingang die in stap 5 is opgehaald, wordt doorgegeven en een aanwijzer naar de gegevens die moeten worden gehasht en gecodeerd. Deze functie kan zo vaak worden aangeroepen als nodig is om het coderingsproces te voltooien.
Roep CryptMsgGetParam-aan, waarbij de ingang die in stap 5 is opgehaald en de juiste parametertypen worden doorgegeven om toegang te krijgen tot de gewenste, gecodeerde gegevens. Geef bijvoorbeeld CMSG_CONTENT_PARAM door om een aanwijzer te verkrijgen naar de volledige PKCS #7 bericht.
Als het resultaat van deze codering moet worden gebruikt als de binnenste gegevens voor een ander gecodeerd bericht, zoals een bericht met enveloppen, moet CMSG_BARE_CONTENT_PARAM worden doorgegeven. Zie Alternatieve code voor het coderen van een bericht met enveloppenvoor een voorbeeld hiervan.
Sluit het bericht door CryptMsgClose-aan te roepen.
Het resultaat van deze procedure is een gecodeerd bericht dat de oorspronkelijke gegevens, de hash-algoritmen en de hash- van die gegevens bevat. In stap 7 wordt een aanwijzer naar het gecodeerde bericht BLOB- verkregen.
De volgende twee procedures decoderen gegevens en verifiëren vervolgens de gehashte gegevens.
Hash-gegevens decoderen
- Haal een aanwijzer op naar de gecodeerde BLOB.
- Roep CryptMsgOpenToDecodeaan, waarbij de benodigde argumenten worden doorgegeven.
- Roep CryptMsgUpdate één keer aan en geef de ingang door die is opgehaald in stap 2 en een aanwijzer naar de gegevens die moeten worden gedecodeerd. Dit zorgt ervoor dat de juiste acties op het bericht worden uitgevoerd, afhankelijk van het berichttype.
- Roep CryptMsgGetParamaan, geef de ingang door die is opgehaald in stap 2 en de juiste parametertypen om toegang te krijgen tot de gewenste, gedecodeerde gegevens. Geef bijvoorbeeld CMSG_CONTENT_PARAM door om een aanwijzer op te halen naar de gedecodeerde inhoud.
De hash- controleren
- Roep CryptMsgControlaan en geef CMSG_CTRL_VERIFY_HASH door om de hashes te verifiëren.
- Roep CryptMsgClose- aan om het bericht te sluiten.
Zie Voorbeeld C-programma: Een gehasht bericht coderen en decoderen.