다음을 통해 공유


Key Storage 속성 식별자

다음 값은 키 스토리지 속성을 식별하는 데 사용됩니다.

식별자

NCRYPT_ALGORITHM_GROUP_PROPERTY

L"Algorithm Group"

개체 알고리즘 그룹의 이름을 포함하는 null로 종료된 유니코드 문자열입니다. 이 속성은 키에만 적용됩니다. 다음 식별자는 Microsoft 키 스토리지 공급자에 의해 반환됩니다.

ID Description
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로 종료된 유니코드 문자열입니다. 미리 정의된 CNG 알고리즘 식별자 또는 등록된 다른 알고리즘 식별자 중 하나일 수 있습니다. 이 속성은 키에만 적용됩니다.

NCRYPT_ASSOCIATED_ECDH_KEY

L"SmartCardAssociatedECDHKey"

ECDSA(타원 곡선 디지털 서명 알고리즘) 키에 대한 지정된 핸들에 로그온하는 동안 사용할 ECDH(타원 곡선 Diffie-Hellman) 키의 컨테이너 이름을 나타내는 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 또는 다음 값 중 하나 이상의 조합이 포함될 수 있습니다.

ID Description
NCRYPT_ALLOW_EXPORT_FLAG 0x00000001 프라이빗 키를 내보낼 수 있습니다.
NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG 0x00000002 프라이빗 키는 일반 텍스트 형식으로 내보낼 수 있습니다.
NCRYPT_ALLOW_ARCHIVING_FLAG 0x00000004 보관 목적으로 프라이빗 키를 한 번 내보낼 수 있습니다. 이 플래그는 설정된 원래 키 핸들에만 적용됩니다. 이 정책은 원래 키 핸들에만 적용할 수 있습니다. 키 핸들이 닫힌 후에는 보관 목적으로 키를 더 이상 내보낼 수 없습니다.
NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG 0x00000008 보관을 위해 프라이빗 키를 일반 텍스트 형식으로 한 번 내보낼 수 있습니다. 이 플래그는 설정된 원래 키 핸들에만 적용됩니다. 이 정책은 원래 키 핸들에만 적용할 수 있습니다. 키 핸들이 닫힌 후에는 보관 목적으로 키를 더 이상 내보낼 수 없습니다.

NCRYPT_IMPL_TYPE_PROPERTY

L"Impl Type"

공급자의 구현 세부 정보를 정의하는 플래그 집합을 포함하는 DWORD 입니다. 이 속성은 키 스토리지 공급자에만 적용됩니다. 여기에는 0 또는 다음 값 중 하나 이상의 조합이 포함될 수 있습니다.

ID Description
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 또는 다음 값이 포함될 수 있습니다.

ID Description
NCRYPT_MACHINE_KEY_FLAG 0x00000020 키는 로컬 컴퓨터에 적용됩니다. 이 플래그가 없으면 키가 현재 사용자에게 적용됩니다.

NCRYPT_KEY_USAGE_PROPERTY

L"Key Usage"

키에 대한 사용량 세부 정보를 정의하는 플래그 집합을 포함하는 DWORD 입니다. 이 속성은 키에만 적용됩니다. 다음 값 중 하나 이상의 조합 또는 0을 포함할 수 있습니다.

ID Description
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로 끝나는 유니코드 문자열에 대한 포인터입니다.

NCRYPT_PIN_PROMPT_PROPERTY

L"SmartCardPinPrompt"

이 값은 지원되지 않습니다.

NCRYPT_PIN_PROPERTY

L"SmartCardPin"

PIN을 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. PIN은 소프트웨어 기반 KSP에 저장된 암호로 보호된 키의 스마트 카드 키 또는 암호에 사용됩니다. 이 속성은 설정할 수 있습니다. Microsoft KSP는 프로세스당 한 번만 사용자에게 메시지가 표시되도록 이 값을 캐시합니다.

NCRYPT_PROVIDER_HANDLE_PROPERTY

L"Provider Handle"

CNG 키 스토리지 공급자의 핸들을 포함하는 NCRYPT_PROV_HANDLE . 핸들 사용을 마치면 NCryptFreeObject 를 호출하여 해제해야 합니다.

NCRYPT_READER_PROPERTY

L"SmartCardReader"

스마트 카드 판독기의 이름을 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 이 속성은 설정할 수 있습니다.

NCRYPT_ROOT_CERTSTORE_PROPERTY

L"SmartcardRootCertStore"

스마트 카드 루트 인증서 저장소를 나타내는 HCERTSTORE 입니다.

NCRYPT_SCARD_PIN_ID

L"SmartCardPinId"

스마트 카드PIN_ID 지정된 암호화 키와 연결된 값에 대한 포인터입니다. 이 속성은 읽기 전용입니다. PIN_ID 데이터 형식은 에 정의되어 있습니다Cardmod.h.

Windows Server 2008 및 Windows Vista: 이 값은 지원되지 않습니다.

NCRYPT_SCARD_PIN_INFO

L"SmartCardPinInfo"

스마트 카드의 지정된 암호화 키와 연결된 PIN의 PIN_INFO 구조에 대한 포인터입니다. 호출자는 키 핸들을 제공합니다. 이 속성은 읽기 전용 속성입니다. 구조체 PIN_INFO 는 에 정의되어 있습니다 Cardmod.h.

Windows Server 2008 및 Windows Vista: 이 값은 지원되지 않습니다.

NCRYPT_SECURE_PIN_PROPERTY

L"SmartCardSecurePin"

스마트 카드 세션 PIN을 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 이 속성은 설정할 수 있습니다.

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로 끝나는 유니코드 문자열에 대한 포인터입니다. 키에 액세스할 때 사용할 수 있는 대체 이름입니다. 이 속성은 원래 NCryptCreatePersistedKey 에 전달된 키 이름이 지속형 키를 안정적으로 식별할 만큼 고유하지 않다고 생각될 때 사용됩니다. Microsoft 키 스토리지 공급자는 키의 파일 이름을 이 속성으로 반환합니다.

NCRYPT_USE_CONTEXT_PROPERTY

L"Use Context"

작업의 컨텍스트를 설명하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 이 속성은 영구적이 아니며 공급자 또는 키에 설정할 수 있습니다. 속성이 설정된 핸들에 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 창 핸들을 사용하여 사용자 인터페이스가 표시되면 바람직하지 않은 동작이 발생할 수 있으므로 이 속성을 설정하지 않는 한 키 스토리지 공급자가 사용자 인터페이스를 표시하지 않는 것이 좋습니다.

다음 값은 속성 데이터의 제한을 정의하는 데 사용됩니다.

상수 Description
NCRYPT_MAX_PROPERTY_DATA 0x100000 속성 값의 최대 크기(바이트)를 지정합니다.
NCRYPT_MAX_PROPERTY_NAME 64 속성 이름의 최대 크기를 문자 단위로 지정합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
헤더 Ncrypt.h

추가 정보