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.

Wert Bedeutung
CRYPT_ENCRYPT_ALG_OID_GROUP_ID
Verschlüsselungsalgorithmen
CRYPT_ENHKEY_USAGE_OID_GROUP_ID
Erweiterte Schlüsselverwendungen
CRYPT_EXT_OR_ATTR_OID_GROUP_ID
Erweiterungen oder Attribute
CRYPT_HASH_ALG_OID_GROUP_ID
Hashalgorithmen
CRYPT_POLICY_OID_GROUP_ID
Richtlinien
CRYPT_PUBKEY_ALG_OID_GROUP_ID
Algorithmen für öffentliche Schlüssel
CRYPT_RDN_ATTR_OID_GROUP_ID
RDN-Attribute
CRYPT_SIGN_ALG_OID_GROUP_ID
Signaturalgorithmen

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 CRYPT_ENCRYPT_ALG_OID_GROUP_ID OID-Gruppe haben eine Bitlänge für die AES-Algorithmen im DWORD[0]-Element des ExtraInfo-Elements festgelegt.

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
CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG
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.

CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG
Lassen Sie NULL-Parameter beim Codieren weg.
CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG
Der öffentliche Schlüssel wird nur für die Verschlüsselung verwendet.
CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG
Der öffentliche Schlüssel wird nur für Signaturen verwendet.
CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG
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.

Hinweis Das pwszCNGAlgid-Element ist nur verfügbar, wenn Sie die folgende Anweisung in Ihren Code einschließen.
 
#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
Legen Sie den pwszCNGAlgid-Member für die anderen Werte von dwGroupId auf die leere Zeichenfolge L"" fest.

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.

Wert Bedeutung
CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM
Der ECC-Kurvenalgorithmus wird aus den codierten Parametern des OID-Algorithmus abgerufen.
CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM
Der Schlüsselumbruchalgorithmus wird aus den codierten Parametern des OID-Algorithmus abgerufen.
CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM
Der Hashalgorithmus wird aus den codierten Parametern des OID-Algorithmus abgerufen.
CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM
Der PKCS #1 v2.1 Maskengenerierungshashalgorithmus wird aus den codierten Parametern des OID-Algorithmus abgerufen.
CRYPT_OID_INFO_NO_SIGN_ALGORITHM
Ein Algorithmus mit öffentlichem Schlüssel, der angibt, dass der Signaturwert ein nicht signierter Hash ist.
CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM
Der RSAES-OAEP-Padding-Hashalgorithmus wird aus den codierten Parametern des OID-Algorithmus abgerufen.

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.

Hinweis Dieses Element ist nur verfügbar, wenn Sie die folgende Anweisung in Ihren Code einschließen.
 
#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

Weitere Informationen

CryptFindOIDInfo

CryptRegisterOIDInfo

CryptUnregisterOIDInfo