Udostępnij za pośrednictwem


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.

weryfikowanie podpisanej wiadomości

Aby zweryfikować podpis podpisanej wiadomości

  1. Pobierz wskaźnik do podpisanej wiadomości.

  2. Otwórz magazyn certyfikatów .

  3. 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.

  4. Przy użyciu klucza publicznego użytkownika odszyfruj podpis cyfrowy, tworząc oryginalny skrót danych w komunikacie.

  5. Używając algorytmu skrótu zawartego w komunikacie, oblicz skrót danych zawartych w komunikacie przy użyciu , co daje nowy skrót.

  6. Porównaj skrót pobrany z komunikatu z nowo utworzonym skrótem.

  7. 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ść

  1. Pobierz wskaźnik do podpisanej wiadomości.
  2. Pobierz rozmiar podpisanej wiadomości.
  3. Zyskaj kontrolę nad dostawcą kryptograficznym.
  4. Zainicjuj strukturę CRYPT_VERIFY_MESSAGE_PARA.
  5. 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.