Share via


キー ストレージ プロパティ識別子

キー ストレージ プロパティを識別するには、次の値を使用します。

識別子

NCRYPT_ALGORITHM_GROUP_PROPERTY

L"Algorithm Group"

オブジェクトのアルゴリズム グループの名前を含む null で終わる Unicode 文字列。 このプロパティはキーにのみ適用されます。 次の識別子は、Microsoft キー ストレージ プロバイダーによって返されます。

識別子 説明
NCRYPT_RSA_ALGORITHM_GROUP "RSA" RSA アルゴリズム グループ。
NCRYPT_DH_ALGORITHM_GROUP "DH" Diffie-Hellman アルゴリズム グループ。
NCRYPT_DSA_ALGORITHM_GROUP "DSA" DSA アルゴリズム グループ。
NCRYPT_ECDSA_ALGORITHM_GROUP "ECDSA" 楕円曲線 DSA アルゴリズム グループ。
NCRYPT_ECDH_ALGORITHM_GROUP "ECDH" アルゴリズム グループDiffie-Hellman楕円曲線。

NCRYPT_ALGORITHM_PROPERTY

L"Algorithm Name"

オブジェクトのアルゴリズムの名前を含む null で終わる Unicode 文字列。 これには、定義済みの CNG アルゴリズム識別子 のいずれか、または別の登録済みアルゴリズム識別子を指定できます。 このプロパティはキーにのみ適用されます。

NCRYPT_ASSOCIATED_ECDH_KEY

L"SmartCardAssociatedECDHKey"

楕円曲線デジタル署名アルゴリズム (ECDSA) キーへの特定のハンドルのログオン時に使用する楕円曲線Diffie-Hellman (ECDH) キーのコンテナー名を示す LPWSTR 値。 カードに ECDH キーがない場合、 キー ストレージ プロバイダー (KSP) は を返します NTE_NOT_FOUND。 このプロパティは、スマート カードを使用したログオン用の ECDSA キーに適用されます。 プロパティは、Microsoft ソフトウェア キー ストレージ プロバイダーではなく、Microsoft スマート カード キー ストレージ プロバイダーによってサポートされています。

Windows Server 2008 と Windows Vista: この値はサポートされていません。

NCRYPT_BLOCK_LENGTH_PROPERTY

L"Block Length"

暗号化ブロックの長さ (バイト単位) を含む DWORD 。 このプロパティは、暗号化をサポートするキーにのみ適用されます。

NCRYPT_CERTIFICATE_PROPERTY

L"SmartCardKeyCertificate"

キーに関連付けられている X.509 証明書を含む BLOB

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista:スマート カード キー証明書を含む BLOB。 このプロパティは、Microsoft ソフトウェア キー ストレージ プロバイダーではサポートされていません。

NCRYPT_DH_PARAMETERS_PROPERTY

L"DHParameters"

Diffie-Hellman キーで使用するパラメーターを指定します。 このデータ型は、 BCRYPT_DH_PARAMETER_HEADER 構造体へのポインターです。 このプロパティは、キーが完了する前に、キーに対してのみ設定でき、設定する必要があります。

NCRYPT_EXPORT_POLICY_PROPERTY

L"Export Policy"

永続化されたキーのエクスポート ポリシーを指定するフラグのセットを含む DWORD 。 このプロパティはキーにのみ適用されます。 これには、次の値の 0 または 1 つ以上の組み合わせを含めることができます。

識別子 説明
NCRYPT_ALLOW_EXPORT_FLAG 0x00000001 秘密キーはエクスポートできます。
NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG 0x00000002 秘密キーはプレーンテキスト形式でエクスポートできます。
NCRYPT_ALLOW_ARCHIVING_FLAG 0x00000004 秘密キーは、アーカイブ目的で 1 回エクスポートできます。 このフラグは、設定されている元のキー ハンドルにのみ適用されます。 このポリシーは、元のキー ハンドルにのみ適用できます。 キー ハンドルを閉じた後は、アーカイブのためにキーをエクスポートできなくなります。
NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG 0x00000008 秘密キーは、アーカイブのためにプレーンテキスト形式で 1 回エクスポートできます。 このフラグは、設定されている元のキー ハンドルにのみ適用されます。 このポリシーは、元のキー ハンドルにのみ適用できます。 キー ハンドルを閉じた後は、アーカイブのためにキーをエクスポートできなくなります。

NCRYPT_IMPL_TYPE_PROPERTY

L"Impl Type"

プロバイダーの実装の詳細を定義するフラグのセットを含む DWORD 。 このプロパティは、キー ストレージ プロバイダーにのみ適用されます。 これには、次の値の 0 または 1 つ以上の組み合わせを含めることができます。

識別子 説明
NCRYPT_IMPL_HARDWARE_FLAG 0x00000001 プロバイダーはハードウェア ベースです。
NCRYPT_IMPL_SOFTWARE_FLAG 0x00000002 プロバイダーはソフトウェア ベースです。
NCRYPT_IMPL_REMOVABLE_FLAG 0x00000008 プロバイダーはリムーバブルです。
NCRYPT_IMPL_HARDWARE_RNG_FLAG 0x00000010 プロバイダーは、ハードウェア ベースの乱数ジェネレーターです。

NCRYPT_KEY_TYPE_PROPERTY

L"Key Type"

キーの種類を定義するフラグのセットを含む DWORD 。 このプロパティはキーにのみ適用されます。 これには、0 または次の値を含めることができます。

識別子 説明
NCRYPT_MACHINE_KEY_FLAG 0x00000020 キーはローカル コンピューターに適用されます。 このフラグが存在しない場合、キーは現在のユーザーに適用されます。

NCRYPT_KEY_USAGE_PROPERTY

L"Key Usage"

キーの使用状況の詳細を定義するフラグのセットを含む DWORD 。 このプロパティはキーにのみ適用されます。 これには、次の値の 0 または 1 つ以上の組み合わせを含めることができます。

識別子 説明
NCRYPT_ALLOW_DECRYPT_FLAG 0x00000001 キーは暗号化解除に使用できます。
NCRYPT_ALLOW_SIGNING_FLAG 0x00000002 キーは署名に使用できます。
NCRYPT_ALLOW_KEY_AGREEMENT_FLAG 0x00000004 キーは、秘密契約の暗号化に使用できます。
NCRYPT_ALLOW_ALL_USAGES 0x00ffffff キーは、任意の目的で使用できます。

NCRYPT_LAST_MODIFIED_PROPERTY

L"Modified"

キーが最後に変更された日時を示します。 このデータ型は、 FILETIME 構造体へのポインターです。 このプロパティは、永続化されたキーにのみ適用されます。

NCRYPT_LENGTH_PROPERTY

L"Length"

キーの長さをビット単位で格納する DWORD 。 このプロパティはキーにのみ適用されます。

NCRYPT_LENGTHS_PROPERTY

L"Lengths"

キーでサポートされているキー サイズを示します。 このデータ型は、この情報を含む NCRYPT_SUPPORTED_LENGTHS 構造体へのポインターです。 このプロパティはキーにのみ適用されます。

NCRYPT_MAX_NAME_LENGTH_PROPERTY

L"Max Name Length"

永続キーの名前の最大長 (文字数) を含む DWORD 。 このプロパティは、プロバイダーにのみ適用されます。

このプロパティは、主に、スマート カードなどの使用可能なメモリ量が限られているデバイスにキーを格納するキー ストレージ プロバイダーが使用することを目的としています。

NCRYPT_NAME_PROPERTY

L"Name"

オブジェクトの名前を含む null で終わる Unicode 文字列へのポインター。

NCRYPT_PIN_PROMPT_PROPERTY

L"SmartCardPinPrompt"

この値はサポートされていません。

NCRYPT_PIN_PROPERTY

L"SmartCardPin"

PIN を含む null で終わる Unicode 文字列へのポインター。 PIN は、ソフトウェア ベースの KSP に格納されているパスワードで保護されたキーのスマート カード キーまたはパスワードに使用されます。 このプロパティは、設定することしかできません。 Microsoft KSP はこの値をキャッシュするため、ユーザーはプロセスごとに 1 回だけプロンプトが表示されます。

NCRYPT_PROVIDER_HANDLE_PROPERTY

L"Provider Handle"

CNG キー ストレージ プロバイダーのハンドルを含む NCRYPT_PROV_HANDLE 。 ハンドルの使用が完了したら、 NCryptFreeObject を呼び出して解放する必要があります。

NCRYPT_READER_PROPERTY

L"SmartCardReader"

スマート カード リーダーの名前を含む null で終わる Unicode 文字列へのポインター。 このプロパティは、設定することしかできません。

NCRYPT_ROOT_CERTSTORE_PROPERTY

L"SmartcardRootCertStore"

スマート カードルート証明書ストアを表す HCERTSTORE

NCRYPT_SCARD_PIN_ID

L"SmartCardPinId"

スマート カード上の特定のPIN_ID暗号化キーに関連付けられている値へのポインター。 これは、読み取り専用プロパティです。 データ型は PIN_IDCardmod.h定義されています。

Windows Server 2008 と Windows Vista: この値はサポートされていません。

NCRYPT_SCARD_PIN_INFO

L"SmartCardPinInfo"

スマート カード PIN_INFO 特定の暗号化キーに関連付けられている PIN の構造へのポインター。 呼び出し元は、キー ハンドルを提供します。 このプロパティは、読み取り専用のプロパティです。 構造体は PIN_INFOCardmod.h定義されています。

Windows Server 2008 と Windows Vista: この値はサポートされていません。

NCRYPT_SECURE_PIN_PROPERTY

L"SmartCardSecurePin"

スマート カード セッション PIN を含む null で終わる Unicode 文字列へのポインター。 このプロパティは、設定することしかできません。

Windows Vista: このプロパティはサポートされていません。

NCRYPT_SECURITY_DESCR_PROPERTY

L"Security Descr"

キーのアクセス制御情報を含む SECURITY_DESCRIPTOR 構造体へのポインター。 このプロパティは、永続的なキーにのみ適用されます。 NCryptGetProperty または NCryptSetProperty 関数の dwFlags パラメーターは、取得または設定するセキュリティ記述子の一部を識別します。

NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY

L"Security Descr Support"

プロバイダーがキーのセキュリティ記述子をサポートしているかどうかを示します。 プロバイダーがキーのセキュリティ記述子をサポートしている場合、このプロパティは 1 を含む DWORD です。 このプロパティに他の値が含まれている場合、または NCryptGetProperty 関数が を返す NTE_NOT_SUPPORTED場合、プロバイダーはキーのセキュリティ記述子をサポートしません。 このプロパティはプロバイダーにのみ適用されます。

NCRYPT_SMARTCARD_GUID_PROPERTY

L"SmartCardGuid"

スマート カードの識別子を含む BLOB。

NCRYPT_UI_POLICY_PROPERTY

L"UI Policy"

NCryptSetProperty 関数または NCryptGetProperty 関数と共に使用する場合、これはキーの強力なキー ユーザー インターフェイス ポリシーを含むNCRYPT_UI_POLICY構造体へのポインターです。 このプロパティは、永続的なキーにのみ適用されます。 このプロパティは、キーが生成されている場合にのみ設定できます。 このキーに対して NCryptFinalizeKey 関数が呼び出されると、このプロパティは読み取り専用になります。

キー ストレージ プロバイダーは、 NCryptSetPropertyFn コールバック関数を介してこのパラメーターを受け取ることができます。 パラメーター値は、 NCRYPT_UI_POLICY_BLOB 同じ情報を含む構造体です。 同様に、アプリケーションが NCryptSetPropertyFn を介してプロバイダーにこのプロパティを返す要求を行うと、プロバイダーは構造体を NCRYPT_UI_POLICY_BLOB 返す必要があります。

NCRYPT_UNIQUE_NAME_PROPERTY

L"Unique Name"

オブジェクトの一意の名前を含む null で終わる Unicode 文字列へのポインター。 これは、キーにアクセスするときに使用できる代替名です。 このプロパティは、最初に NCryptCreatePersistedKey に渡されたキー名が、永続化されたキーを確実に識別するのに十分な一意でないと考えられている場合に使用されます。 Microsoft キー ストレージ プロバイダーは、キーのファイル名をこのプロパティとして返します。

NCRYPT_USE_CONTEXT_PROPERTY

L"Use Context"

操作のコンテキストを記述する null で終わる Unicode 文字列へのポインター。 このプロパティは永続的ではなく、プロバイダーまたはキーで設定できます。 キーはプロバイダーの プロパティに NCRYPT_USE_CONTEXT_PROPERTY アクセスできません。これは、プロパティが設定されているハンドルにのみ固有であるためです。

プロバイダーのコンテキストでこのプロパティを使用する例は、 NCryptOpenKey の呼び出し中にユーザーにプロンプトを表示する必要があるキー ストレージ プロバイダーです (たとえば、"リーダーにスマート カードを挿入する")。 キー ハンドルは NCryptOpenKey が返されるまで使用できないため、アプリケーションは NCryptOpenKey を呼び出す前にプロバイダー ハンドルでこのプロパティを設定する必要があります。

キー ハンドルのコンテキストでこのプロパティを使用する例は、キーを使用する操作中にユーザーにプロンプトを表示する必要があるキー ストレージ プロバイダーです (たとえば、"このアプリケーションでは、このキーを使用してドキュメントに署名する必要があります")。 その後、プロバイダーは、操作中に表示される任意のユーザー インターフェイスで、このコンテキスト情報をユーザーに中継できます。

NCRYPT_USE_COUNT_ENABLED_PROPERTY

L"Enabled Use Count"

プロバイダーがキーの使用状況カウントをサポートしているかどうかを示します。 このプロパティは、プロバイダーがキーの使用状況カウントをサポートしている場合に 1 を含む DWORD です。 このプロパティに他の値が含まれている場合、または NCryptGetProperty 関数が を返す NTE_NOT_SUPPORTED場合、プロバイダーはキーの使用状況カウントをサポートしません。 このプロパティはプロバイダーにのみ適用されます。

NCRYPT_USE_COUNT_PROPERTY

L"Use Count"

指定した秘密キーが実行した操作の数を含むULARGE_INTEGER変数。 このプロパティは省略可能であり、すべてのプロバイダーでサポートされていない場合があります。 キーでこのプロパティをサポートするプロバイダーは、プロバイダー ハンドルの NCRYPT_USE_COUNT_ENABLED_PROPERTY プロパティもサポートする必要があります。 Microsoft キー ストレージ プロバイダーでは、このプロパティはサポートされていません。 このプロパティは、永続的なキーにのみ適用されます。

NCRYPT_USER_CERTSTORE_PROPERTY

L"SmartCardUserCertStore"

スマート カード ユーザー証明書ストアを表す HCERTSTORE

NCRYPT_VERSION_PROPERTY

L"Version"

プロバイダーのソフトウェア バージョンを含む DWORD 。 高い単語にはメジャー バージョンが含まれており、低い単語にはマイナー バージョンが含まれています。 たとえば、「 0x00030033 = 3.51 」のように入力します。 このプロパティはプロバイダーにのみ適用されます。

NCRYPT_WINDOW_HANDLE_PROPERTY

L"HWND Handle"

表示されるすべてのユーザー インターフェイスの親として使用されるウィンドウ ハンドル (HWND) へのポインター。

親の NULL ウィンドウ ハンドルを使用してユーザー インターフェイスを表示すると望ましくない動作が発生する可能性があるため、このプロパティが設定されていない限り、キー ストレージ プロバイダーにユーザー インターフェイスを表示しないことを強くお勧めします。

プロパティ データの制限を定義するには、次の値を使用します。

定数 説明
NCRYPT_MAX_PROPERTY_DATA 0x100000 プロパティ値の最大サイズをバイト単位で指定します。
NCRYPT_MAX_PROPERTY_NAME 64 プロパティ名の最大サイズを文字数で指定します。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header Ncrypt.h

関連項目