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.
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
- Szerezzen egy pointert a kódolt BLOB-hoz.
- Hívja meg CryptMsgOpenToDecode, és adja át a szükséges argumentumokat.
- 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.
- 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.
- Ismét hívja meg CryptMsgGetParam, és adja át a CMSG_INNER_CONTENT_TYPE_PARAM, hogy lekérje a belső tartalomadattípusát.
- 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.
- 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.
- 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).
- 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.
Kapcsolódó témakörök