CryptMsgCountersignEncoded-Funktion (wincrypt.h)

Die Funktion CryptMsgCountersignEncoded signiert eine vorhandene PKCS #7-Nachrichtensignatur gegen. Der pbCountersignatureBYTE-Puffer , der erstellt wird, ist eine PKCS #7-codierte SignerInfo, die als nicht authentifiziertes Countersignature-Attribut einer PKCS #9-Nachricht mit signierten daten oder signierten und umhüllten Daten verwendet werden kann.

Syntax

BOOL CryptMsgCountersignEncoded(
  [in]      DWORD                    dwEncodingType,
  [in]      PBYTE                    pbSignerInfo,
  [in]      DWORD                    cbSignerInfo,
  [in]      DWORD                    cCountersigners,
  [in]      PCMSG_SIGNER_ENCODE_INFO rgCountersigners,
  [out]     PBYTE                    pbCountersignature,
  [in, out] PDWORD                   pcbCountersignature
);

Parameter

[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 die codierte SignerInfo, die gegensigniert werden soll.

[in] cbSignerInfo

Anzahl der codierten SignerInfo-Daten in Bytes.

[in] cCountersigners

Anzahl der Countersigner im Array "rgCountersigners ".

[in] rgCountersigners

Array von CMSG_SIGNER_ENCODE_INFO Strukturen von Countersignern.

[out] pbCountersignature

Ein Zeiger auf einen Puffer, um ein codiertes PKCS # 9-Countersignature-Attribut zu empfangen.

Bei der Eingabe kann dieser Parameter NULL sein, um die Größe dieser Informationen für speicherzuordnungszwecke festzulegen. Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.

[in, out] pcbCountersignature

Ein Zeiger auf eine Variable, der die Größe des Puffers in Bytes angibt, auf den der pbCountersignature-Parameter verweist. Wenn die Funktion zurückgibt, enthält die Variable, auf die der parameter pcbCountersignature verweist, die Anzahl der im Puffer gespeicherten Bytes.

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_OID_FORMAT
Der Objektbezeichner ist schlecht formatiert.
E_INVALIDARG
Mindestens ein Argument ist ungültig.
E_OUTOFMEMORY
Der Arbeitsspeicher ist nicht mehr vorhanden.
 

Weitergegebene Fehler können von einer der folgenden Funktionen zurückgegeben werden:

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.

Anforderungen

   
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

CryptMsgVerifyCountersignatureEncoded

Nachrichtenfunktionen auf niedriger Ebene

Vereinfachte Nachrichtenfunktionen