다음을 통해 공유


CertOpenSystemStoreA 함수(wincrypt.h)

CertOpenSystemStore 함수는 가장 일반적인 시스템 인증서 저장소를 여는 간소화된 함수입니다. 파일 기반 또는 메모리 기반 저장소와 같이 더 복잡한 요구 사항이 있는 인증서 저장소를 열려면 CertOpenStore를 사용합니다.

구문

HCERTSTORE CertOpenSystemStoreA(
  [in] HCRYPTPROV_LEGACY hProv,
  [in] LPCSTR            szSubsystemProtocol
);

매개 변수

[in] hProv

이 매개 변수는 사용되지 않으며 0으로 설정해야 합니다.

Windows Server 2003 및 Windows XP: CSP( 암호화 서비스 공급자 )의 핸들입니다. 기본 CSP를 사용하려면 hProv0 으로 설정합니다. hProv0이 아닌 경우 CryptAcquireContext 함수를 사용하여 만든 CSP 핸들이어야 합니다. 이 매개 변수의 데이터 형식은 HCRYPTPROV입니다.

[in] szSubsystemProtocol

시스템 저장소의 이름을 지정하는 문자열입니다. 이 매개 변수에 제공된 시스템 저장소 이름이 기존 시스템 저장소의 이름이 아닌 경우 새 시스템 저장소가 만들어지고 사용됩니다. CertEnumSystemStore 를 사용하여 기존 시스템 저장소의 이름을 나열할 수 있습니다. 일부 예제 시스템 저장소는 다음 표에 나와 있습니다.

의미
Ca
인증 기관 인증서.
연결된 프라이빗 키가 있는 인증서를 보유하는 인증서 저장소입니다.
루트
루트 인증서.
Spc
소프트웨어 게시자 인증서.

반환 값

함수가 성공하면 함수는 인증서 저장소에 대한 핸들을 반환합니다.

이 함수가 실패하면 NULL을 반환합니다. 확장 오류 정보는 GetLastError를 호출합니다.

참고 호출된 함수 CertOpenStore 의 오류가 이 함수로 전파됩니다.
 

설명

로컬 머신 저장소가 아닌 이 방법을 사용하여 현재 사용자 인증서에만 액세스할 수 있습니다.

시스템 저장소가 열리면 모든 표준 인증서 저장소 함수를 사용하여 인증서를 조작할 수 있습니다.

사용 후 CertCloseStore를 사용하여 저장소를 닫아야 합니다.

자동으로 마이그레이션되는 저장소에 대한 자세한 내용은 인증서 저장소 마이그레이션을 참조하세요.

예제

다음 예제에서는 가장 일반적인 시스템 인증서 저장소를 열기 위한 간소화된 방법을 보여 있습니다. 이 함수를 사용하는 또 다른 예제는 예제 C 프로그램: 인증서 저장소 작업을 참조하세요.

//--------------------------------------------------------------------
// Declare and initialize variables.

HCERTSTORE  hSystemStore;              // system store handle

//--------------------------------------------------------------------
// Open the CA system certificate store. The same call can be
// used with the name of a different system store, such as My or Root,
// as the second parameter.

if(hSystemStore = CertOpenSystemStore(
    0,
    "CA"))
{
  printf("The CA system store is open. Continue.\n");
}
else
{
  printf("The CA system store did not open.\n");
  exit(1);
}

// Use the store as needed.
// ...

// When done using the store, close it.
if(!CertCloseStore(hSystemStore, 0))
{
  printf("Unable to close the CA system store.\n");
  exit(1);
}

참고

wincrypt.h 헤더는 CERtOpenSystemStore를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wincrypt.h
라이브러리 Crypt32.lib
DLL Crypt32.dll

추가 정보

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

인증서 저장소 함수