CRYPT_OID_INFO-Struktur (wincrypt.h)
Die CRYPT_OID_INFO-Struktur enthält Informationen zu einem Objektbezeichner (Object Identifier, OID). Diese Strukturen geben die Beziehung zwischen einem OID-Bezeichner, seinem Namen, seiner Gruppe und anderen Informationen zur OID. Diese Strukturen können mithilfe der Funktion CryptEnumOIDInfo aufgelistet werden. Neue CRYPT_OID_STRUCTURES können mithilfe der Funktion CryptRegisterOIDInfo hinzugefügt werden.
Syntax
typedef struct _CRYPT_OID_INFO {
DWORD cbSize;
LPCSTR pszOID;
LPCWSTR pwszName;
DWORD dwGroupId;
union {
DWORD dwValue;
ALG_ID Algid;
DWORD dwLength;
} DUMMYUNIONNAME;
CRYPT_DATA_BLOB ExtraInfo;
LPCWSTR pwszCNGAlgid;
LPCWSTR pwszCNGExtraAlgid;
} CRYPT_OID_INFO, *PCRYPT_OID_INFO;
Member
cbSize
Die Größe (in Bytes) dieser Struktur.
pszOID
Die diesen OID-Informationen zugeordnete OID.
pwszName
Der Anzeigename, der einer OID zugeordnet ist.
dwGroupId
Der Gruppenbezeichnerwert, der diesen OID-Informationen zugeordnet ist.
Bei diesem Member kann es sich um einen der folgenden dwGroupId-Gruppenbezeichner handeln.
DUMMYUNIONNAME
DUMMYUNIONNAME.dwValue
Ein numerischer Wert, der diesen OID-Informationen zugeordnet ist. Dieses Element wird mit dwGroupId CRYPT_SIGN_ALG_OID_GROUP_ID verwendet.
DUMMYUNIONNAME.Algid
Der Algorithmusbezeichner, der diesen OID-Informationen zugeordnet ist.
Dieser Member gilt für die folgenden Werte von dwGroupId:
- CRYPT_HASH_ALG_OID_GROUP_ID
- CRYPT_ENCRYPT_ALG_OID_GROUP_ID
- CRYPT_PUBKEY_ALG_OID_GROUP_ID
- CRYPT_SIGN_ALG_OID_GROUP_ID
DUMMYUNIONNAME.dwLength
Dieser Member ist nicht implementiert. Sie ist immer auf Null festgelegt.
ExtraInfo
Zusätzliche Informationen, die zum Suchen oder Registrieren von OID-Informationen verwendet werden. Dieser Member gilt für die folgenden Werte von dwGroupId:
- CRYPT_PUBKEY_ALG_OID_GROUP_ID
- CRYPT_SIGN_ALG_OID_GROUP_ID
- CRYPT_RDN_ATTR_OID_GROUP_ID
Die OIDs in der gruppe CRYPT_PUBKEY_ALG_OID_GROUP_ID verfügen über ein Flag im DWORD[0]-Element des ExtraInfo-Elements.
Die OIDs in den öffentlichen Schlüsseln der ECC-Kurve, szOID_ECC_CURVE_P256 beispielsweise ("1.2.840.10045.3.1.7"), ein Flag im DWORD[0]-Element, einen BCRYPT_ECCKEY_BLOB dwMagic-Feldwert im DWORD[1]-Member und eine Bitlänge, bei der der BCRYPT_ECCKEY_BLOB cbKey-Wert dwBitLength / 8 + ((dwBitLength % 8) entspricht? 1 : 0) im DWORD[2]-Element des ExtraInfo-Members festgelegt.
Die OIDs in der gruppe CRYPT_SIGN_ALG_OID_GROUP_ID verfügen über einen Algorithmusbezeichner für öffentlichen Schlüssel im DWORD[0]-Element, ein Flag im DWORD[1]-Element und einen optionalen Anbietertyp, der im DWORD[2]-Member des ExtraInfo-Members festgelegt ist.
Die OIDs in der Gruppe CRYPT_RDN_ATTR_OID_GROUP_ID verfügen über eine Null-Endungsliste von zulässigen RDN-Attributwerttypen, die in einem Array von DWORD-Werten im ExtraInfo-Member festgelegt sind. Eine ausgelassene Liste impliziert ein Array von Werten, bei dem der erste Wert im Array CERT_RDN_PRINTABLE_STRING, der zweite Wert im Array CERT_RDN_UNICODE_STRING und der dritte Wert im Array 0 ist.
Die folgenden Werte werden für die Flags im ExtraInfo-Member verwendet.
Wert | Bedeutung |
---|---|
|
Dieses Flag wird nicht mehr verwendet.
Beenden Sie die Neuformatierung der Signatur, bevor die CryptVerifySignature-Funktion aufgerufen wird oder nachdem die CryptSignHash-Funktion aufgerufen wurde. |
|
Lassen Sie NULL-Parameter beim Codieren weg. |
|
Der öffentliche Schlüssel wird nur für die Verschlüsselung verwendet. |
|
Der öffentliche Schlüssel wird nur für Signaturen verwendet. |
|
Dieses Flag wird nicht mehr verwendet.
Schließen Sie die Parameter des Algorithmus für öffentliche Schlüssel in die Parameter digestEncryptionAlgorithm für die PKCS #7-Nachricht ein. |
pwszCNGAlgid
Die Algorithmusbezeichnerzeichenfolge, die an die CNG-Funktionen übergeben wird (die Funktionen BCrypt* und NCrypt*, die in Bcrypt.h und Ncrypt.h definiert sind). CNG-Funktionen verwenden Algorithmusbezeichnerzeichenfolgen, z. B. L"SHA1", anstelle der ALG_ID Datentypkonstanten, z. B. CALG_SHA1. Windows Server 2003 und Windows XP: Dieser Member ist nicht verfügbar.
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
Dieser Member gilt für die folgenden Werte von dwGroupId:
- CRYPT_HASH_ALG_OID_GROUP_ID
- CRYPT_ENCRYPT_ALG_OID_GROUP_ID
- CRYPT_PUBKEY_ALG_OID_GROUP_ID
- CRYPT_SIGN_ALG_OID_GROUP_ID
Das pwszCNGAlgid-Element kann auch auf einen Zeichenfolgenwert festgelegt werden, der nicht direkt an die CNG-Funktionen übergeben wird. In der folgenden Tabelle sind diese Werte und ihre Bedeutung aufgeführt.
pwszCNGExtraAlgid
Eine zusätzliche Algorithmuszeichenfolge mit Ausnahme der Zeichenfolge im pwszCNGAlgid-Member , die an die CNG-Funktionen übergeben werden kann (die Funktionen BCrypt* und NCrypt*, die in Bcrypt.h und Ncrypt.h definiert sind).
Windows Server 2003 und Windows XP: Dieser Member ist nicht verfügbar.
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
Für die Signaturalgorithmen (CRYPT_SIGN_ALG_OID_GROUP_ID) ist dieses Element die Algorithmuszeichenfolge des öffentlichen Schlüssels, die an die CNG-Funktionen übergeben werden soll.
Bei ECC-Signaturen ist dieses Element der spezielle CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM Zeichenfolgenwert.
Bei Signaturen ohne Vorzeichen ist dieser Member der spezielle CRYPT_OID_INFO_NO_SIGN_ALGORITHM Zeichenfolgenwert.
Für öffentliche Schlüssel der ECC-Kurve, z. B. szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7"), ist dies der spezielle CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM Zeichenfolgenwert.
Legen Sie für die anderen Werte von dwGroupId den pwszCNGExtraAlgid-Member auf die leere Zeichenfolge L"" fest.
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 |