CRYPT_OID_INFO構造体 (wincrypt.h)
CRYPT_OID_INFO構造体には、オブジェクト識別子 (OID) に関する情報が含まれています。 これらの構造体は、OID 識別子、その名前、グループ、および OID に関するその他の情報間のリレーションシップを提供します。 これらの構造体は、 CryptEnumOIDInfo 関数を使用して一覧表示できます。 新しいCRYPT_OID_STRUCTURESは、 CryptRegisterOIDInfo 関数を使用して追加できます。
構文
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;
メンバー
cbSize
この構造体のサイズ (バイト単位)。
pszOID
この OID 情報に関連付けられている OID。
pwszName
OID に関連付けられている表示名。
dwGroupId
この OID 情報に関連付けられているグループ識別子の値。
このメンバーには、次のいずれかの dwGroupId グループ識別子を指定できます。
DUMMYUNIONNAME
DUMMYUNIONNAME.dwValue
この OID 情報に関連付けられている数値。 このメンバーは、 dwGroupId CRYPT_SIGN_ALG_OID_GROUP_IDで使用されます。
DUMMYUNIONNAME.Algid
この OID 情報に関連付けられているアルゴリズム識別子。
このメンバーは、 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
このメンバーは実装されていません。 常に 0 に設定されます。
ExtraInfo
OID 情報の検索または登録に使用される追加情報。 このメンバーは、 dwGroupId の次の値に適用されます。
- CRYPT_PUBKEY_ALG_OID_GROUP_ID
- CRYPT_SIGN_ALG_OID_GROUP_ID
- CRYPT_RDN_ATTR_OID_GROUP_ID
CRYPT_PUBKEY_ALG_OID_GROUP_ID グループの OID には、ExtraInfo メンバーの DWORD[0] メンバーにフラグが設定されています。
ECC 曲線名公開キーの OID。 たとえば、szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7")、DWORD[0] メンバーにフラグが設定され、DWORD[1] メンバーに設定されたBCRYPT_ECCKEY_BLOB dwMagic フィールド値、およびBCRYPT_ECCKEY_BLOB cbKey 値が dwBitLength/ 8 + ((dwBitNgLeth % 8 ? ) に等しいビット長を指定します。 1 : ExtraInfo メンバーの DWORD[2] メンバーに設定された 0)。
CRYPT_SIGN_ALG_OID_GROUP_ID グループの OID には、DWORD[0] メンバーに設定された公開キー アルゴリズム識別子、DWORD[1] メンバーに設定されたフラグ、および ExtraInfo メンバーの DWORD[2] メンバーに設定されたオプションのプロバイダーの種類があります。
CRYPT_RDN_ATTR_OID_GROUP_ID グループの OID には、ExtraInfo メンバーの DWORD 値の配列に設定された、許容される RDN 属性値型の null で終わるリストがあります。 省略されたリストは、配列内の最初の値がCERT_RDN_PRINTABLE_STRING、配列の 2 番目の値がCERT_RDN_UNICODE_STRING、配列の 3 番目の値が 0 である値の配列を意味します。
ExtraInfo メンバーのフラグには、次の値が使用されます。
値 | 意味 |
---|---|
|
このフラグは使用されなくなりました。
CryptVerifySignature 関数が呼び出される前、または CryptSignHash 関数が呼び出された後に、シグネチャの再フォーマットを停止します。 |
|
エンコード時に NULL パラメーターを省略します。 |
|
公開キーは暗号化にのみ使用されます。 |
|
公開キーは署名にのみ使用されます。 |
|
このフラグは使用されなくなりました。
PKCS #7 メッセージの digestEncryptionAlgorithm パラメーターに公開キー アルゴリズムのパラメーターを含めます。 |
pwszCNGAlgid
CNG 関数 (Bcrypt.h および Ncrypt.h で定義されている BCrypt* 関数と NCrypt* 関数) に渡されるアルゴリズム識別子文字列。 CNG 関数は、CALG_SHA1などの ALG_ID データ型定数の代わりに、L"SHA1" などのアルゴリズム識別子文字列 を使用します。Windows Server 2003 および Windows XP: このメンバーは使用できません。
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
このメンバーは、 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
pwszCNGAlgid メンバーは、CNG 関数に直接渡されない文字列値に設定することもできます。 次の表に、これらの値とその意味を示します。
pwszCNGExtraAlgid
CNG 関数 (Bcrypt.h および Ncrypt.h で定義されている BCrypt* および NCrypt* 関数) に渡すことができる、 pwszCNGAlgid メンバー内の文字列以外の追加のアルゴリズム文字列。
Windows Server 2003 および Windows XP: このメンバーは使用できません。
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
署名アルゴリズム (CRYPT_SIGN_ALG_OID_GROUP_ID) の場合、このメンバーは CNG 関数に渡す公開キー アルゴリズム文字列です。
ECC 署名の場合、このメンバーは特殊なCRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM文字列値です。
署名なしの場合、このメンバーは特殊なCRYPT_OID_INFO_NO_SIGN_ALGORITHM文字列値です。
ECC 曲線名の公開キー (たとえば、szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7") の場合、これは特殊なCRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM文字列値です。
dwGroupId の他の値については、pwszCNGExtraAlgid メンバーを空の文字列 L"" に設定します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | wincrypt.h |