CryptMsgSignCTL-Funktion (wincrypt.h)

Die CryptMsgSignCTL-Funktion erstellt eine signierte Nachricht, die eine codierte CTL enthält.

Syntax

BOOL CryptMsgSignCTL(
  [in]      DWORD                    dwMsgEncodingType,
  [in]      BYTE                     *pbCtlContent,
  [in]      DWORD                    cbCtlContent,
  [in]      PCMSG_SIGNED_ENCODE_INFO pSignInfo,
  [in]      DWORD                    dwFlags,
  [out]     BYTE                     *pbEncoded,
  [in, out] DWORD                    *pcbEncoded
);

Parameter

[in] dwMsgEncodingType

Gibt den verwendeten Codierungstyp an. Es ist immer akzeptabel, sowohl den Zertifikat- als auch den Nachrichtencodierungstyp anzugeben, indem sie mit einem bitweisen OR-Vorgang kombiniert werden, wie im folgenden Beispiel gezeigt:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Derzeit definierte Codierungstypen sind:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCtlContent

Die codierte CTL_INFO , die mitglied einer CTL_CONTEXT-Struktur sein oder mithilfe der CryptEncodeObject-Funktion erstellt werden kann.

[in] cbCtlContent

Die Größe des Inhalts in Bytes, auf den pbCtlContent verweist.

[in] pSignInfo

Ein Zeiger auf eine CMSG_SIGNED_ENCODE_INFO-Struktur , die ein Array einer CMSG_SIGNER_ENCODE_INFO-Struktur enthält.

Die Nachricht kann ohne Signierer codiert werden, wenn der cbSize-Member der -Struktur auf die Größe der -Struktur festgelegt ist und alle anderen Member auf 0 (null) festgelegt sind.

[in] dwFlags

Wenn CMS_PKCS7 definiert ist, kann auf CMSG_CMS_ENCAPSULATED_CTL_FLAG festgelegt werden, um eine CMS-kompatible V3 SignedData-Nachricht zu codieren.

[out] pbEncoded

Ein Zeiger auf einen Puffer, der die codierte Nachricht empfängt.

Dieser Parameter kann NULL sein, um die Größe dieser Informationen für die Speicherbelegung abzurufen. Weitere Informationen finden Sie unter Abrufen von Daten mit unbekannter Länge.

[in, out] pcbEncoded

Ein Zeiger auf ein DWORD , das die Größe des pbEncoded-Puffers in Bytes angibt. Wenn die Funktion zurückgibt, enthält das DWORD die Anzahl der im Puffer gespeicherten oder zu speichernden Bytes.

Rückgabewert

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

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE). Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Diese Funktion kann Fehler zurückgeben, die von Aufrufen von CryptMsgOpenToEncode und CryptMsgUpdate weitergegeben werden.

Anforderungen

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

Weitere Informationen

CMSG_SIGNED_ENCODE_INFO

CryptMsgEncodeAndSignCTL

CryptMsgOpenToEncode

Überprüfungsfunktionen mithilfe von CTLs