Decodieren signierter Daten

Der folgende allgemeine Prozess decodiert einen signierten Datentyp.

So decodieren Sie eine signierte Nachricht

  1. Hier erhalten Sie einen Zeiger auf das codierte BLOB.
  2. Rufen Sie CryptMsgOpenToDecode auf,und übergeben Sie die erforderlichen Argumente.
  3. Rufen Sie CryptMsgUpdate einmal auf, und übergeben Sie dabei das in Schritt 2 abgerufene Handle und einen Zeiger auf die daten, die decodiert werden sollen. Dies führt dazu, dass je nach Nachrichtentyp die entsprechenden Aktionen für die Nachricht durchgeführt werden.
  4. Rufen Sie CryptMsgGetParamauf, und übergeben Sie das in Schritt 2 abgerufene Handle und die entsprechenden Parametertypen für den Zugriff auf die decodierten Daten. Übergeben Sie beispielsweise CMSG _ CONTENT _ PARAM, um einen Zeiger auf den decodierten Inhalt zu erhalten.

Der folgende allgemeine Prozess überprüft die Signatur einer decodierten, signierten Nachricht.

So überprüfen Sie die Signatur einer decodierten signierten Nachricht

  1. Rufen Sie CryptMsgGetParamauf, und übergeben Sie das Nachrichtenhand handle und CMSG _ SIGNER CERT INFO PARAM, um die _ _ _ _ CERT-INFORMATIONEN des Signaturers aus der Nachricht zu erhalten.
  2. Rufen Sie CertOpenStore auf, um einen temporären Speicher zu öffnen, der mit den Zertifikaten aus der Nachricht initialisiert wird.
  3. Rufen Sie CertGetSubjectCertificateFromStore auf, um die _ CERT-INFORMATIONEN des Signierers aus den in der Nachricht enthaltenen Zertifikaten zu erhalten.
  4. Rufen Sie CryptMsgControl auf,und übergeben Sie CMSG _ STRG VERIFY _ _ SIGNATURE, um die Signaturen zu überprüfen.
  5. Rufen Sie CryptMsgClose auf, um die Nachricht zu schließen.

Das Ergebnis dieser Prozeduren ist, dass die Signatur überprüft und ein Zeiger auf den decodierten Nachrichteninhalt abgerufen wird, der in Schritt 4 des Verfahrens zum Decodieren einer signierten Nachricht abgerufen wurde.

Weitere Informationen zur C-Codierung finden Sie unter C-Beispielprogramm: Signieren, Codieren, Decodieren und Überprüfen einer Nachricht.