

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 지원되는 API 작업 AWS CloudHSM 클라이언트 SDK 5용 키 스토리지 공급자(KSP)
<a name="ksp-library-apis"></a>

KSP의 파라미터는 Microsoft KSP에서 정의합니다. 자세한 내용은 [Microsoft documentation](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(Key Storage Provider)를 사용하는 NCryptOpenStorageProvider 함수
<a name="ksp-library-apis-open-provider"></a>

`NCryptOpenStorageProvider` 함수는 KSP(Key Storage Provider)를 로드하고 초기화합니다.

## 파라미터
<a name="ksp-library-apis-open-provider-parameters"></a>

 `phProvider` [out]   
공급자 핸들을 저장하는 `NCRYPT_PROV_HANDLE` 변수에 대한 포인터입니다.

 `pszProviderName` [in]   
키 스토리지 공급자를 식별하는 Null로 종료된 유니코드 문자열에 대한 포인터입니다. AWS CloudHSM KSP(Key Storage Provider)는 다음 값을 지원합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptOpenKey
<a name="ksp-library-apis-open-key"></a>

`NCryptOpenKey` 함수는 KSP(Key Storage Provider)에 있는 키를 엽니다.

## Parameters
<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로 종료된 유니코드 문자열에 대한 포인터입니다.

`dwLegacyKeySpec` [in, 미사용]  
AWS CloudHSM 키 스토리지 공급자(KSP)는이 파라미터를 사용하지 않습니다.

`dwFlags` [in]  
함수의 동작을 수정하는 플래그입니다. 이 함수에는 플래그가 정의되지 않습니다.

## 반환 값
<a name="ksp-library-apis-open-key-return-value"></a>

이 함수는 성공 또는 실패를 나타내는 상태 코드를 반환합니다.

일반적인 반환 코드는 다음과 같습니다.


****  

| 반환 코드 | 설명 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  작업이 성공적으로 완료되었습니다.  | 
|  NTE\$1INVALID\$1PARAMETER  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1INVALID\$1HANDLE  |  `hProvider`의 핸들이 유효하지 않습니다.  | 
|  NTE\$1BAD\$1KEYSET  |  제공된 키 이름이 고유한 결과를 반환하지 않았습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptCreatePersistedKey
<a name="ksp-library-apis-create-persisted-key"></a>

`NCryptCreatePersistedKey` 함수는 새 키를 생성하여 KSP(Key Storage Provider)에 저장합니다. [`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로 종료된 유니코드 문자열에 대한 포인터입니다.  
AWS CloudHSM 키 스토리지 공급자(KSP)는 다음 알고리즘을 지원합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

`pszKeyName` [in, 선택 사항]  
키 이름을 포함하는 Null로 종료된 유니코드 문자열에 대한 포인터입니다. 이 파라미터가 NULL인 경우 이 함수는 지속되지 않는 임시 키를 생성합니다.

`dwLegacyKeySpec` [in, 미사용]  
AWS CloudHSM 키 스토리지 공급자(KSP)는이 파라미터를 사용하지 않습니다.

`dwFlags` [in]  
함수의 동작을 수정하는 플래그입니다. 다음 값 중 0개 이상을 사용합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 파라미터에 유효하지 않은 값이 있습니다.  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszAlgId` 파라미터에 지원되지 않는 값이 포함되어 있습니다.  | 
|  NTE\$1EXISTS  |  지정된 이름의 키가 이미 존재하며 작업에서 ` NCRYPT_OVERWRITE_KEY_FLAG`를 사용하지 않았습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptGetProperty
<a name="ksp-library-apis-get-property"></a>

`NCryptGetProperty` 함수는 키 스토리지 객체의 속성 값을 검색합니다.

## Parameters
<a name="ksp-library-apis-create-get-property-parameters"></a>

 `hObject` [in]   
 속성을 검색하려는 객체의 핸들입니다. 다음을 사용할 수 있습니다.  
+ 공급자 핸들(`NCRYPT_PROV_HANDLE`)
+ 키 핸들(`NCRYPT_KEY_HANDLE`)

 `pszProperty ` [in]   
검색할 속성 이름을 포함하는 Null로 종료된 유니코드 문자열에 대한 포인터입니다.  
`NCRYPT_PROV_HANDLE`를 사용하는 경우 AWS CloudHSM Key Storage Provider(KSP)는 다음 KSP 식별자를 지원합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
`NCRYPT_KEY_HANDLE`를 사용하는 경우 AWS CloudHSM Key Storage Provider(KSP)는 다음 KSP 식별자를 지원합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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]  
함수의 동작을 수정하는 플래그입니다. 0 또는 다음을 사용할 수 있습니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)

## 반환 값
<a name="ksp-library-apis-get-property-return-value"></a>

이 함수는 성공 또는 실패를 나타내는 상태 코드를 반환합니다.

일반적인 반환 코드는 다음과 같습니다.


****  

| 반환 코드 | 설명 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  작업이 성공적으로 완료되었습니다.  | 
|  NTE\$1INVALID\$1PARAMETER  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 파라미터에 유효하지 않은 값이 있습니다.  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszAlgId` 파라미터에는 지원되지 않는 값이 포함되어 있습니다.  | 
|  NTE\$1INVALID\$1HANDLE  |  `hObject`의 핸들이 유효하지 않습니다.  | 
|  NTE\$1BUFFER\$1TOO\$1SMALL  |  `cbOutput` 파라미터가 반환 값에 비해 너무 작습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptSetProperty
<a name="ksp-library-apis-set-property"></a>

`NCryptSetProperty` 함수는 키 스토리지 객체의 속성 값을 설정합니다.

## Parameters
<a name="ksp-library-apis-create-set-property-parameters"></a>

 `hObject` [in]   
 속성을 설정하려는 객체의 핸들입니다. 다음을 사용할 수 있습니다.  
+ 공급자 핸들(`NCRYPT_PROV_HANDLE`)
+ 키 핸들(`NCRYPT_KEY_HANDLE`)

 `pszProperty ` [in]   
검색할 속성 이름을 포함하는 Null로 종료된 유니코드 문자열에 대한 포인터입니다.  
`NCRYPT_PROV_HANDLE`를 사용하는 경우 AWS CloudHSM Key Storage Provider(KSP)는 다음 KSP 식별자를 지원합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-set-property.html)
`NCRYPT_KEY_HANDLE`를 사용하는 경우 AWS CloudHSM Key Storage Provider(KSP)는 다음 KSP 식별자를 지원합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 파라미터에 유효하지 않은 값이 있습니다.  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszProperty` 파라미터에는 지원되지 않는 값이 포함되어 있습니다.  | 
|  NTE\$1INVALID\$1HANDLE  |  `hObject`의 핸들이 유효하지 않습니다.  | 
|  NTE\$1BAD\$1DATA  |  `pbInput` 및 `cbInput`이 가리키는 데이터가 유효하지 않습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptFinalizeKey
<a name="ksp-library-apis-finalize-key"></a>

`NCryptFinalizeKey` 함수는 KSP 키를 완료합니다. 이 키를 사용하려면 먼저 이 함수를 호출해야 합니다.

## Parameters
<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/ko_kr/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(Key Storage Provider)를 사용하는 NCryptDeleteKey
<a name="ksp-library-apis-delete-key"></a>

`NCryptDeleteKey` 함수는 KSP(Key Storage Provider)에서 KSP 키를 삭제합니다.

## Parameters
<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/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-delete-key.html)

## 반환 값
<a name="ksp-library-apis-delete-key-return-value"></a>

이 함수는 성공 또는 실패를 나타내는 상태 코드를 반환합니다.

일반적인 반환 코드는 다음과 같습니다.


****  

| 반환 코드 | 설명 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  함수가 성공했습니다.  | 
|  NTE\$1INVALID\$1PARAMETER  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 파라미터에 유효하지 않은 값이 있습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1INVALID\$1HANDLE  |  `hKey`의 핸들이 유효하지 않습니다.  | 
|  NTE\$1INTERNAL\$1ERROR  |  키를 삭제할 때 내부 오류가 발생했습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptFreeObject
<a name="ksp-library-apis-free-object"></a>

`NCryptFreeObject` 함수는 KSP(Key Storage Provider)에서 공급자 또는 키 핸들을 릴리스합니다.

## Parameters
<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(Key Storage Provider)를 사용하는 NCryptFreeBuffer
<a name="ksp-library-apis-free-buffer"></a>

`NCryptFreeBuffer` 함수는 KSP(Key Storage Provider)가 할당한 메모리 블록을 릴리스합니다.

## Parameters
<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(Key Storage Provider)를 사용하는 NCryptIsAlgSupported
<a name="ksp-library-apis-is-alg-supported"></a>

NCryptIsAlgSupported 함수는 KSP(Key Storage Provider)의 특정 암호화 알고리즘 지원 여부를 결정합니다.

## 파라미터
<a name="ksp-library-apis-is-alg-supported-parameters"></a>

 `hProvider` [in]   
 키 스토리지 공급자의 핸들입니다. [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)를 사용하여 핸들을 가져옵니다.

 `pszAlgId` [in]   
 키를 생성하는 암호화 알고리즘의 식별자를 포함하는 Null로 종료된 유니코드 문자열에 대한 포인터입니다. AWS CloudHSM KSP(Key Storage Provider)는 다음 알고리즘을 지원합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-is-alg-supported.html)

`dwFlags` [in]  
함수의 동작을 수정하는 플래그입니다. 이 값은 0 또는 다음 값 중 하나일 수 있습니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 파라미터에 유효하지 않은 값이 있습니다.  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszAlgId` 파라미터에 지원되지 않는 값이 포함되어 있습니다.  | 
|  NTE\$1INVALID\$1HANDLE  |  `hProvider`의 핸들이 유효하지 않습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptEnumAlgorithms
<a name="ksp-library-apis-enum-algorithms"></a>

`NCryptEnumAlgorithms` 함수는 KSP(Key Storage Provider)가 지원하는 알고리즘의 이름을 검색합니다.

## 파라미터
<a name="ksp-library-apis-enum-algorithms-parameters"></a>

 `hProvider` [in]   
 알고리즘을 열거할 키 스토리지 공급자의 핸들입니다. [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) 함수를 사용하여 이 핸들을 가져옵니다.

 `dwAlgOperations` [in]   
열거할 알고리즘 클래스를 지정하는 값의 집합입니다. 0을 사용하여 모든 알고리즘을 열거하거나 다음 값 중 하나 이상을 결합할 수 있습니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-enum-algorithms.html)

`pdwAlgCount` [out]  
`ppAlgList` 배열에 요소 수를 저장하는 DWORD의 주소입니다.

`ppAlgList` [out]  
등록된 알고리즘 이름의 배열을 저장하는 `NCryptAlgorithmName` 구조 포인터의 주소입니다. `pdwAlgCount` 파라미터는 이 배열의 요소 수를 나타냅니다.

`dwFlags` [in]  
함수의 동작을 수정하는 플래그입니다. 0 또는 다음 값을 사용합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-enum-algorithms.html)

## 반환 값
<a name="ksp-library-apis-open-key-return-value"></a>

이 함수는 성공 또는 실패를 나타내는 상태 코드를 반환합니다.

일반적인 반환 코드는 다음과 같습니다.


****  

| 반환 코드 | 설명 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  작업이 성공적으로 완료되었습니다.  | 
|  NTE\$1INVALID\$1PARAMETER  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 파라미터에 유효하지 않은 값이 있습니다.  | 
|  NTE\$1NOT\$1SUPPORTED  |  `dwAlgOperations` 파라미터에 지원되지 않는 값이 포함되어 있습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptEnumKeys
<a name="ksp-library-apis-enum-keys"></a>

NCryptEnumKeys 함수는 KSP(Key Storage Provider)에 저장된 키를 나열합니다.

## Parameters
<a name="ksp-library-apis-enum-keys-parameters"></a>

 `hProvider` [in]   
키 스토리지 공급자 핸들입니다. [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)를 사용하여 이 핸들을 가져옵니다.

 `pszScope` [in, 미사용]   
 이 파라미터를 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  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1INVALID\$1HANDLE  |  `hProvider`의 핸들이 유효하지 않습니다.  | 
|  NTE\$1NO\$1MORE\$1ITEMS  |  열거에 사용 가능한 모든 키가 나열되었습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptExportKey
<a name="ksp-library-apis-export-key"></a>

`NCryptExportKey` 함수는 KSP 키를 메모리 BLOB로 내보냅니다. 이 함수는 퍼블릭 키 내보내기만 지원합니다.

## Parameters
<a name="ksp-library-apis-export-key-parameters"></a>

 `hKey` [in]  
내보낼 키의 핸들입니다.

 `hExportKey` [in, 미사용]  
 AWS CloudHSM 키 스토리지 공급자(KSP)는이 파라미터를 사용하지 않습니다.

`pszBlobType` [in]  
내보낼 BLOB 유형을 지정하는 null로 종료된 유니코드 문자열입니다. AWS CloudHSM Key Storage Provider(KSP)는 다음 값을 지원합니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-export-key.html)

`pParameterList` [in, 미사용]  
AWS CloudHSM 키 스토리지 공급자(KSP)는이 파라미터를 사용하지 않습니다.

`pbOutput` [out, 선택 사항]  
키 BLOB를 저장할 버퍼 주소입니다. `cbOutput`를 사용하여 버퍼 크기를 지정합니다. NULL로 설정하면 함수는 `pcbResult`가 가리키는 DWORD에 필요한 크기(바이트)를 저장합니다.

`cbOutput` [in]  
바이트 단위의 `pbOutput` 버퍼 크기입니다.

`pcbResult` [out]  
`pbOutput` 버퍼에 복사된 바이트 수를 저장하는 DWORD 변수 주소입니다. `pbOutput`가 NULL이면 함수는 필요한 버퍼 크기를 바이트 단위로 저장합니다.

`dwFlags` [in]  
함수의 작동 방식을 수정하는 플래그입니다. 0 또는 다음을 사용할 수 있습니다.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-export-key.html)

## 반환 값
<a name="ksp-library-apis-export-key-return-value"></a>

이 함수는 성공 또는 실패를 나타내는 상태 코드를 반환합니다.

일반적인 반환 코드는 다음과 같습니다.


****  

| 반환 코드 | 설명 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  작업이 성공적으로 완료되었습니다.  | 
|  NTE\$1INVALID\$1PARAMETER  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1INVALID\$1HANDLE  |  `hProvider`의 핸들이 유효하지 않습니다.  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 파라미터에 유효하지 않은 값이 있습니다.  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  키 상태가 유효하지 않습니다.  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszBlobType` 또는 `dwFlags` 파라미터에 지원되지 않는 값이 포함되어 있습니다.  | 
|  STATUS\$1INTERNAL\$1ERROR  |  작업 중에 내부 오류가 발생했습니다.  | 

# KSP(Key Storage Provider)를 사용하는 NCryptSignHash
<a name="ksp-library-apis-sign-hash"></a>

`NCryptSignHash` 함수는 해시 값의 서명을 생성합니다.

## Parameters
<a name="ksp-library-apis-sign-hash-parameters"></a>

 `hKey` [in]   
 해시 서명에 사용할 키의 핸들입니다.

`pPaddingInfo` [in, 선택 사항]  
패딩 정보가 포함된 구조에 대한 포인터입니다. 구조 유형은 `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/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-sign-hash.html)

## 반환 값
<a name="ksp-library-apis-sign-hash-return-value"></a>

이 함수는 성공 또는 실패를 나타내는 상태 코드를 반환합니다.

일반적인 반환 코드는 다음과 같습니다.


****  

| 반환 코드 | 설명 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  작업이 성공적으로 완료되었습니다.  | 
|  NTE\$1INVALID\$1PARAMETER  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1INVALID\$1HANDLE  |  `hKey`의 핸들이 유효하지 않습니다.  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 파라미터에 유효하지 않은 값이 있습니다.  | 
|  NTE\$1BUFFER\$1TOO\$1SMALL  |  `pcbOutput` 파라미터가 반환 값에 비해 너무 작습니다.  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  키 상태가 유효하지 않습니다.  | 
|  NTE\$1INTERNAL\$1ERROR  |  해시 서명 시 내부 오류가 발생했습니다.  | 

# KSP(Key storage provider)를 사용하는 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, 선택 사항]  
패딩 정보가 포함된 구조에 대한 포인터입니다. 구조 유형은 `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/ko_kr/cloudhsm/latest/userguide/ksp-library-apis-verify-signature.html)

## 반환 값
<a name="ksp-library-apis-verify-signature-return-value"></a>

이 함수는 성공 또는 실패를 나타내는 상태 코드를 반환합니다.

일반적인 반환 코드는 다음과 같습니다.


****  

| 반환 코드 | 설명 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  작업이 성공적으로 완료되었습니다.  | 
|  NTE\$1INVALID\$1PARAMETER  |  하나 이상의 파라미터가 유효하지 않습니다.  | 
|  NTE\$1FAIL  |  작업을 완료할 수 없습니다.  | 
|  NTE\$1INVALID\$1HANDLE  |  `hKey`의 핸들이 유효하지 않습니다.  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 파라미터에 유효하지 않은 값이 있습니다.  | 
|  NTE\$1BAD\$1SIGNATURE  |  서명이 확인되지 않았습니다.  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  키 상태가 유효하지 않습니다.  | 
|  NTE\$1INTERNAL\$1ERROR  |  서명을 확인하는 동안 내부 오류가 발생했습니다.  | 