Weryfikowanie podpisanej wiadomości
Te kroki weryfikują podpis podpisanych danych. Poniższa ilustracja przedstawia poszczególne zadania, które należy wykonać, jak pokazano na poniższej liście.
Aby zweryfikować podpis podpisanej wiadomości
Pobierz wskaźnik do podpisanej wiadomości.
Korzystając z identyfikatora osoby podpisającego zawartej w komunikacie, pobierz certyfikat nadawcy i uzyskaj dojście do jego klucza publicznego.
Alternatywą dla kroków 2 i 3 jest użycie certyfikatu zawartego w komunikacie w celu pobrania klucza publicznego użytkownika.
Przy użyciu klucza publicznego użytkownika odszyfruj podpis cyfrowy, tworząc oryginalny skrót danych w komunikacie.
Używając algorytmu skrótu zawartego w komunikacie, oblicz skrót danych zawartych w komunikacie przy użyciu , co daje nowy skrót.
Porównaj skrót pobrany z komunikatu z nowo utworzonym skrótem.
Jeśli dwa skróty są zgodne, podpis zostanie zweryfikowany. Oznacza to, że klucz prywatny użyty do podpisania danych jest zgodny z kluczem publicznym użytym do odszyfrowania podpisu i że dane nie uległy zmianie od czasu podpisania danych.
Jeśli dwa skróty nie są zgodne, podpis nie zostanie zweryfikowany, a klucze prywatne/publiczne nie są zgodne lub dane zostały zmienione od momentu podpisania danych lub obu tych kluczy.
Pojedyncza funkcja, CryptVerifyMessageSignature, może służyć do weryfikowania podpisu, jak pokazano w poniższej procedurze.
Aby zweryfikować podpisaną wiadomość
- Pobierz wskaźnik do podpisanej wiadomości.
- Pobierz rozmiar podpisanej wiadomości.
- Zyskaj kontrolę nad dostawcą kryptograficznym.
- Zainicjuj strukturę CRYPT_VERIFY_MESSAGE_PARA.
- Wywołaj CryptVerifyMessageSignature, aby zweryfikować podpis.
Kod, który implementuje tę procedurę, jest zawarty w przykładzie programu w języku C: podpisywanie i weryfikowanie podpisu komunikatu.