ICspStatus::get_Ordinal メソッド (certenroll.h)
Ordinal プロパティは、ICspStatuses コレクション内の ICspStatus オブジェクトの位置を指定または取得します。
このプロパティは読み取り/書き込み可能です。
構文
HRESULT get_Ordinal(
LONG *pValue
);
パラメーター
pValue
戻り値
なし
解説
序数によって ICspStatuses コレクションを反復処理するには、 ItemByOrdinal プロパティを呼び出します。 コレクション内の ICspStatus オブジェクトの序数順序は、次のようなさまざまな理由で、コレクションが列挙されるたびに異なる場合があります。
- 証明書要求テンプレートの設定
- 暗号化プロバイダーのプロパティ値
- 秘密キー プロパティの値
たとえば、証明書要求を作成するために選択されたバージョン 2 テンプレートでは、証明書を署名にのみ使用でき ( pKIDefaultKeySpec テンプレート属性がXCN_AT_SIGNATURE)、既定のプロバイダーが Microsoft Enhanced RSA および AES Cryptographic Provider であることを指定しているとします。 プロバイダーが暗号化アルゴリズムと署名アルゴリズムの両方をサポートしている場合でも、テンプレートによって証明書の署名が制限されていることに注意してください。 つまり、プロバイダーの KeySpec プロパティは、XCN_AT_KEYEXCHANGE定数とXCN_AT_SIGNATURE定数のビットごとの組み合わせですが、 pKIDefaultKeySpec テンプレート属性はXCN_AT_SIGNATUREのみをサポートします。
コレクション内の ICspStatus オブジェクトは、次のように並べ替えられます。
- このプロバイダーに列挙されている ICspStatus オブジェクトのうち、署名アルゴリズム (XCN_AT_SIGNATURE) に関連付けられているオブジェクトは最初に順序付けされ (下位序数)、 Display プロパティと Selected プロパティが有効になります。 メモpKIDefaultKeySpec テンプレート属性がXCN_AT_KEYEXCHANGEされている場合、暗号化アルゴリズムは最初に順序付けされます。
- このプロバイダーに列挙されている ICspStatus オブジェクトのうち、暗号化アルゴリズム (XCN_AT_KEYEXCHANGE) に関連付けられているオブジェクトは後で順序付けされ (上位の序数)、 Display プロパティと Selected プロパティは有効になっていません。
- 非対称署名アルゴリズム (XCN_AT_SIGNATURE) をサポートしているが、指定したプロバイダーに関連付けられていない他のすべての CryptoAPI プロバイダーでは、 Display プロパティが有効になり 、Selected プロパティが有効になっていません。
- 非対称暗号化アルゴリズム (XCN_AT_KEYEXCHANGE) をサポートする他のすべてのインストール済み CryptoAPI プロバイダーでは、 Display プロパティと Selected プロパティは有効になっていません。
- インストールされているすべての Cryptography API: Next Generation (CNG) プロバイダーでは、 Display プロパティと Selected プロパティは有効になっていません。
別の例として、バージョン 3 テンプレートで特定の CNG プロバイダーとアルゴリズムが 1 つ指定されているとします。 そのプロバイダーとアルゴリズムのペア (ICspStatus オブジェクト) が最初に順序付けされ、表示が有効になり、選択されます。 そのプロバイダーでサポートされている他のすべてのアルゴリズムは、後で順序付けされ、表示が有効ではなく、選択されていません。 指定したアルゴリズムをサポートする他のすべてのプロバイダーは、後で引き続き順序付けされ、表示が有効になりますが、選択されません。 残りのプロバイダーとアルゴリズムのペアはすべて、表示が有効ではなく、選択されていません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | certenroll.h |
[DLL] | CertEnroll.dll |