

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# サポートされている API オペレーション AWS CloudHSM クライアント SDK 5 のキーストレージプロバイダー (KSP)
<a name="ksp-library-apis"></a>

KSP のパラメータは、Microsoft KSP によって定義されます。詳細については、[Microsoft のドキュメント](https://learn.microsoft.com/en-us/windows/win32/api/ncrypt/)を参照してください。

キーストレージプロバイダー (KSP) は、 AWS CloudHSM クライアント SDK 5 の次の KSP API オペレーションをサポートしています。
+ [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)
+ [NCryptOpenKey](ksp-library-apis-open-key.md)
+ [NCryptCreatePersistedKey](ksp-library-apis-create-persisted-key.md)
+ [NCryptGetProperty](ksp-library-apis-get-property.md)
+ [NCryptSetProperty](ksp-library-apis-set-property.md)
+ [NCryptFinalizeKey](ksp-library-apis-finalize-key.md)
+ [NCryptDeleteKey](ksp-library-apis-delete-key.md)
+ [NCryptFreeObject](ksp-library-apis-free-object.md)
+ [NCryptFreeBuffer](ksp-library-apis-free-buffer.md)
+ [NCryptIsAlgSupported](ksp-library-apis-is-alg-supported.md)
+ [NCryptEnumAlgorithms](ksp-library-apis-enum-algorithms.md)
+ [NCryptEnumKeys](ksp-library-apis-enum-keys.md)
+ [NCryptExportKey](ksp-library-apis-export-key.md)
+ [NCryptSignHash](ksp-library-apis-sign-hash.md)
+ [NCryptVerifySignature](ksp-library-apis-verify-signature.md)

# キーストレージプロバイダー (KSP) を使用した NCryptOpenStorageProvider 関数
<a name="ksp-library-apis-open-provider"></a>

`NCryptOpenStorageProvider` 関数は、キーストレージプロバイダー (KSP) をロードして初期化します。

## パラメータ
<a name="ksp-library-apis-open-provider-parameters"></a>

 `phProvider` [out]   
プロバイダーハンドルを保存する `NCRYPT_PROV_HANDLE` 変数へのポインタ。

 `pszProviderName` [in]   
キーストレージプロバイダーを識別する、null 終端された Unicode 文字列へのポインタ。AWS CloudHSM キーストレージプロバイダー (KSP) は以下の値をサポートしています。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-open-provider.html)
値は、リテラルの前に L が付いていることからわかるように、ワイド文字列リテラルです。

`dwFlags` [in]  
関数の動作を変更するフラグ。この関数にはフラグが定義されていません。

## 戻り値
<a name="ksp-library-apis-open-provider-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptOpenKey
<a name="ksp-library-apis-open-key"></a>

`NCryptOpenKey` 関数は、キーストレージプロバイダー (KSP) に存在するキーを開きます。

## パラメータ
<a name="ksp-library-apis-open-key-parameters"></a>

 `hProvider` [in]   
キーを含む KSP ハンドル。このハンドルは、[`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) を使用して取得します。

 `phKey` [out]   
キーハンドルを保存する `NCRYPT_KEY_HANDLE` 変数へのポインタ。

`pszKeyName` [in]  
キー名を含む、null 終端された Unicode 文字列へのポインタ。

`dwLegacyKeySpec` [in, unused]  
AWS CloudHSM Key Storage Provider (KSP) はこのパラメータを使用しません。

`dwFlags` [in]  
関数の動作を変更するフラグ。この関数にはフラグが定義されていません。

## 戻り値
<a name="ksp-library-apis-open-key-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hProvider` のハンドルが無効です。  | 
|  NTE\$1BAD\$1KEYSET  |  指定されたキー名は一意の結果を返しませんでした。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptCreatePersistedKey
<a name="ksp-library-apis-create-persisted-key"></a>

`NCryptCreatePersistedKey` 関数は、新しいキーを作成し、それをキーストレージプロバイダー (KSP) に保存します。キーを作成した後、[`NCryptSetProperty`](ksp-library-apis-set-property.md) 関数を使用してそのプロパティを設定できます。キーを使用する前に、[`NCryptFinalizeKey`](ksp-library-apis-finalize-key.md) を呼び出す必要があります。

## パラメータ
<a name="ksp-library-apis-create-persisted-key-parameters"></a>

 `hProvider` [in]   
キーを作成するキーストレージプロバイダーのハンドル。このハンドルは、[`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) を使用して取得します。

 `phKey` [out]   
キーハンドルを収納する `NCRYPT_KEY_HANDLE` 変数のアドレス。

 `pszAlgId` [in]   
キーを作成するための暗号アルゴリズム識別子を指定する、null 終端された Unicode 文字列へのポインタ。  
AWS CloudHSM Key Storage Provider (KSP) は、次のアルゴリズムをサポートしています。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

`pszKeyName` [in, optional]  
キー名を含む null 終端された Unicode 文字列へのポインタ。このパラメータが NULL の場合、この関数は永続化されない一時キーを作成します。

`dwLegacyKeySpec` [in, unused]  
AWS CloudHSM Key Storage Provider (KSP) はこのパラメータを使用しません。

`dwFlags` [in]  
関数の動作を変更するためのフラグ。以下の値を 0 個以上使用します。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

## 戻り値
<a name="ksp-library-apis-create-persisted-key-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  関数は正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszAlgId` パラメータにサポートされていない値が含まれています。  | 
|  NTE\$1EXISTS  |  指定された名前のキーは既に存在し、オペレーションは ` NCRYPT_OVERWRITE_KEY_FLAG` を使用しませんでした。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptGetProperty
<a name="ksp-library-apis-get-property"></a>

`NCryptGetProperty` 関数は、キーストレージオブジェクトのプロパティ値を取得します。

## パラメータ
<a name="ksp-library-apis-create-get-property-parameters"></a>

 `hObject` [in]   
 プロパティを取得する対象のオブジェクトのハンドル。次を使用できます。  
+ プロバイダーハンドル (`NCRYPT_PROV_HANDLE`)
+ キーハンドル (`NCRYPT_KEY_HANDLE`)

 `pszProperty ` [in]   
取得するプロパティ名を含む null 終端 Unicode 文字列へのポインタ。  
を使用する場合`NCRYPT_PROV_HANDLE`、 AWS CloudHSM キーストレージプロバイダー (KSP) は次の KSP 識別子をサポートします。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
を使用する場合`NCRYPT_KEY_HANDLE`、 AWS CloudHSM キーストレージプロバイダー (KSP) は次の KSP 識別子をサポートします。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
値は、リテラルの前に L が付いていることからわかるように、ワイド文字列リテラルです。

 `pbOutput` [out]   
プロパティ値を保存するバッファのアドレス。`cbOutput` を使用してバッファサイズを指定します。  
必要なバッファサイズを決定するには、このパラメータを NULL に設定します。この関数は、必要なサイズ (バイト単位) を `pcbResult` が指す場所に保存します。

 `cbOutput` [in]   
 `pbOutput` バッファのサイズ (バイト単位)。

`pcbResult` [out]  
`pbOutput` バッファにコピーされたバイト数を保存する DWORD 変数へのポインタ。  
`pbOutput` が NULL の場合、必要なサイズ (バイト単位) が保存されます。

`dwFlags` [in]  
関数の動作を変更するためのフラグ。ゼロまたは以下の値を使用できます。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
pszProperty が `NCRYPT_SECURITY_DESCR_PROPERTY` の場合、次のいずれかまたは組み合わせを使用します。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)

## 戻り値
<a name="ksp-library-apis-get-property-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszAlgId` パラメータには、サポートされていない値が含まれています。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hObject` のハンドルが無効です。  | 
|  NTE\$1BUFFER\$1TOO\$1SMALL  |  `cbOutput` パラメータが、戻り値を格納するには小さすぎます。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptSetProperty
<a name="ksp-library-apis-set-property"></a>

`NCryptSetProperty` 関数は、キーストレージオブジェクトのプロパティ値を設定します。

## パラメータ
<a name="ksp-library-apis-create-set-property-parameters"></a>

 `hObject` [in]   
 プロパティを設定する対象のオブジェクトのハンドル。次を使用できます。  
+ プロバイダーハンドル (`NCRYPT_PROV_HANDLE`)
+ キーハンドル (`NCRYPT_KEY_HANDLE`)

 `pszProperty ` [in]   
取得するプロパティ名を含む null 終端 Unicode 文字列へのポインタ。  
を使用する場合`NCRYPT_PROV_HANDLE`、 AWS CloudHSM キーストレージプロバイダー (KSP) は次の KSP 識別子をサポートします。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-set-property.html)
を使用する場合`NCRYPT_KEY_HANDLE`、 AWS CloudHSM キーストレージプロバイダー (KSP) は次の KSP 識別子をサポートします。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-set-property.html)
値は、リテラルの前に L が付いていることからわかるように、ワイド文字列リテラルです。

 `pbInput` [in]   
 新しいプロパティ値を含むバッファのアドレス。`cbInput` にはバッファのサイズが含まれます。

 `cbInput` [in]   
 `pbInput` バッファのサイズ (バイト単位)。

`dwFlags` [in]  
関数の動作を変更するフラグ。この関数にはフラグが定義されていません。

## 戻り値
<a name="ksp-library-apis-set-property-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszProperty` パラメータには、サポートされていない値が含まれています。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hObject` のハンドルが無効です。  | 
|  NTE\$1BAD\$1DATA  |  `pbInput` および `cbInput` が指すデータは有効ではありません。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptFinalizeKey
<a name="ksp-library-apis-finalize-key"></a>

`NCryptFinalizeKey` 関数は KSP キーを完了します。キーを使用する前に、この関数を呼び出す必要があります。

## パラメータ
<a name="ksp-library-apis-finalize-key-parameters"></a>

 `hKey` [in]   
 完了するキーのハンドル。[NCryptCreatePersistedKey](ksp-library-apis-create-persisted-key.md) 関数を呼び出して、このハンドルを取得します。

`dwFlags` [in]  
関数の動作を変更するためのフラグ。0 または次の値を使用できます。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-finalize-key.html)

## 戻り値
<a name="ksp-library-apis-finalize-key-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hKey` のハンドルが無効です。  | 
|  NTE\$1NOT\$1SUPPORTED  |  `dwFlags` パラメータには、サポートされていない値が含まれています。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptDeleteKey
<a name="ksp-library-apis-delete-key"></a>

`NCryptDeleteKey` 関数は、キーストレージプロバイダー (KSP) から KSP キーを削除します。

## パラメータ
<a name="ksp-library-apis-delete-key-parameters"></a>

 `hKey` [in]   
 削除するキーのハンドル。

`dwFlags` [in]  
関数の動作を変更するためのフラグ。以下の値を 0 個以上使用できます。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-delete-key.html)

## 戻り値
<a name="ksp-library-apis-delete-key-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  関数は成功しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hKey` のハンドルが無効です。  | 
|  NTE\$1INTERNAL\$1ERROR  |  キーの削除中に内部エラーが発生しました。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptFreeObject
<a name="ksp-library-apis-free-object"></a>

`NCryptFreeObject` 関数は、キーストレージプロバイダー (KSP) からプロバイダーまたはキーハンドルを解放します。

## パラメータ
<a name="ksp-library-apis-free-object-parameters"></a>

 `hObject` [in]   
 解放するオブジェクトのハンドル。次を使用できます。  
+ プロバイダーハンドル (`NCRYPT_PROV_HANDLE`)
+ キーハンドル (`NCRYPT_KEY_HANDLE`)

## 戻り値
<a name="ksp-library-apis-free-object-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hObject` のハンドルが無効です。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptFreeBuffer
<a name="ksp-library-apis-free-buffer"></a>

`NCryptFreeBuffer` 関数は、キーストレージプロバイダー (KSP) によって割り当てられたメモリのブロックを解放します。

## パラメータ
<a name="ksp-library-apis-free-buffer-parameters"></a>

 `pvInput` [in]   
 解放するメモリのアドレス。

## 戻り値
<a name="ksp-library-apis-free-buffer-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptIsAlgSupported
<a name="ksp-library-apis-is-alg-supported"></a>

NCryptIsAlgSupported 関数は、キーストレージプロバイダー (KSP) が特定の暗号アルゴリズムをサポートしているかどうかを判定します。

## パラメータ
<a name="ksp-library-apis-is-alg-supported-parameters"></a>

 `hProvider` [in]   
 キーストレージプロバイダーのハンドル。このハンドルは、[`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) を使用して取得します。

 `pszAlgId` [in]   
 キーを作成するための暗号アルゴリズムの識別子を含む、null 終端された Unicode 文字列へのポインタ。AWS CloudHSM キーストレージプロバイダー (KSP) がサポートするアルゴリズムは以下のとおりです。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-is-alg-supported.html)

`dwFlags` [in]  
関数の動作を変更するフラグ。これには、ゼロまたは次のいずれかの値を指定できます。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-is-alg-supported.html)

## 戻り値
<a name="ksp-library-apis-is-alg-supported-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszAlgId` パラメータにサポートされていない値が含まれています。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hProvider` のハンドルが無効です。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptEnumAlgorithms
<a name="ksp-library-apis-enum-algorithms"></a>

`NCryptEnumAlgorithms` 関数は、キーストレージプロバイダー (KSP) がサポートするアルゴリズムの名前を取得します。

## パラメータ
<a name="ksp-library-apis-enum-algorithms-parameters"></a>

 `hProvider` [in]   
 アルゴリズムを列挙するキーストレージプロバイダーのハンドル。このハンドルを取得するには、[`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) 関数を使用します。

 `dwAlgOperations` [in]   
列挙するアルゴリズムクラスを指定する値のセット。ゼロを使用してすべてのアルゴリズムを列挙することも、1 つ以上の値を結合することもできます。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-enum-algorithms.html)

`pdwAlgCount` [out]  
`ppAlgList` 配列内の要素の数を保存する DWORD のアドレス。

`ppAlgList` [out]  
登録されたアルゴリズム名の配列を保存する `NCryptAlgorithmName` 構造ポインタのアドレス。`pdwAlgCount` パラメータは、この配列内の要素の数を示します。

`dwFlags` [in]  
関数の動作を変更するためのフラグ。ゼロまたは次の値を使用します。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-enum-algorithms.html)

## 戻り値
<a name="ksp-library-apis-open-key-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 
|  NTE\$1NOT\$1SUPPORTED  |  `dwAlgOperations` パラメータにサポートされていない値が含まれています。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptEnumKeys
<a name="ksp-library-apis-enum-keys"></a>

NCryptEnumKeys 関数は、キーストレージプロバイダー (KSP) に保存されているキーを一覧表示します。

## パラメータ
<a name="ksp-library-apis-enum-keys-parameters"></a>

 `hProvider` [in]   
キーストレージプロバイダーハンドル。このハンドルは、[`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) を使用して取得します。

 `pszScope` [in, unused]   
 このパラメータは NULL に設定します。

 `ppKeyName` [out]   
キー名を保存する `NCryptKeyName` 構造へのポインタアドレス。使用後にこのメモリを解放するには、`NCryptFreeBuffer` を呼び出します。

`ppEnumState` [in, out]  
列挙の進行状況を追跡する VOID ポインタアドレス。キーストレージプロバイダーは、この情報を内部的に使用して列挙シーケンスを管理します。新しい列挙を最初から開始するには、このポインタを NULL に設定します。  
列挙の完了後にこのメモリを解放するには、このポインタを `NCryptFreeBuffer` に渡します。

`dwFlags` [in]  
関数の動作を変更するためのフラグ。この関数にはフラグはありません。

## 戻り値
<a name="ksp-library-apis-enum-keys-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hProvider` のハンドルが無効です。  | 
|  NTE\$1NO\$1MORE\$1ITEMS  |  列挙には、使用可能なすべてのキーが一覧表示されています。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptExportKey
<a name="ksp-library-apis-export-key"></a>

`NCryptExportKey` 関数は KSP キーをメモリ BLOB にエクスポートします。この関数は、パブリックキーのエクスポートのみをサポートします。

## パラメータ
<a name="ksp-library-apis-export-key-parameters"></a>

 `hKey` [in]  
エクスポートするキーのハンドル。

 `hExportKey` [in, unused]  
 AWS CloudHSM Key Storage Provider (KSP) はこのパラメータを使用しません。

`pszBlobType` [in]  
エクスポートするBLOBタイプを指定する NULL 終了 Unicode 文字列。 AWS CloudHSM キーストレージプロバイダー (KSP) は次の値をサポートします。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-export-key.html)

`pParameterList` [in, unused]  
AWS CloudHSM Key Storage Provider (KSP) はこのパラメータを使用しません。

`pbOutput` [out, optional]  
キー BLOB を保存するバッファアドレス。`cbOutput` を使用してバッファサイズを指定します。NULL に設定すると、関数は `pcbResult` が指す DWORD に必要なサイズ (バイト単位) を保存します。

`cbOutput` [in]  
`pbOutput` バッファのサイズ (バイト単位)。

`pcbResult` [out]  
`pbOutput` バッファにコピーされたバイト数を保存する DWORD 変数アドレス。`pbOutput` が NULL の場合、関数は必要なバッファサイズをバイト単位で保存します。

`dwFlags` [in]  
関数の動作を変更するためのフラグ。ゼロまたは以下の値を使用できます。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-export-key.html)

## 戻り値
<a name="ksp-library-apis-export-key-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hProvider` のハンドルが無効です。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  キーの状態が無効です。  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszBlobType` または `dwFlags` パラメータにサポートされていない値が含まれています。  | 
|  STATUS\$1INTERNAL\$1ERROR  |  オペレーション中に内部エラーが発生しました。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptSignHash
<a name="ksp-library-apis-sign-hash"></a>

`NCryptSignHash` 関数はハッシュ値の署名を作成します。

## パラメータ
<a name="ksp-library-apis-sign-hash-parameters"></a>

 `hKey` [in]   
 ハッシュの署名に使用するキーのハンドル。

`pPaddingInfo` [in, optional]  
パディング情報を含む構造へのポインタ。構造タイプは `dwFlags` 値によって異なります。このパラメータは非対称キーでのみ使用し、その他のキータイプでは NULL に設定します。

`pbHashValue` [in]  
署名するハッシュ値を含むバッファへのポインタ。`cbHashValue` を使用してバッファサイズを指定します。

`cbHashValue` [in]  
署名する `pbHashValue` バッファのサイズ (バイト単位)。

`pbSignature` [out]  
署名を保存するバッファのアドレス。`cbSignature` を使用してバッファサイズを指定します。  
必要なバッファサイズを決定するには、このパラメータを NULL に設定します。この関数は、必要なサイズ (バイト単位) を `pcbResult` が指す場所に保存します。

`cbSignature` [in]  
`pbSignature` バッファのサイズ (バイト単位)。この関数は、`pbSignature` が NULL の場合、このパラメータを無視します。

`pcbResult` [out]  
`pbSignature` バッファにコピーされたバイト数を保存する DWORD 変数へのポインタ。  
`pbSignature` が NULL の場合、必要なバッファサイズ (バイト単位) が保存されます。

`dwFlags` [in]  
関数の動作を変更するためのフラグ。許可されるフラグは、キータイプによって異なります。次の値のいずれかを使用してください。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-sign-hash.html)

## 戻り値
<a name="ksp-library-apis-sign-hash-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hKey` のハンドルが無効です。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 
|  NTE\$1BUFFER\$1TOO\$1SMALL  |  `pcbOutput` パラメータが、戻り値を格納するには小さすぎます。  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  キーの状態が無効です。  | 
|  NTE\$1INTERNAL\$1ERROR  |  ハッシュの署名時に内部エラーが発生しました。  | 

# キーストレージプロバイダー (KSP) を使用した NCryptVerifySignature
<a name="ksp-library-apis-verify-signature"></a>

`NCryptVerifySignature` 関数は、署名が指定されたハッシュと一致するかどうかを確認します。

## パラメータ
<a name="ksp-library-apis-verify-signature-parameters"></a>

 `hKey` [in]   
 署名を復号するために使用するキーのハンドル。[`NCryptSignHash`](ksp-library-apis-sign-hash.md) でデータの署名に使用されたキーペアのパブリックキー部分を使用する必要があります。

`pPaddingInfo` [in, optional]  
パディング情報を含む構造へのポインタ。構造タイプは `dwFlags` 値によって異なります。このパラメータは非対称キーでのみ使用し、その他のキータイプでは NULL に設定します。

`pbHashValue` [in]  
署名するハッシュ値を含むバッファへのポインタ。`cbHashValue` を使用してバッファサイズを指定します。

`cbHashValue` [in]  
`pbHashValue` バッファのサイズ (バイト単位)。

`pbSignature` [out]  
データの署名付きハッシュを含むバッファのアドレス。この署名を作成するには [`NCryptSignHash`](ksp-library-apis-sign-hash.md) を使用します。`cbSignature` を使用してバッファサイズを指定します。

`cbSignature` [in]  
`pbSignature` バッファのサイズ (バイト単位)。この署名を作成するには [`NCryptSignHash`](ksp-library-apis-sign-hash.md) を使用します。

`dwFlags` [in]  
関数の動作を変更するためのフラグ。許可されるフラグは、キータイプによって異なります。次の値のいずれかを使用してください。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/ksp-library-apis-verify-signature.html)

## 戻り値
<a name="ksp-library-apis-verify-signature-return-value"></a>

この関数は、成功または失敗を示すステータスコードを返します。

一般的なリターンコードは次のとおりです。


****  

| リターンコード | 説明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  オペレーションが正常に完了しました。  | 
|  NTE\$1INVALID\$1PARAMETER  |  1 つ以上のパラメータが無効です。  | 
|  NTE\$1FAIL  |  オペレーションを完了できませんでした。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hKey` のハンドルが無効です。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` パラメータに無効な値が含まれています。  | 
|  NTE\$1BAD\$1SIGNATURE  |  署名は検証されませんでした。  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  キーの状態が無効です。  | 
|  NTE\$1INTERNAL\$1ERROR  |  署名の検証中に内部エラーが発生しました。  | 