Freigeben über


CryptMsgVerifyCountersignatureEncoded-Funktion (wincrypt.h)

Die Funktion CryptMsgVerifyCountersignatureEncoded überprüft eine Gegensignatur in Bezug auf die SignerInfo-Struktur (gemäß PKCS #7).

Syntax

BOOL CryptMsgVerifyCountersignatureEncoded(
  [in] HCRYPTPROV_LEGACY hCryptProv,
  [in] DWORD             dwEncodingType,
  [in] PBYTE             pbSignerInfo,
  [in] DWORD             cbSignerInfo,
  [in] PBYTE             pbSignerInfoCountersignature,
  [in] DWORD             cbSignerInfoCountersignature,
  [in] PCERT_INFO        pciCountersigner
);

Parameter

[in] hCryptProv

Dieser Parameter wird nicht verwendet und sollte auf NULL festgelegt werden.

Windows Server 2003 und Windows XP: NULL oder das Handle des Kryptografieanbieters , der zum Hashen des Felds encryptedDigest von pbSignerInfo verwendet werden soll. Der Datentyp dieses Parameters ist HCRYPTPROV.

Wenn es keinen starken Grund für die Übergabe eines bestimmten Kryptografieanbieters in hCryptProv gibt, übergeben Sie NULL , um die Verwendung des Standard-RSA- oder DSS-Anbieters zu verursachen.

[in] dwEncodingType

Gibt den verwendeten Codierungstyp an. Derzeit werden nur X509_ASN_ENCODING und PKCS_7_ASN_ENCODING verwendet. Es können jedoch in Zukunft weitere Codierungstypen hinzugefügt werden. Verwenden Sie für einen der aktuellen Codierungstypen Folgendes:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbSignerInfo

Ein Zeiger auf das codierte BLOB , das den Signierer des Inhalts einer Nachricht enthält, die gegensigniert werden soll.

[in] cbSignerInfo

Anzahl des codierten BLOB für den Signierer des Inhalts in Bytes.

[in] pbSignerInfoCountersignature

Ein Zeiger auf das codierte BLOB, das die Gegenzeicheninformationen enthält.

[in] cbSignerInfoCountersignature

Anzahl des codierten BLOB für den Gegenzeichen der Nachricht in Bytes.

[in] pciCountersigner

Ein Zeiger auf eine CERT_INFO , die den Aussteller und die Seriennummer des Gegenzeichens enthält. Weitere Informationen finden Sie in den Hinweisen.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert nonzero (TRUE).

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE). Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

In der folgenden Tabelle sind die Fehlercodes aufgeführt, die am häufigsten von der GetLastError-Funktion zurückgegeben werden.

Rückgabecode Beschreibung
CRYPT_E_AUTH_ATTR_MISSING
Die Nachricht enthält kein erwartetes authentifizierte Attribut.
CRYPT_E_HASH_VALUE
Der Hashwert ist nicht korrekt.
CRYPT_E_UNEXPECTED_ENCODING
Die Nachricht ist nicht wie erwartet codiert.
CRYPT_E_UNKNOWN_ALGO
Der kryptografische Algorithmus ist unbekannt.
E_INVALIDARG
Mindestens ein Argument ist ungültig.
E_OUTOFMEMORY
Der Arbeitsspeicher ist nicht mehr vorhanden.
 

Möglicherweise werden weitergegebene Fehler aus den folgenden Funktionen zurückgegeben.

Wenn die Funktion fehlschlägt, gibt GetLastError möglicherweise einen ASN.1-Codierungs-/Decodierungsfehler ( Abstract Syntax Notation One ) zurück. Informationen zu diesen Fehlern finden Sie unter ASN.1 Encoding/Decoding Return Values.

Hinweise

Die Überprüfung des Gegensigners erfolgt mithilfe der PKCS #7 SIGNERINFO-Struktur . Die Signatur muss den verschlüsselten Hash des Felds encryptedDigest von pbSignerInfo enthalten.

Der Aussteller und die Seriennummer des Countersigners müssen mit den Gegenzeicheninformationen aus pbSignerInfoCountersignature übereinstimmen. Die einzigen Felder, auf die von pciCountersigner verwiesen wird, sind SerialNumber, Issuer und SubjectPublicKeyInfo. SubjectPublicKeyInfo wird verwendet, um auf den öffentlichen Schlüssel zuzugreifen, der dann verwendet wird, um den Hash aus dem pciCountersigner zu verschlüsseln, um ihn mit dem Hash aus pbSignerInfo zu vergleichen.

Beispiele

Ein Beispiel, das diese Funktion verwendet, finden Sie unter Beispiel C-Programm: Codieren und Decodieren einer CounterSigned-Nachricht.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

CryptMsgCountersign

CryptMsgCountersignEncoded

Nachrichtenfunktionen auf niedriger Ebene

Vereinfachte Nachrichtenfunktionen