Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die CMSG_SIGNER_ENCODE_INFO-Struktur enthält Signiererinformationen. Er wird an CryptMsgCountersign, CryptMsgCountersignEncoded und optional an CryptMsgOpenToEncode als Member der CMSG_SIGNED_ENCODE_INFO-Struktur übergeben, wenn der dwMsgType-Parameter CMSG_SIGNED ist.
Syntax
typedef struct _CMSG_SIGNER_ENCODE_INFO {
DWORD cbSize;
PCERT_INFO pCertInfo;
union {
HCRYPTPROV hCryptProv;
NCRYPT_KEY_HANDLE hNCryptKey;
BCRYPT_KEY_HANDLE hBCryptKey;
} DUMMYUNIONNAME;
DWORD dwKeySpec;
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
void *pvHashAuxInfo;
DWORD cAuthAttr;
PCRYPT_ATTRIBUTE rgAuthAttr;
DWORD cUnauthAttr;
PCRYPT_ATTRIBUTE rgUnauthAttr;
CERT_ID SignerId;
CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm;
void *pvHashEncryptionAuxInfo;
} CMSG_SIGNER_ENCODE_INFO, *PCMSG_SIGNER_ENCODE_INFO;
Member
cbSize
Die Größe (in Bytes) dieser Struktur.
pCertInfo
Ein Zeiger auf eine CERT_INFO-Struktur , die die
Issuer-, SerialNumber- und SubjectPublicKeyInfo-Member .
Die pbData-Member der Issuer - und SerialNumber-Strukturen identifizieren ein Zertifikat eindeutig. Das Algorithm-Element der SubjectPublicKeyInfo-Struktur gibt den verwendeten Hashverschlüsselungsalgorithmus an.
DUMMYUNIONNAME
DUMMYUNIONNAME.hCryptProv
Ein Handle für den Kryptografiedienstanbieter (Cryptographic Service Provider , CSP). Wenn HashEncryptionAlgorithm auf szOID_PKIX_NO_SIGNATURE festgelegt ist, kann dieses Handle das Handle eines CSP sein, der mithilfe des auf CRYPT_VERIFYCONTEXT festgelegten dwFlags-Parameters abgerufen wird. Die CNG-Funktion NCryptIsKeyHandle wird aufgerufen, um die Union-Auswahl zu bestimmen.
DUMMYUNIONNAME.hNCryptKey
Ein Handle für den CNG-CSP. Die CNG-Funktion NCryptIsKeyHandle wird aufgerufen, um die Union-Auswahl zu bestimmen. Neue Verschlüsselungsalgorithmen werden nur in CNG-Funktionen unterstützt. Die CNG-Funktion NCryptTranslateHandle wird aufgerufen, um bei Bedarf die Wahl CryptoAPI hCryptProv zu konvertieren. Es wird empfohlen, dass Anwendungen das CNG-CSP-Handle, das von der NCryptOpenKey-Funktion zurückgegeben wird, an das hNCryptKey-Element übergeben.
DUMMYUNIONNAME.hBCryptKey
dwKeySpec
Gibt den zu verwendenden privaten Schlüssel an. Dieses Element wird nicht verwendet, wenn das hNCryptKey-Element verwendet wird.
Wenn dwKeySpec null ist, wird der Standardwert AT_KEYEXCHANGE verwendet.
Die folgenden dwKeySpec-Werte sind für den Standardanbieter definiert.
HashAlgorithm
Eine CRYPT_ALGORITHM_IDENTIFIER-Struktur , die den Hashalgorithmus angibt.
pvHashAuxInfo
Wird nicht verwendet. Dieser Member muss auf NULL festgelegt werden.
cAuthAttr
Die Anzahl der Elemente im rgAuthAttr-Array . Wenn in rgAuthAttr keine authentifizierten Attribute vorhanden sind, ist cAuthAttr null.
rgAuthAttr
Ein Array von Zeigern auf CRYPT_ATTRIBUTE Strukturen, von denen jede authentifizierte Attributinformationen enthält.
Der PKCS #9-Standard schreibt vor, dass, wenn Attribute vorhanden sind, mindestens zwei vorhanden sein müssen: den Inhaltstypobjektbezeichner (OID) und den Hash der Nachricht. Diese Attribute werden automatisch vom System hinzugefügt.
cUnauthAttr
Die Anzahl der Elemente im rgUnauthAttr-Array . Wenn keine nicht authentifizierten Attribute vorhanden sind, ist cUnauthAttr null.
rgUnauthAttr
Ein Array von Zeigern auf CRYPT_ATTRIBUTE Strukturen, von denen jede nicht authentifizierte Attributinformationen enthält. Nicht authentifizierte Attribute können unter anderem Gegensignaturen enthalten.
SignerId
Eine CERT_ID-Struktur , die einen eindeutigen Bezeichner des Zertifikats des Unterzeichners enthält. Dieses Element kann optional mit PKCS #7 mit kryptografischer Nachrichtensyntax (CMS) verwendet werden. Wenn dieser Member nicht NULL ist und sein dwIdChoice-Element nicht null ist, wird es verwendet, um das Zertifikat anstelle der Issuer - und SerialNumber-Member der CERT_INFO Struktur zu identifizieren, auf die von pCertInfo verwiesen wird. CMS unterstützt die KEY_IDENTIFIER- und ISSUER_SERIAL_NUMBER CERT_ID-Strukturen. PKCS Version 1.5 unterstützt nur die ISSUER_SERIAL_NUMBER CERT_ID Wahl. Dieser Member wird mit CMS für die PKCS #7-Verarbeitung verwendet und kann nur verwendet werden, wenn CMSG_SIGNER_ENCODE_INFO_HAS_CMS_FIELDS definiert ist.
HashEncryptionAlgorithm
Eine CRYPT_ALGORITHM_IDENTIFIER Struktur, die optional mit PKCS #7 mit CMS verwendet wird. Wenn dieser Member nicht NULL ist, wird der identifizierte Algorithmus anstelle des SubjectPublicKeyInfo.Algorithm-Algorithmus verwendet. Wenn dieser Member auf szOID_PKIX_NO_SIGNATURE festgelegt ist, enthält der Signaturwert nur die Hashoktette.
Bei RSA ist der Hashverschlüsselungsalgorithmus normalerweise mit dem Algorithmus für öffentliche Schlüssel identisch. Für DSA ist der Hashverschlüsselungsalgorithmus normalerweise ein DSS-Signaturalgorithmus.
Dieser Member wird mit CMS für die PKCS #7-Verarbeitung verwendet und kann nur verwendet werden, wenn CMSG_SIGNER_ENCODE_INFO_HAS_CMS_FIELDS definiert ist.
pvHashEncryptionAuxInfo
Dieser Member wird nicht verwendet. Dieser Member muss auf NULL festgelegt werden, wenn es in der Datenstruktur vorhanden ist. Dieser Member ist nur vorhanden, wenn CMSG_SIGNER_ENCODE_INFO_HAS_CMS_FIELDS definiert ist.
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
| Kopfzeile | wincrypt.h |