Decodieren signierter Daten
Der folgende allgemeine Prozess decodiert einen signierten Datentyp.
So decodieren Sie eine signierte Nachricht
- Hier erhalten Sie einen Zeiger auf das codierte BLOB.
- Rufen Sie CryptMsgOpenToDecode auf,und übergeben Sie die erforderlichen Argumente.
- 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.
- 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
- 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.
- Rufen Sie CertOpenStore auf, um einen temporären Speicher zu öffnen, der mit den Zertifikaten aus der Nachricht initialisiert wird.
- Rufen Sie CertGetSubjectCertificateFromStore auf, um die _ CERT-INFORMATIONEN des Signierers aus den in der Nachricht enthaltenen Zertifikaten zu erhalten.
- Rufen Sie CryptMsgControl auf,und übergeben Sie CMSG _ STRG VERIFY _ _ SIGNATURE, um die Signaturen zu überprüfen.
- 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.