CryptMsgEncodeAndSignCTL-Funktion (wincrypt.h)
Die Funktion CryptMsgEncodeAndSignCTL codiert eine CTL und erstellt eine signierte Nachricht, die die codierte CTL enthält.
Diese Funktion codiert zunächst die CTL, auf die pCtlInfo verweist, und ruft dann CryptMsgSignCTL auf, um die codierte Nachricht zu signieren.
Syntax
BOOL CryptMsgEncodeAndSignCTL(
[in] DWORD dwMsgEncodingType,
[in] PCTL_INFO pCtlInfo,
[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] pCtlInfo
Ein Zeiger auf die CTL_INFO-Struktur , die die zu codierende und signierte CTL enthält.
[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
CMSG_ENCODE_SORTED_CTL_FLAG wird festgelegt, wenn die CTL-Einträge vor der Codierung sortiert werden sollen. Dieses Flag wird festgelegt, wenn die Funktionen CertFindSubjectInSortedCTL oder CertEnumSubjectInSortedCTL aufgerufen werden.
CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG wird festgelegt, wenn CMSG_ENCODE_SORTED_CTL_FLAG festgelegt ist, und der Bezeichner für trustedSubjects ein Hash ist, z. B. MD5 oder SHA1.
Wenn CMS_PKCS7 definiert ist, kann dwFlags 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, signierte Nachricht empfängt, die erstellt wurde.
Dieser Parameter kann NULL sein, um die Größe dieser Informationen für die Speicherbelegung festzulegen. Weitere Informationen finden Sie unter Abrufen von Daten mit unbekannter Länge.
[in, out] pcbEncoded
Ein Zeiger auf ein DWORD , der 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). Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. Fehler können 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 |