Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Obecné úkoly potřebné k dekódování obálek zprávy jsou znázorněny na následujícím obrázku a popsány v seznamu, který následuje za ní.
Posloupnost událostí pro dekódování zašifrovaných dat pomocí správy klíčů pro přenos klíčů, jak je znázorněno na předchozím obrázku, je následující:
- Načte se ukazatel na zprávu , která je digitálně obálkovaná s.
- Úložiště certifikátů je otevřeno.
- Ze zprávy se načte ID příjemce (Moje ID).
- ID příjemce se používá k načtení certifikátu.
- privátní klíč přidružený k tomu certifikátu se načte.
- Privátní klíč slouží k dešifrování klíče symetrického (relace).
- Šifrovací algoritmus se načte ze zprávy.
- Pomocí privátního klíče a šifrovacího algoritmu se data dešifrují.
Následující postup používá funkce zpráv nízké úrovně k provádění právě uvedených úloh.
K dekódování obalené zprávy
- Získejte ukazatel na kódovaný objekt BLOB.
- Zavolejte CryptMsgOpenToDecodea předejte nezbytné argumenty.
- Zavolejte CryptMsgUpdate jednou, předejte popisovač načtený v kroku 2 a ukazatel na data, která se mají dekódovat. To způsobí, že se v závislosti na typu zprávy provedou příslušné akce.
- Volání CryptMsgGetParam, předání popisovače načteného v kroku 2 a CMSG_TYPE_PARAM pro ověření, že zpráva je obálkového datového typu.
- Znovu zavolejte CryptMsgGetParam, a to tím, že předáte CMSG_INNER_CONTENT_TYPE_PARAM, abyste získali datový typ vnitřního obsahu.
- Pokud je datový typ vnitřního obsahu dat, pokračujte dešifrováním a dekódováním obsahu. V opačném případě spusťte dekódovací proceduru odpovídající datovému typu obsahu.
- Předpokládejme, že vnitřní typ obsahu je "data", inicializujte CMSG_CTRL_DECRYPT_PARA strukturu dat a zavolejte CryptMsgControl, přeneste CMSG_CTRL_DECRYPT a adresu struktury. Obsah se dešifruje.
- Vyvoláním CryptMsgGetParama předáním CMSG_CONTENT_PARAM získáte ukazatel na dekódovaný obsah datového objektu BLOB (BYTE řetězec).
- Zprávu zavřete voláním CryptMsgClose.
Výsledkem tohoto postupu je dekódování a dešifrování zprávy a načtení ukazatele na objekt blob dat obsahu.
Související témata