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 CRYPT_OID_INFO-Struktur enthält Informationen zu einem Objektbezeichner (OID). Diese Strukturen geben die Beziehung zwischen einem OID-Bezeichner, seinem Namen, seiner Gruppe und anderen Informationen zum OID. Diese Strukturen können mithilfe der CryptEnumOIDInfo-Funktion aufgelistet werden. Neue CRYPT_OID_STRUCTURES können mithilfe der CryptRegisterOIDInfo-Funktion 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;
Elemente
cbSize
Die Größe dieser Struktur in Byte.
pszOID
Das OID, das diesen OID-Informationen zugeordnet ist.
pwszName
Der Anzeigename, der einem OID zugeordnet ist.
dwGroupId
Der Gruppenbezeichnerwert, der diesen OID-Informationen zugeordnet ist.
Dieses Mitglied kann einer der folgenden dwGroupId-Gruppenbezeichner sein.
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
Dieses Mitglied ist nicht implementiert. Es 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-Mitglieds festgelegt.
Die OIDs in der gruppe CRYPT_PUBKEY_ALG_OID_GROUP_ID weisen ein Flag im DWORD[0]-Mitglied des ExtraInfo-Mitglieds auf.
Die OIDs im ECC-Kurvennamen öffentliche Schlüssel, beispielsweise haben szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7") ein Flag im DWORD[0]-Element, einen im DWORD[0]-Element festgelegten BCRYPT_ECCKEY_BLOB dwMagic-Feldwert im DWORD[1]-Element und eine Bitlänge, wobei der BCRYPT_ECCKEY_BLOB cbKey-Wert dwBitLength / 8 + ((dwBitLength % 8) entspricht? 1 : 0) im DWORD[2]-Mitglied des ExtraInfo-Mitglieds festgelegt.
Die OIDs in der gruppe CRYPT_SIGN_ALG_OID_GROUP_ID verfügen über einen Bezeichner für den öffentlichen Schlüsselalgorithmus im DWORD[0]-Element, ein Kennzeichen im DWORD[1]-Element und einen optionalen Anbietertyp, der im DWORD[2]-Element des ExtraInfo-Mitglieds festgelegt ist.
Die OIDs in der gruppe CRYPT_RDN_ATTR_OID_GROUP_ID verfügen über eine Null-gekündigte Liste zulässiger RDN-Attributwerttypen, die in einem Array von DWORD-Werten im ExtraInfo-Element festgelegt sind. Eine ausgelassene Liste impliziert ein Array von Werten, bei denen der erste Wert im Array CERT_RDN_PRINTABLE_STRING ist, der zweite Wert im Array CERT_RDN_UNICODE_STRING ist und der dritte Wert im Array null ist.
Die folgenden Werte werden für die Flags im ExtraInfo-Element verwendet.
| Wert | Bedeutung |
|---|---|
|
Dieses Kennzeichen wird nicht mehr verwendet.
Beenden Sie die Neuformatierung der Signatur, bevor die Funktion CryptVerifySignature aufgerufen wird oder nachdem die CryptSignHash-Funktion aufgerufen wird. |
|
Lassen Sie NULL-Parameter beim Codieren aus. |
|
Der öffentliche Schlüssel wird nur für die Verschlüsselung verwendet. |
|
Der öffentliche Schlüssel wird nur für Signaturen verwendet. |
|
Dieses Kennzeichen wird nicht mehr verwendet.
Schließen Sie die Parameter des Public Key-Algorithmus in die Parameter digestEncryptionAlgorithm für die PKCS #7-Nachricht ein. |
Post-Quantum-Verwendung
CRYPT_PUBKEY_ALG_OID_GROUP_ID weist die folgenden ExtraInfo-Felder auf, wenn sie mit PQ-OIDs (oben) verwendet werden:
| Feld | BESCHREIBUNG |
|---|---|
| DWORD[0] | Flaggen |
| DWORD[1] | Public Magic (z.B. BCRYPT_MLDSA_PUBLIC_MAGIC) |
| DWORD[2] | Private Magic (z.B. BCRYPT_MLDSA_PRIVATE_SEED_MAGIC) |
| DWORD[4] | Länge des Öffentlichen Schlüsselbytes |
| DWORD[5] | Länge des Privaten Schlüsselbytes |
| DWORD[6] | Länge des Signaturbytes |
CRYPT_SIGN_ALG_OID_GROUP_ID weist die folgenden ExtraInfo-Felder auf, wenn sie mit PQ-OIDs verwendet werden:
| Feld | BESCHREIBUNG |
|---|---|
| DWORD[0] | Flaggen |
| DWORD[1] | Länge des Signaturbytes |
CRYPT_HASH_ALG_OID_GROUP_ID kann auf "L"NoHash" festgelegt werden, um vor dem Signieren keinen Hash anzugeben, und der PQ-Schlüssel signiert die ToBeSigned-Bytes direkt.
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: Dieses Mitglied ist nicht verfügbar.
Hinweis
Das pwszCNGAlgid-Mitglied 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 das pwszCNGAlgid-Element 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 Bedeutungen 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 Hashalgorithmus der PKCS #1 v2.1-Maskengenerierung wird aus den codierten Parametern des OID-Algorithmus abgerufen. |
| CRYPT_OID_INFO_NO_SIGN_ALGORITHM | Ein Algorithmus für öffentliche Schlüssel, der angibt, dass der Signaturwert ein nicht signierter Hash ist. |
| CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM | Der RSAES-OAEP Abstandshashalgorithmus wird aus den codierten Parametern des OID-Algorithmus abgerufen. |
CRYPT32_MLDSA_44_ALGORITHML"ML-DSA:44" |
Der ML-DSA Algorithmus kombiniert den CNG-Algorithmusnamen für ML-DSA und den CNG-Parametersatz 44 (NIST-Sicherheitskategorie 2). |
CRYPT32_MLDSA_65_ALGORITHML"ML-DSA:65" |
Der ML-DSA Algorithmus kombiniert den CNG-Algorithmusnamen für ML-DSA und den CNG-Parameter 65(NIST-Sicherheitskategorie 3). |
CRYPT32_MLDSA_87_ALGORITHML"ML-DSA:87" |
Der ML-DSA Algorithmus kombiniert den CNG-Algorithmusnamen für ML-DSA und den CNG-Parametersatz 87 (NIST-Sicherheitskategorie 5). |
CRYPT_OID_INFO_NO_HASH_ALGORITHML"NoHash" |
Bei digitalen PQ-Signaturen gibt es vor der Signatur keinen Hash, und der PQ-Schlüssel signiert die ToBeSigned-Bytes direkt. |
pwszCNGExtraAlgid
Eine zusätzliche Algorithmuszeichenfolge, außer der Zeichenfolge im pwszCNGAlgid-Element , 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: Dieses Mitglied 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 Zeichenfolge des öffentlichen Schlüsselalgorithmus, die an die CNG-Funktionen übergeben werden soll.
Bei ECC-Signaturen ist dieses Element der spezielle CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM Zeichenfolgenwert.
Bei nicht signierten Signaturen ist dieses Element der spezielle CRYPT_OID_INFO_NO_SIGN_ALGORITHM Zeichenfolgenwert.
Bei öffentlichen SCHLÜSSELn 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 das pwszCNGExtraAlgid-Element auf die leere Zeichenfolge "L"" fest.
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Windows XP [nur Desktop-Apps] |
| Mindestanforderungen für unterstützte Server | Windows Server 2003 [Nur Desktop-Apps] |
| Überschrift | wincrypt.h |