CertSetStoreProperty 함수(wincrypt.h)
CertSetStoreProperty 함수는 저장소 속성을 설정합니다.
구문
BOOL CertSetStoreProperty(
[in] HCERTSTORE hCertStore,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] const void *pvData
);
매개 변수
[in] hCertStore
인증서 저장소에 대한 핸들입니다.
[in] dwPropId
저장소 속성 범위 중 하나를 나타냅니다. 사용자 정의 속성의 값은 미리 정의된 컨텍스트 속성 값의 현재 범위를 벗어나야 합니다. 현재 사용자 정의 dwPropId 값은 4,096에서 시작합니다. 미리 정의된 저장소 속성 CERT_STORE_LOCALIZED_NAME_PROP_ID 저장소의 지역화된 이름이 하나 있습니다.
[in] dwFlags
나중에 사용할 수 있으며 0이어야 합니다.
[in] pvData
pvData에 대한 형식 정의는 dwPropId 값에 따라 달라집니다. dwPropId가 CERT_STORE_LOCALIZED_NAME_PROP_ID 경우 pvData는 CRYPT_DATA_BLOB 구조를 가리킵니다. 해당 구조체의 pbData 멤버는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 해당 구조체의 cbData 멤버는 문자열의 길이를 포함하는 DWORD 값입니다.
사용자 정의 dwPropId 값의 경우 pvData 는 인코딩된 CRYPT_DATA_BLOB 대한 포인터입니다.
선택한 속성에 대한 값이 이미 있는 경우 이전 값이 바뀝니다.
NULL로 설정된 pvData를 사용하여 이 함수를 호출하면 속성이 삭제됩니다.
반환 값
함수가 성공하면 반환 값은 TRUE입니다.
함수가 실패하면 반환 값은 FALSE입니다.
설명
스토어 속성 식별자는 전체 저장소에 적용할 수 있는 속성입니다. 개별 인증서, CRL 또는 CTL 컨텍스트에 대한 속성이 아닙니다. 현재 저장소 속성은 유지되지 않습니다.
예제
다음 예제에서는 열려 있는 인증서 저장소의 지역화된 이름 속성을 설정하는 방법을 보여줍니다.
//--------------------------------------------------------------
// Declare and initialize variables.
HCERTSTORE hCertStore = NULL; // Original certificate store
CRYPT_DATA_BLOB Property_Name_Blob; // BLOB to hold store property
//--------------------------------------------------------------
// Open the certificate store that will have its localized name
// property set. In this case, the CA system store is opened.
if ( hCertStore = CertOpenStore(
CERT_STORE_PROV_SYSTEM,
0,
NULL,
CERT_SYSTEM_STORE_CURRENT_USER,
L"CA"))
{
printf("The CA store is open.\n");
}
else
{
printf("The CA store could not be opened \n.");
exit(1);
}
//--------------------------------------------------------------------
// Prepare a data structure to set a store property.
// Initialize the members of the CRYPT_DATA_BLOB.
Property_Name_Blob.pbData = (BYTE *) L"The Local CA Store";
Property_Name_Blob.cbData =
(wcslen((LPWSTR)Property_Name_Blob.pbData)+1) * sizeof(WCHAR);
//--------------------------------------------------------------------
// Set the store's localized name property.
if (CertSetStoreProperty(
hCertStore,
CERT_STORE_LOCALIZED_NAME_PROP_ID,
0,
&Property_Name_Blob))
{
printf("The name of the store has been set. Continue. \n");
}
else
{
printf("Setting the store's localized name failed.\n");
exit(1);
}
// Close the store when done.
if (!CertCloseStore(
hCertStore,
0 ))
{
printf("The CA store could not be closed \n.");
exit(1);
}
이 함수를 사용하는 또 다른 예제는 예제 C 프로그램: 인증서 저장소 속성 설정 및 가져오기를 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Crypt32.lib |
DLL | Crypt32.dll |