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 グループ識別子を指定できます。

意味
CRYPT_ENCRYPT_ALG_OID_GROUP_ID
暗号化アルゴリズム
CRYPT_ENHKEY_USAGE_OID_GROUP_ID
強化されたキー使用法
CRYPT_EXT_OR_ATTR_OID_GROUP_ID
拡張機能または属性
CRYPT_HASH_ALG_OID_GROUP_ID
ハッシュ アルゴリズム
CRYPT_POLICY_OID_GROUP_ID
ポリシー
CRYPT_PUBKEY_ALG_OID_GROUP_ID
公開キー アルゴリズム
CRYPT_RDN_ATTR_OID_GROUP_ID
RDN 属性
CRYPT_SIGN_ALG_OID_GROUP_ID
署名アルゴリズム

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_ENCRYPT_ALG_OID_GROUP_ID OID グループの OID には、ExtraInfo メンバーの DWORD[0] メンバーの AES アルゴリズムのビット長が設定されています。

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 メンバーのフラグには、次の値が使用されます。

意味
CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG
このフラグは使用されなくなりました。

CryptVerifySignature 関数が呼び出される前、または CryptSignHash 関数が呼び出された後に、シグネチャの再フォーマットを停止します。

CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG
エンコード時に NULL パラメーターを省略します。
CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG
公開キーは暗号化にのみ使用されます。
CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG
公開キーは署名にのみ使用されます。
CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG
このフラグは使用されなくなりました。

PKCS #7 メッセージの digestEncryptionAlgorithm パラメーターに公開キー アルゴリズムのパラメーターを含めます。

pwszCNGAlgid

CNG 関数 (Bcrypt.h および Ncrypt.h で定義されている BCrypt* 関数と NCrypt* 関数) に渡されるアルゴリズム識別子文字列。 CNG 関数は、CALG_SHA1などの ALG_ID データ型定数の代わりに、L"SHA1" などのアルゴリズム識別子文字列 使用します。Windows Server 2003 および Windows XP: このメンバーは使用できません。

メモpwszCNGAlgid メンバーは、コードに次のステートメントを含める場合にのみ使用できます。
 
#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
dwGroupId の他の値に対して、pwszCNGAlgid メンバーを空の文字列 L""" に設定します。

pwszCNGAlgid メンバーは、CNG 関数に直接渡されない文字列値に設定することもできます。 次の表に、これらの値とその意味を示します。

意味
CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM
ECC 曲線アルゴリズムは、OID アルゴリズムのエンコードされたパラメーターから取得されます。
CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM
キー ラップ アルゴリズムは、OID アルゴリズムのエンコードされたパラメーターから取得されます。
CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM
ハッシュ アルゴリズムは、OID アルゴリズムのエンコードされたパラメーターから取得されます。
CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM
PKCS #1 v2.1 マスク生成ハッシュ アルゴリズムは、OID アルゴリズムのエンコードされたパラメーターから取得されます。
CRYPT_OID_INFO_NO_SIGN_ALGORITHM
署名値が符号なしハッシュであることを示す公開キー アルゴリズム。
CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM
RSAES-OAEP パディング ハッシュ アルゴリズムは、OID アルゴリズムのエンコードされたパラメーターから取得されます。

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

こちらもご覧ください

CryptFindOIDInfo

CryptRegisterOIDInfo

CryptUnregisterOIDInfo