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 |