Megosztás a következőn keresztül:


Borítékolt adatok dekódolása

A borítékolt üzenetek dekódolásához szükséges általános feladatokat az alábbi ábrán ábrázoljuk, és az azt követő listában ismertetjük.

borítékolt adatok dekódolása

A borítékolt adatok kulcsátviteli kulcskezeléssel történő dekódolására szolgáló események sorozata az előző ábrán látható módon a következő:

  • A rendszer a digitálisan borítékolt üzenetre mutató mutatót kér le.
  • Megnyílik egy tanúsítványtároló.
  • Az üzenetből lekérik a címzett azonosítóját (Saját azonosító).
  • A rendszer a tanúsítvány lekéréséhez használja a címzett azonosítóját.
  • A rendszer lekéri a tanúsítványhoz társított titkos kulcs.
  • A titkos kulcs a szimmetrikus (munkamenet) kulcs visszafejtésére szolgál.
  • A titkosítási algoritmus lekéri az üzenetet.
  • A titkos kulcs és a titkosítási algoritmus használatával az adatok visszafejtése történik.

Az alábbi eljárás alacsony szintű üzenetfüggvényeket használ az imént felsorolt feladatok végrehajtásához.

Borítékos üzenetek dekódolásához

  1. Szerezzen egy pointert a kódolt BLOB-hoz.
  2. Hívja meg CryptMsgOpenToDecode, és adja át a szükséges argumentumokat.
  3. Hívja meg egyszer a CryptMsgUpdate függvényt, adja át a 2. lépésben lekért leírót, majd mutasson a dekódolni kívánt adatokra. Emiatt az üzenet típusától függően a megfelelő műveleteket kell végrehajtani az üzeneten.
  4. Hívja meg CryptMsgGetParam, adja meg a 2. lépésben lekért leírót és a CMSG_TYPE_PARAM értéket, hogy ellenőrizze, az üzenet borítékolt adattípusú-e.
  5. Ismét hívja meg CryptMsgGetParam, és adja át a CMSG_INNER_CONTENT_TYPE_PARAM, hogy lekérje a belső tartalomadattípusát.
  6. Ha a belső tartalom adattípusa adat, folytassa a tartalom visszafejtését és dekódolását. Ellenkező esetben futtasson egy, a tartalom adattípusának megfelelő dekódolási eljárást.
  7. Feltételezve, hogy a belső tartalomtípus "adat", inicializálja a CMSG_CTRL_DECRYPT_PARA adatstruktúrát, és hívja meg a CryptMsgControlfüggvényt, átadva a CMSG_CTRL_DECRYPT-et és a struktúra címét. A rendszer visszafejti a tartalmat.
  8. Hívja meg a CryptMsgGetParamfüggvényt, adja meg a CMSG_CONTENT_PARAM paramétert, hogy mutatót kapjon a dekódolt tartalomadatok BLOB-hoz (BYTE karakterlánchoz).
  9. Az üzenet bezárásához hívja CryptMsgClose.

Ennek az eljárásnak az eredménye, hogy az üzenet dekódolva és visszafejtve lesz, és egy mutató kerül elő a tartalomadatok BLOB-jára.

C példaprogram: Borítékolt, aláírt üzenet kódolása