암호화 함수

암호화 함수는 다음과 같이 사용량에 따라 분류됩니다.

CryptXML 함수

암호화 XML 함수는 XML 형식의 데이터를 사용하여 디지털 서명을 만들고 표현하기 위한 API를 제공합니다. XML 형식 서명에 대한 자세한 내용은 의 XML-Signature 구문 및 처리 사양을 https://go.microsoft.com/fwlink/p/?linkid=139649참조하세요.

기능 설명
A_SHAFinal MD5Update 함수에서 입력한 데이터의 최종 해시를 계산합니다.
A_SHAInit 데이터 스트림의 해시를 시작합니다.
A_SHAUpdate 지정된 해시 개체에 데이터를 추가합니다.
CryptXmlCreateReference XML 서명에 대한 참조를 만듭니다.
CryptXmlAddObject 인코딩을 위해 열린 문서 컨텍스트의 Signature에 Object 요소를 추가합니다.
CryptXmlClose 암호화 XML 개체 핸들을 닫습니다.
CryptXmlDigestReference 애플리케이션에서 확인된 참조를 다이제스트하는 데 사용됩니다. 이 함수는 다이제스트를 업데이트하기 전에 변환을 적용합니다.
CryptXmlDllCloseDigest CryptXmlDllCreateDigest 함수에서 할당한 CRYPT_XML_DIGEST 해제합니다.
CryptXmlDllCreateDigest 지정된 메서드에 대한 다이제스트 개체를 만듭니다.
CryptXmlDllCreateKey KeyValue 요소를 구문 분석하고 암호화 API: CNG(Next Generation) BCrypt 키 핸들을 만들어 서명을 확인합니다.
CryptXmlDllDigestData 다이제스트에 데이터를 넣습니다.
CryptXmlDllEncodeAlgorithm Agile 알고리즘에 대한 SignatureMethod 또는 DigestMethod 요소를 기본 매개 변수로 인코딩합니다.
CryptXmlDllEncodeKeyValue KeyValue 요소를 인코딩합니다.
CryptXmlDllFinalizeDigest 다이제스트 값을 검색합니다.
CryptXmlDllGetAlgorithmInfo XML 알고리즘을 디코딩하고 알고리즘에 대한 정보를 반환합니다.
CryptXmlDllGetInterface 지정된 알고리즘에 대한 암호화 확장 함수에 대한 포인터를 검색합니다.
CryptXmlDllSignData 데이터에 서명합니다.
CryptXmlDllVerifySignature 서명을 확인합니다.
CryptXmlEncode 제공된 XML 기록기 콜백 함수를 사용하여 서명 데이터를 인코딩합니다.
CryptXmlGetAlgorithmInfo CRYPT_XML_ALGORITHM 구조를 디코딩하고 알고리즘에 대한 정보를 반환합니다.
CryptXmlGetDocContext 제공된 핸들에서 지정한 문서 컨텍스트를 반환합니다.
CryptXmlGetReference 제공된 핸들에서 지정한 Reference 요소를 반환합니다.
CryptXmlGetSignature XML Signature 요소를 반환합니다.
CryptXmlGetStatus 제공된 핸들에서 지정한 개체에 대한 상태 정보를 포함하는 CRYPT_XML_STATUS 구조를 반환합니다.
CryptXmlGetTransforms 기본 변환 체인 엔진에 대한 정보를 반환합니다.
CryptXmlImportPublicKey 제공된 핸들에서 지정한 공개 키를 가져옵니다.
CryptXmlOpenToEncode XML 디지털 서명을 열어 인코딩하고 열린 Signature 요소의 핸들을 반환합니다. 핸들은 단일 CRYPT_XML_SIGNATURE 구조로 문서 컨텍스트를 캡슐화하고 CryptXmlClose 함수가 호출될 때까지 열린 상태로 유지됩니다.
CryptXmlOpenToDecode XML 디지털 서명을 열어 디코딩하고 CRYPT_XML_SIGNATURE 구조를 캡슐화하는 문서 컨텍스트의 핸들을 반환합니다. 문서 컨텍스트에는 하나 이상의 서명 요소가 포함될 수 있습니다.
CryptXmlSetHMACSecret CryptXmlSign 또는 CryptXmlVerify 함수를 호출하기 전에 핸들에서 HMAC 비밀을 설정합니다.
CryptXmlSign SignedInfo 요소의 암호화 서명을 만듭니다.
CryptXmlVerifySignature SignedInfo 요소의 암호화 서명 유효성 검사를 수행합니다.
PFN_CRYPT_XML_WRITE_CALLBACK 지정된 데이터 공급자에 대한 변환을 만듭니다.
PFN_CRYPT_XML_CREATE_TRANSFORM 암호화 XML 데이터를 씁니다.
PFN_CRYPT_XML_DATA_PROVIDER_READ 암호화 XML 데이터를 읽습니다.
PFN_CRYPT_XML_DATA_PROVIDER_CLOSE 암호화 XML 데이터 공급자를 해제합니다.
PFN_CRYPT_XML_ENUM_ALG_INFO 미리 정의되고 등록된 CRYPT_XML_ALGORITHM_INFO 항목을 열거합니다.

 

서명자 함수

서명 및 타임스탬프를 위한 함수를 제공합니다.

기능 설명
SignerFreeSignerContext SignerSignEx 함수에 대한 이전 호출에 의해 할당된 SIGNER_CONTEXT 구조를 해제합니다.
SignError GetLastError 함수를 호출하고 반환 코드를 HRESULT로 변환합니다.
SignerSign 지정된 파일에 서명합니다.
SignerSignEx 지정된 파일에 서명하고 서명된 데이터에 대한 포인터를 반환합니다.
SignerSignEx2 지정된 파일에 서명 및 타임스탬프를 지정하여 여러 개의 중첩된 서명을 허용합니다.
SignerTimeStamp 지정된 제목에 타임스탬프를 지정합니다. 이 함수는 Authenticode 타임스탬프를 지원합니다. X.509 RFC 3161(공개 키 인프라) 타임스탬프를 수행하려면 SignerTimeStampEx2 함수를 사용합니다.
SignerTimeStampEx 타임스탬프는 지정된 제목을 스탬프하고 필요에 따라 BLOB에 대한 포인터를 포함하는 SIGNER_CONTEXT 구조체에 대한 포인터를 반환합니다. 이 함수는 Authenticode 타임스탬프를 지원합니다. X.509 RFC 3161(공개 키 인프라) 타임스탬프를 수행하려면 SignerTimeStampEx2 함수를 사용합니다.
SignerTimeStampEx2 타임스탬프는 지정된 제목을 스탬프하고 필요에 따라 BLOB에 대한 포인터를 포함하는 SIGNER_CONTEXT 구조체에 대한 포인터를 반환합니다. 이 함수는 X.509 공개 키 인프라, RFC 3161 규격 타임스탬프를 수행하는 데 사용할 수 있습니다.
SignerTimeStampEx3 타임스탬프는 지정된 제목을 지정하고 여러 서명에 타임스탬프를 설정할 수 있습니다.

 

기본 암호화 함수

기본 암호화 함수는 암호화 애플리케이션을 개발하는 가장 유연한 수단을 제공합니다. CSP( 암호화 서비스 공급자 )와의 모든 통신은 이러한 함수를 통해 발생합니다.

CSP는 모든 암호화 작업을 수행하는 독립적인 모듈입니다. 암호화 함수를 사용하는 각 애플리케이션에 하나 이상의 CSP가 필요합니다. 단일 애플리케이션은 때때로 둘 이상의 CSP를 사용할 수 있습니다.

둘 이상의 CSP를 사용하는 경우 사용할 CSP를 CryptoAPI 암호화 함수 호출에 지정할 수 있습니다. Microsoft 기본 암호화 공급자인 하나의 CSP는 CryptoAPI와 함께 번들로 제공됩니다. 이 CSP는 다른 CSP가 지정되지 않은 경우 많은 CryptoAPI 함수에서 기본 공급자로 사용됩니다.

각 CSP는 CryptoAPI에 제공되는 암호화 지원의 다른 구현을 제공합니다. 일부는 더 강력한 암호화 알고리즘을 제공합니다. 다른 항목에는 스마트 카드와 같은 하드웨어 구성 요소가 포함되어 있습니다. 또한 일부 CSP는 사용자의 서명 프라이빗 키를 사용하여 디지털 서명을 수행하는 경우와 같이 사용자와 직접 통신할 수 있습니다.

기본 암호화 함수는 다음과 같은 광범위한 그룹에 있습니다.

  • 서비스 공급자 함수
  • 키 생성 및 Exchange 함수
  • 개체 인코딩 및 디코딩 함수
  • 데이터 암호화 및 암호 해독 함수
  • 해시 및 디지털 서명 함수

서비스 공급자 함수

애플리케이션은 다음 서비스 함수를 사용하여 CSP( 암호화 서비스 공급자 )를 연결하고 연결을 끊습니다.

기능 설명
CryptAcquireContext 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
특정 CSP 내에서 현재 사용자의 키 컨테이너 에 대한 핸들을 가져옵니다.
CryptContextAddRef 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
HCRYPTPROV 핸들에 대한 참조 수를 증분합니다.
CryptEnumProviders 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
컴퓨터의 공급자를 열거합니다.
CryptEnumProviderTypes 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
컴퓨터에서 지원되는 공급자 유형을 열거합니다.
CryptGetDefaultProvider 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
현재 사용자 또는 지정된 공급자 유형의 컴퓨터에 대한 기본 CSP를 결정합니다.
CryptGetProvParam 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
CSP의 작업을 제어하는 매개 변수를 검색합니다.
CryptInstallDefaultContext 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
기본 컨텍스트로 사용할 이전에 획득한 HCRYPTPROV 컨텍스트를 설치합니다.
CryptReleaseContext 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
CryptAcquireContext 함수에서 획득한 핸들을 해제합니다.
CryptSetProviderCryptSetProviderEx 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
특정 CSP 형식에 대한 사용자 기본 CSP를 지정합니다.
CryptSetProvParam 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
CSP의 특성을 지정합니다.
CryptUninstallDefaultContext 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
CryptInstallDefaultContext에서 이전에 설치한 기본 컨텍스트를 제거합니다.
FreeCryptProvFromCertEx 핸들을 CSP( 암호화 서비스 공급자 ) 또는 암호화 API: CNG(차세대) 키로 해제합니다.

 

키 생성 및 Exchange 함수

키 생성 및 교환 함수는 다른 사용자와 키를 교환 하고 암호화 키를 생성, 구성 및 삭제합니다.

기능 설명
CryptDeriveKey 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
암호에서 파생된 키를 만듭니다.
CryptDestroyKey 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
키를 삭제합니다.
CryptDuplicateKey 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
의 상태를 포함하여 키의 정확한 복사본을 만듭니다.
CryptExportKey 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
CSP에서 애플리케이션 메모리 공간의 키 BLOB으로 키를 전송합니다.
CryptGenKey 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
임의 키를 만듭니다.
CryptGenRandom 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
임의 데이터를 생성합니다.
CryptGetKeyParam 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
키의 매개 변수를 검색합니다.
CryptGetUserKey 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
키 교환 또는 서명 키에 대한 핸들을 가져옵니다.
CryptImportKey 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
BLOB 에서 CSP로 키를 전송합니다.
CryptSetKeyParam 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
키의 매개 변수를 지정합니다.

 

개체 인코딩 및 디코딩 함수

일반화된 인코딩 및 디코딩 함수입니다. 인증서, CRL( 인증서 해지 목록), 인증서요청 및 인증서 확장을 인코딩하고 디코딩하는 데 사용됩니다.

기능 설명
CryptDecodeObject lpszStructType 형식의 구조를 디코딩합니다.
CryptDecodeObjectEx lpszStructType 형식의 구조를 디코딩합니다. CryptDecodeObjectEx 는 원패스 메모리 할당 옵션을 지원합니다.
CryptEncodeObject lpszStructType 형식의 구조를 인코딩합니다.
CryptEncodeObjectEx lpszStructType 형식의 구조를 인코딩합니다. CryptEncodeObjectEx 는 원패스 메모리 할당 옵션을 지원합니다.

 

데이터 암호화 및 암호 해독 함수

다음 함수는 암호화 및 암호 해독 작업을 지원합니다. CryptEncryptCryptDecrypt 는 호출되기 전에 암호화 키가 필요합니다. 이 작업은 CryptGenKey, CryptDeriveKey 또는 CryptImportKey 함수를 사용하여 수행됩니다. 암호화 알고리즘은 키를 만들 때 지정됩니다. CryptSetKeyParam 은 추가 암호화 매개 변수를 설정할 수 있습니다.

기능 설명
CryptDecrypt 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
지정된 암호화 키를 사용하여 암호 텍스트 섹션의 암호를 해독합니다.
CryptEncrypt 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
지정된 암호화 키를 사용하여 일반 텍스트 의 섹션을 암호화합니다.
CryptProtectData DATA_BLOB 구조의 데이터에 대한 암호화를 수행합니다.
CryptProtectMemory 메모리를 암호화하여 중요한 정보를 보호합니다.
CryptUnprotectData DATA_BLOB 데이터의 암호 해독 및 무결성 검사 수행합니다.
CryptUnprotectMemory CryptProtectMemory를 사용하여 암호화된 메모리의 암호를 해독합니다.

 

해시 및 디지털 서명 함수

이러한 함수는 데이터의 해시를 계산하고 디지털 서명을 만들고 확인합니다. 해시를 메시지 다이제스트라고도 합니다.

기능 설명
CryptCreateHash 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
빈 해시 개체를 만듭니다.
CryptDestroyHash 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
해시 개체를 삭제합니다.
CryptDuplicateHash 해시 개체를 복제합니다.
CryptGetHashParam 해시 개체 매개 변수를 검색합니다.
CryptHashData 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
데이터 블록을 해시하여 지정된 해시 개체에 추가합니다.
CryptHashSessionKey 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
세션 키를 해시하여 지정된 해시 개체에 추가합니다.
CryptSetHashParam 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
해시 개체 매개 변수를 설정합니다.
CryptSignHash 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
지정된 해시 개체에 서명합니다.
CryptUIWizDigitalSign 문서 또는 BLOB에 디지털 서명하는 마법사를 표시합니다.
CryptUIWizFreeDigitalSignContext CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT 구조체에 대한 포인터를 놓습니다.
CryptVerifySignature 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
해시 개체에 대한 핸들이 지정된 디지털 서명을 확인합니다.
PFNCFILTERPROC CryptUIWizDigitalSign 함수에 의해 표시되는 디지털 서명 마법사에 표시되는 인증서를 필터링합니다.

 

인증서 및 인증서 저장소 함수

인증서 및 인증서 저장소 함수는 인증서, CRL( 인증서 해지 목록 ) 및 CTL( 인증서 신뢰 목록 )의 사용, 스토리지 및 검색을 관리합니다. 이러한 함수는 다음 그룹으로 나뉩니다.

  • 인증서 저장소 함수
  • 인증서 및 인증서 저장소 유지 관리 함수
  • 인증서 함수
  • 인증서 해지 목록 함수
  • 인증서 신뢰 목록 함수
  • 확장 속성 함수
  • MakeCert 함수

인증서 저장소 함수

사용자 사이트는 시간이 지남에 따라 많은 인증서를 수집할 수 있습니다. 일반적으로 사이트에는 사이트 사용자에 대한 인증서와 사용자가 통신하는 개인 및 엔터티를 설명하는 다른 인증서가 있습니다. 각 엔터티에 대해 둘 이상의 인증서가 있을 수 있습니다. 각 개별 인증서에 대해 신뢰할 수 있는 루트 인증서에 대한 추적을 제공하는 인증서를 확인하는 체인이 있어야 합니다. 인증서 저장소 및 관련 함수는 인증서에 저장된 정보를 저장, 검색, 열거, 확인 및 사용하는 기능을 제공합니다.

기능 설명
CertAddStoreToCollection 컬렉션 인증서 저장소에 형제 인증서 저장소를 추가합니다.
CertCloseStore 인증서 저장소 핸들을 닫습니다.
CertControlStore 캐시된 저장소의 콘텐츠와 스토리지에 유지되는 저장소의 콘텐츠 간에 차이가 있는 경우 애플리케이션에 알림을 받을 수 있습니다. 또한 필요한 경우 캐시된 저장소의 비동기화를 제공하고 캐시된 저장소의 변경 내용을 지속형 스토리지에 커밋하는 수단을 제공합니다.
CertDuplicateStore 참조 횟수를 증가시켜 저장소 핸들을 복제합니다.
CertEnumPhysicalStore 지정된 시스템 저장소의 실제 저장소를 열거합니다.
CertEnumSystemStore 사용 가능한 모든 시스템 저장소를 열거합니다.
CertEnumSystemStoreLocation 사용 가능한 시스템 저장소가 있는 모든 위치를 열거합니다.
CertGetStoreProperty 저장소 속성을 가져옵니다.
CertOpenStore 지정된 저장소 공급자 유형을 사용하여 인증서 저장소를 엽니다.
CertOpenSystemStore 하위 시스템 프로토콜을 기반으로 시스템 인증서 저장소를 엽니다.
CertRegisterPhysicalStore 레지스트리 시스템 저장소 컬렉션에 물리적 저장소를 추가합니다.
CertRegisterSystemStore 시스템 저장소를 등록합니다.
CertRemoveStoreFromCollection 컬렉션 저장소에서 형제 인증서 저장소를 제거합니다.
CertSaveStore 인증서 저장소를 저장합니다.
CertSetStoreProperty 저장소 속성을 설정합니다.
CertUnregisterPhysicalStore 지정된 시스템 저장소 컬렉션에서 실제 저장소를 제거합니다.
CertUnregisterSystemStore 지정된 시스템 저장소의 등록을 취소합니다.
CryptUIWizExport 인증서, CTL(인증서 신뢰 목록), CRL(인증서 해지 목록) 또는 인증서 저장소를 내보내는 마법사를 제공합니다.
CryptUIWizImport 인증서, CTL(인증서 신뢰 목록), CRL(인증서 해지 목록) 또는 인증서 저장소를 가져오는 마법사를 제공합니다.

 

인증서 및 인증서 저장소 유지 관리 함수

CryptoAPI는 일반 인증서 및 인증서 저장소 유지 관리 기능 집합을 제공합니다.

기능 설명
CertAddSerializedElementToStore 직렬화된 인증서 또는 CRL 요소를 저장소에 추가합니다.
CertCreateContext 인코딩된 바이트에서 지정된 컨텍스트를 만듭니다. 새 컨텍스트는 저장소에 배치되지 않습니다.
CertEnumSubjectInSortedCTL 정렬된 CTL 컨텍스트에서 TrustedSubjects를 열거합니다.
CertFindSubjectInCTL CTL에서 지정된 제목을 찾습니다.
CertFindSubjectInSortedCTL 정렬된 CTL에서 지정된 제목을 찾습니다.
OpenPersonalTrustDBDialogOpenPersonalTrustDBDialogEx 인증서 대화 상자를 표시 합니다 .

 

인증서 함수

대부분의 인증서 함수에는 CRL 및 CTL 을 처리하는 관련 함수 가 있습니다. 관련 CRL 및 CTL 함수에 대한 자세한 내용은 인증서 해지 목록 함수 및 인증서 신뢰 목록 함수를 참조하세요.

기능 설명
CertAddCertificateContextToStore 인증서 저장소에 인증서 컨텍스트를 추가합니다.
CertAddCertificateLinkToStore 인증서 저장소의 링크를 다른 저장소의 인증서 컨텍스트에 추가합니다.
CertAddEncodedCertificateToStore 인코딩된 인증서를 인증서 컨텍스트로 변환한 다음 인증서 저장소에 컨텍스트를 추가합니다.
CertAddRefServerOcspResponse HCERT_SERVER_OCSP_RESPONSE 핸들에 대한 참조 수를 증분합니다.
CertAddRefServerOcspResponseContext CERT_SERVER_OCSP_RESPONSE_CONTEXT 구조체에 대한 참조 수를 증분합니다.
CertCloseServerOcspResponse OCSP(온라인 인증서 상태 프로토콜) 서버 응답 핸들을 닫습니다.
CertCreateCertificateContext 인코딩된 인증서에서 인증서 컨텍스트를 만듭니다. 만든 컨텍스트는 인증서 저장소에 배치되지 않습니다.
CertCreateSelfSignCertificate 자체 서명된 인증서를 만듭니다.
CertDeleteCertificateFromStore 인증서 저장소에서 인증서를 삭제합니다.
CertDuplicateCertificateContext 참조 횟수를 증가시켜 인증서 컨텍스트를 복제합니다.
CertEnumCertificatesInStore 인증서 저장소의 인증서 컨텍스트를 열거합니다.
CertFindCertificateInStore 검색 조건을 충족하는 인증서 저장소에서 첫 번째 또는 다음 인증서 컨텍스트를 찾습니다.
CertFreeCertificateContext 인증서 컨텍스트를 해제합니다.
CertGetIssuerCertificateFromStore 지정된 주체 인증서의 첫 번째 또는 다음 발급자의 인증서 저장소에서 인증서 컨텍스트를 가져옵니다.
CertGetServerOcspResponseContext 지정된 핸들에 대한 비 차단, 시간 유효한 온라인 인증서 상태 프로토콜(OCSP) 응답 컨텍스트를 검색합니다.
CertGetSubjectCertificateFromStore 인증서 저장소에서 발급자와 일련 번호로 고유하게 식별되는 주체 인증서 컨텍스트를 가져옵니다.
CertGetValidUsages 인증서 배열의 모든 인증서에 대해 유효한 사용법의 교집합으로 구성된 사용량 배열을 반환합니다.
CertOpenServerOcspResponse 서버 인증서 체인과 연결된 OCSP(온라인 인증서 상태 프로토콜) 응답에 대한 핸들을 엽니다.
CertRetrieveLogoOrBiometricInfo szOID_LOGOTYPE_EXT 또는 szOID_BIOMETRIC_EXT 인증서 확장에 지정된 로고 또는 생체 인식 정보의 URL 검색을 수행합니다.
CertSelectCertificate 사용자가 지정된 조건과 일치하는 인증서 집합에서 인증서를 선택할 수 있는 대화 상자를 표시합니다.
CertSelectCertificateChains 지정된 선택 조건에 따라 인증서 체인을 검색합니다.
CertSelectionGetSerializedBlob CERT_SELECTUI_INPUT 구조에서 직렬화된 인증서 BLOB을 검색하는 데 사용되는 도우미 함수입니다.
CertSerializeCertificateStoreElement 인증서 컨텍스트의 인코딩된 인증서와 해당 속성의 인코딩된 표현을 직렬화합니다.
CertVerifySubjectCertificateContext 발급자를 사용하여 주체 인증서에 대해 활성화된 확인 검사를 수행합니다.
CryptUIDlgCertMgr 사용자가 인증서를 관리할 수 있는 대화 상자를 표시합니다.
CryptUIDlgSelectCertificate 사용자가 인증서를 선택할 수 있는 대화 상자를 표시합니다.
CryptUIDlgSelectCertificateFromStore 지정된 저장소에서 인증서를 선택할 수 있는 대화 상자를 표시합니다.
CryptUIDlgViewCertificate 지정된 인증서를 표시하는 대화 상자를 표시합니다.
CryptUIDlgViewContext 인증서, CRL 또는 CTL을 표시합니다.
CryptUIDlgViewSignerInfo 서명된 메시지에 대한 서명자 정보가 포함된 대화 상자를 표시합니다.
GetFriendlyNameOfCert 인증서의 표시 이름을 검색합니다.
RKeyCloseKeyService 키 서비스 핸들을 닫습니다.
RKeyOpenKeyService 원격 컴퓨터에서 키 서비스 핸들을 엽니다.
RKeyPFXInstall 원격 컴퓨터에 인증서를 설치합니다.

 

인증서 해지 목록 함수

이러한 함수는 CRL( 인증서 해지 목록 )의 스토리지 및 검색을 관리합니다.

기능 설명
CertAddCRLContextToStore 인증서 저장소에 CRL 컨텍스트를 추가합니다.
CertAddCRLLinkToStore 저장소의 링크를 다른 저장소의 CRL 컨텍스트에 추가합니다.
CertAddEncodedCRLToStore 인코딩된 CRL을 CRL 컨텍스트로 변환한 다음 인증서 저장소에 컨텍스트를 추가합니다.
CertCreateCRLContext 인코딩된 CRL에서 CRL 컨텍스트를 만듭니다. 만든 컨텍스트가 인증서 저장소에 배치되지 않습니다.
CertDeleteCRLFromStore 인증서 저장소에서 CRL을 삭제합니다.
CertDuplicateCRLContext 참조 수를 증가시켜 CRL 컨텍스트를 복제합니다.
CertEnumCRLsInStore 저장소에서 CRL 컨텍스트를 열거합니다.
CertFindCertificateInCRL CRL( 인증서 해지 목록 )에서 지정된 인증서를 검색합니다.
CertFindCRLInStore 인증서 저장소에서 특정 조건과 일치하는 첫 번째 또는 다음 CRL 컨텍스트를 찾습니다.
CertFreeCRLContext CRL 컨텍스트를 해제합니다.
CertGetCRLFromStore 지정된 발급자 인증서에 대한 인증서 저장소에서 첫 번째 또는 다음 CRL 컨텍스트를 가져옵니다.
CertSerializeCRLStoreElement CRL 컨텍스트의 인코딩된 CRL 및 해당 속성을 직렬화합니다.

 

인증서 신뢰 목록 함수

이러한 함수는 CTL( 인증서 신뢰 목록 )의 스토리지 및 검색을 관리합니다.

기능 설명
CertAddCTLContextToStore 인증서 저장소에 CTL 컨텍스트를 추가합니다.
CertAddCTLLinkToStore 저장소의 링크를 다른 저장소의 CRL 컨텍스트에 추가합니다.
CertAddEncodedCTLToStore 인코딩된 CTL을 CTL 컨텍스트로 변환한 다음 인증서 저장소에 컨텍스트를 추가합니다.
CertCreateCTLContext 인코딩된 인증서 신뢰 목록에서 CTL 컨텍스트를 만듭니다. 만든 컨텍스트가 인증서 저장소에 배치되지 않습니다.
CertDeleteCTLFromStore 인증서 저장소에서 CTL을 삭제합니다.
CertDuplicateCTLContext 참조 수를 증분하여 CTL 컨텍스트를 복제합니다.
CertEnumCTLsInStore 인증서 저장소의 CTL 컨텍스트를 열거합니다.
CertFindCTLInStore 인증서 저장소에서 특정 조건과 일치하는 첫 번째 또는 다음 CTL 컨텍스트를 찾습니다.
CertFreeCTLContext CTL 컨텍스트를 해제합니다.
CertModifyCertificatesToTrust 지정된 목적을 위해 CTL의 인증서 집합을 수정합니다.
CertSerializeCTLStoreElement CTL 컨텍스트의 인코딩된 CTL 및 해당 속성을 직렬화합니다.

 

확장 속성 함수

다음 함수는 인증서, CRL 및 CTL의 확장 속성에서 작동합니다.

기능 설명
CertEnumCertificateContextProperties 지정된 인증서 컨텍스트의 속성을 열거합니다.
CertEnumCRLContextProperties 지정된 CRL 컨텍스트의 속성을 열거합니다.
CertEnumCTLContextProperties 지정된 CTL 컨텍스트의 속성을 열거합니다.
CertGetCertificateContextProperty 인증서 속성을 검색합니다.
CertGetCRLContextProperty CRL 속성을 검색합니다.
CertGetCTLContextProperty CTL 속성을 검색합니다.
CertSetCertificateContextProperty 인증서 속성을 설정합니다.
CertSetCRLContextProperty CRL 속성을 설정합니다.
CertSetCTLContextProperty CTL 속성을 설정합니다.

 

MakeCert 함수

다음 함수는 MakeCert 도구를 지원합니다.

기능 설명
FreeCryptProvFromCert 핸들을 CSP( 암호화 서비스 공급자 )로 해제하고 필요에 따라 GetCryptProvFromCert 함수에서 만든 임시 컨테이너를 삭제합니다.
GetCryptProvFromCert CSP에 대한 핸들과 인증서 컨텍스트에 대한 키 사양을 가져옵니다.
PvkFreeCryptProv 핸들을 CSP로 해제하고 필요에 따라 PvkGetCryptProv 함수에서 만든 임시 컨테이너를 삭제합니다.
PvkGetCryptProv 프라이빗 키 파일 이름 또는 키 컨테이너 이름을 기반으로 CSP에 대한 핸들을 가져옵니다.
PvkPrivateKeyAcquireContextFromMemory CSP에 임시 컨테이너를 만들고 메모리에서 컨테이너로 프라이빗 키를 로드합니다.
PvkPrivateKeySave 프라이빗 키와 해당 공개 키를 지정된 파일에 저장합니다.
SignError GetLastError를 호출하고 반환 코드를 HRESULT로 변환합니다.

 

인증서 확인 함수

인증서는 CTL 또는 인증서 체인을 사용하여 확인됩니다. 함수는 다음 두 가지 모두에 대해 제공됩니다.

  • CTL을 사용하는 확인 함수
  • 인증서 체인 확인 함수

CTL을 사용하는 확인 함수

이러한 함수는 확인 프로세스에서 CTL을 사용합니다. CTL을 사용하기 위한 추가 함수는 인증서 신뢰 목록 함수 및 확장 속성 함수에서 찾을 수 있습니다.

다음 함수는 확인을 위해 CTL을 직접 사용합니다.

기능 설명
CertVerifyCTLUsage CTL의 사용량을 확인합니다.
CryptMsgEncodeAndSignCTL CTL을 인코딩하고 메시지로 서명합니다.
CryptMsgGetAndVerifySigner 메시지에서 CTL을 검색하고 확인합니다.
CryptMsgSignCTL CTL이 포함된 메시지에 서명합니다.

 

인증서 체인 확인 함수

인증서 체인은 개별 인증서에 대한 신뢰 정보를 제공하도록 빌드됩니다.

함수 이름 설명
CertCreateCertificateChainEngine 애플리케이션에 대한 기본이 아닌 새 체인 엔진을 만듭니다.
CertCreateCTLEntryFromCertificateContextProperties 특성이 인증서 컨텍스트의 속성인 CTL 항목을 만듭니다.
CertDuplicateCertificateChain 체인의 참조 수를 증가시키고 체인에 대한 포인터를 반환하여 인증서 체인을 복제합니다.
CertFindChainInStore 저장소에서 첫 번째 또는 다음 인증서 체인 컨텍스트를 찾습니다.
CertFreeCertificateChain 참조 수를 줄여 인증서 체인을 해제합니다.
CertFreeCertificateChainEngine 기본이 아닌 인증서 체인 엔진을 해제합니다.
CertFreeCertificateChainList 포인터 배열을 체인 컨텍스트로 해제합니다.
CertGetCertificateChain 가능한 경우 최종 인증서에서 시작하여 신뢰할 수 있는 루트 인증서로 돌아가는 체인 컨텍스트를 빌드합니다.
CertIsValidCRLForCertificate CRL을 확인하여 해당 인증서가 해지된 경우 특정 인증서를 포함할지 여부를 확인합니다.
CertSetCertificateContextPropertiesFromCTLEntry CTL 항목의 특성을 사용하여 인증서 컨텍스트의 속성을 설정합니다.
CertVerifyCertificateChainPolicy 인증서 체인을 검사하여 지정된 유효성 정책 조건 준수를 포함하여 인증서 체인의 유효성을 확인합니다.

 

메시지 함수

CryptoAPI 메시지 함수는 하위 수준 메시지 함수와 간소화된 메시지 함수의 두 가지 함수 그룹으로 구성됩니다.

하위 수준 메시지 함수는 PKCS #7 메시지를 직접 만들고 작동합니다. 이러한 함수는 전송을 위해 PKCS #7 데이터를 인코딩하고 받은 PKCS #7 데이터를 디코딩합니다. 또한 수신된 메시지의 서명을 해독하고 확인합니다. PKCS #7 표준 및 하위 수준 메시지에 대한 개요는 하위 수준 메시지를 참조하세요.

간소화된 메시지 함수는 더 높은 수준에 있으며 여러 하위 수준 메시지 함수 및 인증서 함수를 특정 방식으로 특정 작업을 수행하는 단일 함수로 래핑합니다. 이러한 함수는 작업을 수행하는 데 필요한 함수 호출 수를 줄여 CryptoAPI 사용을 간소화합니다. 간소화된 메시지에 대한 개요는 간소화된 메시지를 참조하세요.

  • 하위 수준 메시지 함수
  • 간소화된 메시지 함수

하위 수준 메시지 함수

하위 수준 메시지 함수는 전송을 위해 데이터를 인코딩하고 받은 PKCS #7 메시지를 디코딩하는 데 필요한 기능을 제공합니다. 수신된 메시지의 서명을 해독하고 확인하는 기능도 제공됩니다. 대부분의 애플리케이션에서 이러한 하위 수준 메시지 함수를 사용하지 않는 것이 좋습니다. 대부분의 애플리케이션에서는 여러 하위 수준 메시지 함수를 단일 함수 호출로 래핑하는 간소화된 메시지 함수를 사용하는 것이 좋습니다.

기능 설명
CryptMsgCalculateEncodedLength 인코딩된 암호화 메시지의 길이를 계산합니다.
CryptMsgClose 암호화 메시지의 핸들을 닫습니다.
CryptMsgControl 인코딩되거나 디코딩된 암호화 메시지의 최종 CryptMsgUpdate 다음에 특수 제어 함수를 수행합니다.
CryptMsgCountersign 메시지에서 이미 존재하는 서명을 카운터 서명합니다.
CryptMsgCountersignEncoded 기존 서명(PKCS #7에서 정의한 대로 인코딩된 SignerInfo)을 카운터 서명합니다.
CryptMsgDuplicate 참조 수를 증분하여 암호화 메시지 핸들을 복제합니다. 참조 횟수는 메시지의 수명을 추적합니다.
CryptMsgGetParam 암호화 메시지를 인코딩하거나 디코딩한 후 매개 변수를 가져옵니다.
CryptMsgOpenToDecode 디코딩을 위한 암호화 메시지를 엽니다.
CryptMsgOpenToEncode 인코딩을 위한 암호화 메시지를 엽니다.
CryptMsgUpdate 암호화 메시지의 내용을 업데이트.
CryptMsgVerifyCountersignatureEncoded SignerInfo 구조체(PKCS #7에 정의된 대로)의 측면에서 카운터 서명자를 확인합니다.
CryptMsgVerifyCountersignatureEncodedEx pbSignerInfoCounterSignature 매개 변수에 pbSignerInfo 매개 변수 구조의 encryptedDigest 필드의 암호화된해시가 포함되어 있음을 확인합니다.

 

간소화된 메시지 함수

간소화된 메시지 함수는 하위 수준 메시지 함수를 단일 함수로 래핑하여 지정된 작업을 수행합니다.

기능 설명
CryptDecodeMessage 암호화 메시지를 디코딩합니다.
CryptDecryptAndVerifyMessageSignature 지정된 메시지의 암호를 해독하고 서명자를 확인합니다.
CryptDecryptMessage 지정된 메시지의 암호를 해독합니다.
CryptEncryptMessage 받는 사람 또는 받는 사람의 메시지를 암호화합니다.
CryptGetMessageCertificates 메시지의 인증서CRL이 포함된 인증서 저장소를 반환합니다.
CryptGetMessageSignerCount 서명된 메시지의 서명자 수를 반환합니다.
CryptHashMessage 메시지의 해시를 만듭니다.
CryptSignAndEncryptMessage 메시지에 서명한 다음 받는 사람 또는 받는 사람을 위해 메시지를 암호화합니다.
CryptSignMessageWithKey 함수에 대한 매개 변수에 지정된 CSP의 프라이빗 키를 사용하여 메시지에 서명합니다.
CryptSignMessage 메시지에 서명합니다.
CryptVerifyDetachedMessageHash 분리된 해시가 포함된 해시된 메시지를 확인합니다.
CryptVerifyDetachedMessageSignature 분리된 서명 또는 서명이 포함된 서명된 메시지를 확인합니다.
CryptVerifyMessageHash 해시된 메시지를 확인합니다.
CryptVerifyMessageSignature 서명된 메시지를 확인합니다.
CryptVerifyMessageSignatureWithKey 지정된 공개 키 정보를 사용하여 서명된 메시지의 서명을 확인합니다.

 

보조 함수

보조 함수는 다음과 같이 그룹화됩니다.

  • 데이터 관리 함수
  • 데이터 변환 함수
  • 향상된 키 사용 기능
  • 키 식별자 함수
  • OID 지원 함수
  • 원격 개체 검색 함수
  • PFX 함수

데이터 관리 함수

다음 CryptoAPI 함수는 데이터 및 인증서를 관리합니다.

기능 설명
CertCompareCertificate 두 인증서를 비교하여 동일한지 여부를 확인합니다.
CertCompareCertificateName 두 인증서 이름을 비교하여 동일한지 여부를 확인합니다.
CertCompareIntegerBlob 두 개의 정수 BLOB을 비교합니다.
CertComparePublicKeyInfo 개의 공용 키를 비교하여 동일한지 여부를 확인합니다.
CertFindAttribute OID( 개체 식별자 )로 식별된 첫 번째 특성을 찾습니다.
CertFindExtension OID로 식별된 첫 번째 확장을 찾습니다.
CertFindRDNAttr 상대 고유 이름의 이름 목록에서 OID로 식별된 첫 번째 RDN 특성을 찾습니다.
CertGetIntendedKeyUsage 인증서에서 의도한 키 사용 바이트를 획득합니다.
CertGetPublicKeyLength 공개 키 BLOB에서 퍼블릭/프라이빗 키의 비트 길이를 가져옵니다.
CertIsRDNAttrsInCertificateName 인증서 이름의 특성을 지정된 CERT_RDN 비교하여 모든 특성이 포함되는지 여부를 확인합니다.
CertIsStrongHashToSign 서명 인증서의 지정된 해시 알고리즘과 공개 키를 사용하여 강력한 서명을 수행할 수 있는지 여부를 결정합니다.
CertVerifyCRLRevocation 주체 인증서가 CRL( 인증서 해지 목록 )에 없는지 확인합니다.
CertVerifyCRLTimeValidity CRL의 시간 유효성을 확인합니다.
CertVerifyRevocation 주체 인증서가 CRL에 없는지 확인합니다.
CertVerifyTimeValidity 인증서의 시간 유효성을 확인합니다.
CertVerifyValidityNesting 주체의 시간 유효성이 발급자의 시간 유효성 내에 중첩되었는지 확인합니다.
CryptExportPKCS8 이 함수는 CryptExportPKCS8Ex 함수로 대체됩니다.
CryptExportPKCS8Ex 프라이빗 키를 PKCS #8 형식으로 내보냅니다.
CryptExportPublicKeyInfo 공급자의 해당 프라이빗 키와 연결된 공개 키 정보를 내보냅니다.
CryptExportPublicKeyInfoEx 공급자의 해당 프라이빗 키와 연결된 공개 키 정보를 내보냅니다. 이 함수는 사용자가 공개 키 알고리즘을 지정할 수 있으므로 CSP에서 제공하는 기본값을 재정의할 수 있다는 점에서 CryptExportPublicKeyInfo 와 다릅니다.
CryptExportPublicKeyInfoFromBCryptKeyHandle 공급자의 해당 프라이빗 키와 연결된 공개 키 정보를 내보냅니다.
CryptFindCertificateKeyProvInfo 암호화 공급자 및 해당 키 컨테이너 를 열거하여 인증서의 공개 키에 해당하는 프라이빗 키를 찾습니다.
CryptFindLocalizedName 지정된 이름의 지역화된 이름을 찾습니다. 예를 들어 루트 시스템의 저장소 이름에 대한 지역화된 이름을 찾습니다.
CryptHashCertificate 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
인코딩된 콘텐츠를 해시합니다.
CryptHashCertificate2 암호화 API: CNG(차세대) 해시 공급자를 사용하여 데이터 블록을 해시합니다.
CryptHashPublicKeyInfo 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
인코딩된 공개 키 정보의 해시를 계산합니다.
CryptHashToBeSigned 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
인코딩된 서명된 콘텐츠(CERT_SIGNED_CONTENT_INFO)에서 "서명할" 정보의 해시를 계산합니다.
CryptImportPKCS8 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
PKCS #8 형식의 프라이빗 키를 CSP( 암호화 서비스 공급자 )로 가져옵니다.
CryptImportPublicKeyInfo 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
공개 키 정보를 공급자로 변환하고 가져오고 공개 키의 핸들을 반환합니다.
CryptImportPublicKeyInfoEx 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
공개 키 정보를 공급자로 변환하고 가져오고 공개 키의 핸들을 반환합니다. 기본값을 재정의하는 데 사용할 수 있는 추가 매개 변수( CryptImportPublicKeyInfo에서 지정한 매개 변수 이상) 는 CERT_PUBLIC_KEY_INFO 보완하기 위해 제공됩니다.
CryptImportPublicKeyInfoEx2 공개 키를 CNG 비대칭 공급자로 가져옵니다.
CryptMemAlloc 버퍼에 대한 메모리를 할당합니다. 이 메모리는 할당된 버퍼를 반환하는 모든 Crypt32.lib 함수에서 사용됩니다.
CryptMemFree CryptMemAlloc 또는 CryptMemRealloc에서 할당한 메모리를 해제합니다.
CryptMemRealloc 현재 버퍼에 할당된 메모리를 해제하고 새 버퍼에 대한 메모리를 할당합니다.
CryptQueryObject 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
BLOB 또는 파일의 콘텐츠에 대한 정보를 검색합니다.
CryptSignAndEncodeCertificate "서명할" 정보를 인코딩하고, 이 인코딩된 정보에 서명하고, 결과 서명된 인코딩된 정보를 인코딩합니다.
CryptSignCertificate 인코딩된 서명된 콘텐츠에 "서명할" 정보에 서명합니다.
CryptSIPAddProvider SIP(주체 인터페이스 패키지)를 추가합니다.
CryptSIPCreateIndirectData 제공된 SIP_SUBJECTINFO 구조체의 해시 , 다이제스트 알고리즘 및 인코딩 특성이 포함된 SIP_INDIRECT_DATA 구조를 반환합니다. 해시는 데이터에 대한 간접 참조로 사용할 수 있습니다.
CryptSIPGetCaps SIP의 기능을 검색합니다.
CryptSIPGetSignedDataMsg 파일에서 Authenticode 서명을 검색합니다.
CryptSIPLoad 주체 인터페이스 패키지를 구현하는 동적 링크 라이브러리를 로드하고 적절한 라이브러리 내보내기 함수를 SIP_DISPATCH_INFO 구조에 할당합니다.
CryptSIPPutSignedDataMsg 대상 파일에 Authenticode 서명을 저장합니다.
CryptSIPRemoveProvider CryptSIPAddProvider 함수에 대한 이전 호출에 의해 추가된 SIP를 제거합니다.
CryptSIPRemoveSignedDataMsg 지정된 Authenticode 서명을 제거합니다.
CryptSIPRetrieveSubjectGuid 지정된 파일의 헤더 정보를 기반으로 GUID를 검색합니다.
CryptSIPRetrieveSubjectGuidForCatalogFile 지정된 파일과 연결된 주체 GUID를 검색합니다.
CryptSIPVerifyIndirectData 제공된 주체에 대해 간접 해시 데이터의 유효성을 검사합니다.
CryptUpdateProtectedState 사용자의 SID(보안 식별자)가 변경된 후 현재 사용자의 master 키를 마이그레이션합니다.
CryptVerifyCertificateSignature 공개 키 정보를 사용하여 주체 인증서 또는 CRL 의 서명을 확인합니다.
CryptVerifyCertificateSignatureEx CryptVerifyCertificateSignature의 확장 버전입니다.
GetEncSChannel 암호화된 Schannel DLL 콘텐츠를 메모리에 저장합니다.
pCryptSIPGetCaps 기능을 보고하기 위해 SIP에 의해 구현됩니다.

 

데이터 변환 함수

다음 CryptoAPI 함수는 인증서 구조 멤버를 다른 형식으로 변환합니다.

기능 설명
CertAlgIdToOID cryptoAPI 알고리즘 식별자(ALG_ID)를 ASN.1( 추상 구문 표기법 1) OID( 개체 식별자 ) 문자열로 변환합니다.
CertGetNameString 인증서에서 주체 또는 발급자 이름을 획득하고 null로 끝나는 문자열로 변환합니다.
CertNameToStr 인증서 이름 BLOB 을 0으로 끝나는 문자열로 변환합니다.
CertOIDToAlgId ASN.1 개체 식별자 문자열을 CSP 알고리즘 식별자로 변환합니다.
CertRDNValueToStr 이름 값을 null로 끝나는 문자열로 변환합니다.
CertStrToName null로 종료된 X.500 문자열을 인코딩된 인증서 이름으로 변환합니다.
CryptBinaryToString 이진 시퀀스를 형식이 지정된 문자열로 변환합니다.
CryptFormatObject 인코딩된 데이터의 형식을 지정하고 유니코드 문자열을 반환합니다.
CryptStringToBinary 서식이 지정된 문자열을 이진 시퀀스로 변환합니다.

 

향상된 키 사용 함수

다음 함수는 EKU(향상된 키 사용 ) 확장 및 인증서의 EKU 확장 속성을 처리합니다. EKU 확장 및 확장 속성은 인증서의 유효한 사용을 지정하고 제한합니다. 확장은 인증서 자체의 일부입니다. 인증서 발급자는 인증서를 설정하며 읽기 전용입니다. 인증서 확장 속성은 애플리케이션에서 설정할 수 있는 인증서와 연결된 값입니다.

기능 설명
CertAddEnhancedKeyUsageIdentifier 인증서의 EKU 속성에 사용 식별자를 추가합니다.
CertGetEnhancedKeyUsage 인증서에서 EKU 확장 또는 속성에 대한 정보를 가져옵니다.
CertRemoveEnhancedKeyUsageIdentifier 인증서의 EKU 확장 속성에서 사용 식별자를 제거합니다.
CertSetEnhancedKeyUsage 인증서에 대한 EKU 속성을 설정합니다.

 

키 식별자 함수

키 식별자 함수를 사용하면 사용자가 키 식별자 또는 해당 속성을 만들거나, 설정하거나, 검색하거나, 찾을 수 있습니다.

키 식별자는 퍼블릭/프라이빗 키 쌍의 고유 식별자입니다. 모든 고유 식별자일 수 있지만 일반적으로 인코딩된 CERT_PUBLIC_KEY_INFO 구조체의 20 바이트 SHA1 해시입니다. 인증서의 CERT_KEY_IDENTIFIER_PROP_ID 통해 키 식별자를 가져올 수 있습니다. 키 식별자를 사용하면 인증서를 사용하지 않고 해당 키 쌍 을 사용하여 메시지를 암호화하거나 암호 해독할 수 있습니다.

키 식별자는 CRL 또는 CTL과 연결되지 않습니다.

키 식별자는 인증서 컨텍스트와 동일한 속성을 가질 수 있습니다. 자세한 내용은 CertCreateContext를 참조하세요.

기능 설명
CryptCreateKeyIdentifierFromCSP 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
CSP의 공개 키 BLOB에서 키 식별자를 만듭니다.
CryptEnumKeyIdentifierProperties 키 식별자와 해당 속성을 열거합니다.
CryptGetKeyIdentifierProperty 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
지정된 키 식별자에서 특정 속성을 가져옵니다.
CryptSetKeyIdentifierProperty 중요:
이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 Cryptography Next Generation API 사용을 시작해야 합니다. Microsoft는 향후 릴리스에서 이 API를 제거할 수 있습니다.
지정된 키 식별자의 속성을 설정합니다.

 

OID 지원 함수

이러한 함수는 OID( 개체 식별자 ) 지원을 제공합니다. 이러한 함수는 OID 및 인코딩 형식별 함수를 설치, 등록 및 디스패치합니다.

다음 CryptoAPI 함수는 다음 OID 지원 함수를 사용합니다.

이 프로세스에 대한 개요는 CryptoAPI 기능 확장을 참조하세요.

다음 함수는 OID에서 작동합니다.

기능 설명
CryptEnumOIDFunction 인코딩 형식, 함수 이름 및 OID로 식별된 등록된 OID 함수를 열거합니다.
CryptEnumOIDInfo 해당 그룹에서 식별된 등록된 OID 정보를 열거하고 일치 항목에 대해 pfnEnumOIDInfo 를 호출합니다.
CryptFindOIDInfo 지정된 키와 그룹을 사용하여 OID 정보를 찾습니다.
CryptFreeOIDFunctionAddress CryptGetOIDFunctionAddress 또는 CryptGetDefaultOIDFunctionAddress에서 증가 및 반환된 핸들 수를 해제합니다.
CryptGetDefaultOIDDllList 지정된 함수 집합 및 인코딩 형식에 대해 등록된 기본 DLL 항목 목록을 가져옵니다.
CryptGetDefaultOIDFunctionAddress 첫 번째 또는 다음에 설치된 기본 함수를 가져오거나 기본 함수가 포함된 DLL을 로드합니다.
CryptGetOIDFunctionAddress 설치된 함수 목록에서 인코딩 형식 및 OID 일치 항목을 검색합니다. 일치하는 항목을 찾을 수 없으면 레지스트리에서 일치 항목을 검색합니다.
CryptGetOIDFunctionValue 지정된 인코딩 형식, 함수 이름, OID 및 값 이름에 대한 값을 가져옵니다.
CryptInitOIDFunctionSet 제공된 함수 이름으로 식별된 OID 함수 집합의 핸들을 초기화하고 반환합니다.
CryptInstallOIDFunctionAddress 호출 가능한 OID 함수 주소 집합을 설치합니다.
CryptRegisterDefaultOIDFunction 지정된 인코딩 형식 및 함수 이름에 대해 호출할 기본 함수가 포함된 DLL을 등록합니다.
CryptRegisterOIDFunction 지정된 인코딩 형식, 함수 이름 및 OID에 대해 호출할 함수가 포함된 DLL을 등록합니다.
CryptRegisterOIDInfo CRYPT_OID_INFO 구조에 지정된 OID 정보를 등록하여 레지스트리에 유지합니다.
CryptSetOIDFunctionValue 지정된 인코딩 형식, 함수 이름, OID 및 값 이름에 대한 값을 설정합니다.
CryptUnregisterDefaultOIDFunction 지정된 인코딩 형식 및 함수 이름에 대해 호출할 기본 함수가 포함된 DLL에 대한 등록을 제거합니다.
CryptUnregisterOIDFunction 지정된 인코딩 형식, 함수 이름 및 OID에 대해 호출할 함수가 포함된 DLL에 대한 등록을 제거합니다.
CryptUnregisterOIDInfo 지정된 OID 정보에 대한 등록을 제거합니다.

 

원격 개체 검색 함수

다음 함수를 사용하면 사용자가 PKI(공개 키 인프라) 개체를 검색하거나, 인증서, CTL 또는 CRL의 URL을 획득하거나, 개체에서 URL을 추출할 수 있습니다.

기능 설명
CryptGetObjectUrl 인증서, CTL 또는 CRL에서 원격 개체의 URL을 가져옵니다.
CryptRetrieveObjectByUrl URL로 지정된 위치에서 PKI 개체를 검색합니다.

 

PFX 함수

다음 함수는 PFX(개인 정보 교환) 형식 BLOB을 지원합니다.

기능 설명
PFXExportCertStore 참조된 인증서에서 내보내는 인증서는 인증서를 저장 하고, 사용 가능한 경우 연결된 프라이빗 키를 저장합니다.
PFXExportCertStoreEx 참조된 인증서에서 내보내는 인증서는 인증서를 저장하고, 사용 가능한 경우 연결된 프라이빗 키를 저장합니다.
PFXImportCertStore PFX BLOB을 가져오고 인증서 및 연결된 프라이빗 키가 포함된 저장소의 핸들을 반환합니다.
PFXIsPFXBlob BLOB의 외부 계층을 PFX 패킷으로 디코딩하려고 시도합니다.
PFXVerifyPassword BLOB의 외부 계층을 PFX 패킷으로 디코딩하고 지정된 암호로 암호를 해독하려고 시도합니다.

 

Certificate Services 백업 및 복원 함수

Certificate Services에는 Certificate Services 데이터베이스를 백업하고 복원하기 위한 함수가 포함되어 있습니다. 이러한 Certificate Services 백업 및 복원 함수는 Certadm.dll 포함되어 있습니다. Certificate Services와 연결된 다른 API 요소와 달리 이러한 함수는 클래스 메서드를 호출하는 데 사용할 수 있는 개체에 캡슐화되지 않습니다. 대신 LoadLibrary 를 호출한 다음 GetProcAddress를 호출하여 함수의 주소를 확인하여 먼저 Certadm.dll 라이브러리를 메모리에 로드하여 백업 및 복원 API를 호출합니다. Certificate Services 백업 및 복원 함수 호출을 마쳤으면 FreeLibrary 를 호출하여 메모리에서 Certadm.dll 리소스를 해제합니다.

참고

Certadm.dll 제공하는 백업 및 복원 함수는 인증서 서비스의 프라이빗 키를 백업하거나 복원하지 않습니다. Certificate Services 프라이빗 키를 백업하는 방법에 대한 자세한 내용은 인증서 서비스 프라이빗 키 백업 및 복원을 참조하세요.

백업 및 복원 함수를 호출하려면 백업 및 복원 권한이 있어야 합니다. 자세한 내용은 백업 및 복원 권한 설정을 참조하세요.

 

참고

이전에 인증서 서비스 백업을 호출하고 API를 복원하는 데 사용된 동일한 스레드에서 CoInitializeEx 가 호출된 경우 COINIT_APARTMENTTHREADED 플래그가 CoInitializeEx에 전달되어야 합니다. 즉, 동일한 스레드를 사용하는 경우 CoInitializeEx 호출에서 스레드가 이전에 COINIT_MULTITHREADED 플래그에 전달된 경우 인증서 서비스 백업을 호출하고 API를 복원할 수 없습니다.

 

인증서 서비스 백업 API는 Certbcli.h에 정의되어 있습니다. 그러나 프로그램을 만들 때 Certsrv.h를 포함 파일로 사용합니다.

다음 API는 Certadm.dll 내보냅니다.

기능 설명
CertSrvBackupClose 열린 파일을 닫습니다.
CertSrvBackupEnd 백업 세션을 종료합니다.
CertSrvBackupFree 백업 및 복원 API에 의해 할당된 버퍼를 해제합니다.
CertSrvBackupGetBackupLogs 백업해야 하는 로그 파일 목록을 반환합니다.
CertSrvBackupGetDatabaseNames 백업해야 하는 데이터베이스 파일 목록을 반환합니다.
CertSrvBackupGetDynamicFileList 지정된 백업 컨텍스트에 대해 백업해야 하는 Certificate Services 동적 파일 이름 목록을 검색합니다.
CertSrvBackupOpenFile 백업을 준비하기 위해 파일을 엽니다.
CertSrvBackupPrepare 온라인 백업을 위해 데이터베이스를 준비합니다.
CertSrvBackupRead 열린 파일의 내용을 읽습니다.
CertSrvBackupTruncateLogs 로그 파일을 자립니다.
CertSrvIsServerOnline 인증서 서비스 서버가 온라인 상태인지 여부를 확인합니다(적극적으로 실행 중).
CertSrvRestoreEnd 복원 세션을 종료합니다.
CertSrvRestoreGetDatabaseLocations 데이터베이스 위치를 검색합니다(백업 및 복원 시나리오 모두에 사용됨).
CertSrvRestorePrepare 복원 세션을 시작합니다.
CertSrvRestoreRegister 복원 작업을 등록합니다.
CertSrvRestoreRegisterComplete 이전에 등록된 복원 작업을 완료합니다.
CertSrvRestoreRegisterThroughFile 복원 작업을 등록합니다.
CertSrvServerControl 인증서 서비스 instance 제어 명령을 보냅니다.

 

콜백 함수

이 섹션의 콜백 함수는 애플리케이션 정의 인증서 저장소 공급자를 등록하거나 설치하고 콜백 함수를 통해 관련 기능을 제공하는 데 사용됩니다. 콜백 함수는 애플리케이션에서 구현되며 CryptoAPI 함수에 의해 호출됩니다. 콜백 함수를 사용하면 애플리케이션이 CryptoAPI 함수가 데이터를 조작하는 방식을 부분적으로 제어할 수 있습니다.

콜백 함수 사용
CertChainFindByIssuerCallback 애플리케이션이 인증서 체인에 추가될 수 있는 인증서를 필터링할 수 있도록 하는 애플리케이션 정의 콜백 함수입니다.
CertDllOpenStoreProv 저장소 공급자 열기 함수를 정의합니다.
CertEnumPhysicalStoreCallback CertEnumPhysicalStore 함수에서 검색된 각 실제 저장소에 대한 정보를 서식을 지정하고 표시하는 데 사용하는 콜백 함수입니다.
CertEnumSystemStoreCallback CertEnumSystemStore 함수에서 검색된 각 물리적 저장소에 대한 정보를 서식을 지정하고 표시하는 데 사용하는 콜백 함수입니다.
CertEnumSystemStoreLocationCallback CertEnumSystemStoreLocation 함수에서 검색된 각 물리적 저장소에 대한 정보를 서식을 지정하고 표시하는 데 사용하는 콜백 함수입니다.
CertStoreProvCloseCallback 열린 저장소의 참조 수가 0이 되면 어떻게 되는지 결정합니다.
CertStoreProvControl 사용 중인 캐시된 저장소의 콘텐츠와 스토리지에 유지되는 해당 저장소의 콘텐츠 간에 차이가 있는 경우 애플리케이션에 알림을 받을 수 있습니다.
CertStoreProvDeleteCertCallback 인증서 저장소에서 인증서를 삭제하기 전에 수행할 작업을 결정합니다.
CertStoreProvDeleteCRLCallback 인증서 저장소에서 CRL( 인증서 해지 목록 )을 삭제하기 전에 수행할 작업을 결정합니다.
CertStoreProvDeleteCTL CTL을 삭제할 수 있는지 여부를 결정합니다.
CertStoreProvFindCert 지정된 조건과 일치하는 저장소에서 첫 번째 인증서 또는 다음 인증서를 찾습니다.
CertStoreProvFindCRL 지정된 조건과 일치하는 저장소에서 첫 번째 또는 다음 CRL을 찾습니다.
CertStoreProvFindCTL 지정된 조건과 일치하는 저장소에서 첫 번째 또는 다음 CTL을 찾습니다.
CertStoreProvFreeFindCert 이전에 찾은 인증서 컨텍스트를 해제합니다.
CertStoreProvFreeFindCRL 이전에 찾은 CRL 컨텍스트를 해제합니다.
CertStoreProvFreeFindCTL 이전에 찾은 CTL 컨텍스트를 해제합니다.
CertStoreProvGetCertProperty 인증서의 지정된 속성을 검색합니다.
CertStoreProvGetCRLProperty CRL의 지정된 속성을 검색합니다.
CertStoreProvGetCTLProperty CTL의 지정된 속성을 검색합니다.
CertStoreProvReadCertCallback 현재 사용되지 않지만 향후 CSP로 내보낼 수 있습니다.
CertStoreProvReadCRLCallback 현재 사용되지 않지만 향후 CSP로 내보낼 수 있습니다.
CertStoreProvReadCTL 공급자의 CTL 컨텍스트 복사본을 읽고 있는 경우 새 CTL 컨텍스트를 만듭니다.
CertStoreProvSetCertPropertyCallback CertSetCertificateContextProperty 또는 CertGetCertificateContextProperty를 호출하기 전에 수행할 작업을 결정합니다.
CertStoreProvSetCRLPropertyCallback CertSetCRLContextProperty 또는 CertGetCRLContextProperty를 호출하기 전에 수행할 작업을 결정합니다.
CertStoreProvSetCTLProperty CTL에서 속성을 설정할 수 있는지 여부를 결정합니다.
CertStoreProvWriteCertCallback 저장소에 인증서를 추가하기 전에 수행할 작업을 결정합니다.
CertStoreProvWriteCRLCallback 저장소에 CRL을 추가하기 전에 수행할 작업을 결정합니다.
CertStoreProvWriteCTL CTL을 저장소에 추가할 수 있는지 여부를 결정합니다.
CRYPT_ENUM_KEYID_PROP CryptEnumKeyIdentifierProperties 함수에서 사용하는 콜백 함수입니다.
CRYPT_ENUM_OID_FUNCTION CryptEnumOIDFunction 함수에서 사용하는 콜백 함수입니다.
CRYPT_ENUM_OID_INFO CryptEnumOIDInfo 함수에서 사용하는 콜백 함수입니다.
CryptGetSignerCertificateCallback 메시지 서명자의 인증서를 가져와서 확인하기 위해 CRYPT_VERIFY_MESSAGE_PARA 구조와 함께 사용되는 콜백 함수입니다.
PCRYPT_DECRYPT_PRIVATE_KEY_FUNC CryptImportPKCS8 함수에서 사용하는 콜백 함수입니다.
PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC CRYPT_ENCRYPTED_PRIVATE_KEY_INFO 구조를 만들 때 사용되는 콜백 함수입니다.
PCRYPT_RESOLVE_HCRYPTPROV_FUNC CryptImportPKCS8 함수에서 사용하는 콜백 함수입니다.
PFN_CDF_PARSE_ERROR_CALLBACK CDF(카탈로그 정의 파일)를 구문 분석하는 동안 카탈로그 정의 함수 오류를 호출하는 사용자 정의 함수입니다.
PFN_CERT_CREATE_CONTEXT_SORT_FUNC 컨텍스트를 만들 때 정렬된 각 컨텍스트 항목에 대해 호출됩니다.
PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY 이미 암호가 해독된 CEK(콘텐츠 암호화 키)를 가져오기 위한 CNG OID( 개체 식별자 ) 설치 가능한 함수입니다.
PFN_CMSG_CNG_IMPORT_KEY_AGREE 봉투 메시지의 키 전송 받는 사람에 대한 콘텐츠 암호화 키를 가져옵니다.
PFN_CMSG_CNG_IMPORT_KEY_TRANS CEK(키 전송 수신자, 암호화된 콘텐츠 암호화 키)의 가져오기 및 암호 해독을 위한 CNG OID 설치 가능 함수입니다.
PFN_CMSG_EXPORT_KEY_AGREE 봉투 메시지의 키 계약 수신자에 대한 콘텐츠 암호화 키를 암호화하고 내보냅니다.
PFN_CMSG_EXPORT_KEY_TRANS 봉투 메시지의 키 전송 수신자에 대한 콘텐츠 암호화 키를 암호화하고 내보냅니다.
PFN_CMSG_EXPORT_MAIL_LIST 봉투 메시지의 메일 그룹 수신자에 대한 콘텐츠 암호화 키를 암호화하고 내보냅니다.
PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY 봉투 메시지의 콘텐츠를 암호화하는 데 사용되는 대칭 키를 생성합니다.
PFN_CMSG_IMPORT_KEY_AGREE 봉투 메시지의 키 전송 받는 사람에 대한 콘텐츠 암호화 키를 가져옵니다.
PFN_CMSG_IMPORT_KEY_TRANS 봉투 메시지의 키 전송 받는 사람에 대한 콘텐츠 암호화 키를 가져옵니다.
PFN_CMSG_IMPORT_MAIL_LIST 봉투 메시지의 키 전송 받는 사람에 대한 콘텐츠 암호화 키를 가져옵니다.
PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC 공개 키 BLOB을 내보내고 인코딩하기 위해 CryptExportPublicKeyInfoEx 에서 호출됩니다.
PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC 해시 알고리즘 식별자와 선택적으로 서명 매개 변수를 디코딩하고 반환하기 위해 호출됩니다.
PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC 계산된 해시에 서명하고 인코딩하기 위해 호출됩니다.
PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC 인코딩된 서명을 해독하고 계산된 해시와 비교하기 위해 호출됩니다.
PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC 공개 키 알고리즘 식별자를 디코딩하고, 알고리즘 공급자를 로드하고, 키 쌍을 가져오기 위해 CryptImportPublicKeyInfoEx2에서 호출됩니다.
PFNCCERTDISPLAYPROC CryptUIDlgSelectCertificate 함수의 호출자가 사용자가 보도록 선택한 인증서 표시를 처리할 수 있도록 하는 사용자 정의 콜백 함수입니다.
PFNCMFILTERPROC 각 인증서를 필터링하여 CertSelectCertificate 함수가 표시하는 인증서 선택 대화 상자에 표시할지 여부를 결정합니다.
PFNCMHOOKPROC CertSelectCertificate 함수에서 생성된 인증서 선택 대화 상자에서 메시지를 처리하기 전에 호출됩니다.

 

카탈로그 정의 함수

이러한 함수는 카탈로그를 만드는 데 사용됩니다. 이러한 모든 함수는 MakeCat에서 호출됩니다.

기능 설명
CryptCATCDFClose 카탈로그 정의 파일을 닫고 해당 CRYPTCATCDF 구조체에 대한 메모리를 해제합니다.
CryptCATCDFEnumAttributesWithCDFTag CDF의 CatalogFiles 섹션에서 멤버 파일의 특성을 열거합니다.
CryptCATCDFEnumCatAttributes CDF의 CatalogHeader 섹션 내에서 카탈로그 수준 특성을 열거합니다.
CryptCATCDFEnumMembersByCDFTagEx CDF의 CatalogFiles 섹션에서 개별 파일 멤버를 열거합니다.
CryptCATCDFOpen 읽기 위해 기존 CDF를 열고 CRYPTCATCDF 구조를 초기화합니다.

 

카탈로그 함수

이러한 함수는 카탈로그를 관리하는 데 사용됩니다.

기능 설명
CryptCATAdminAcquireContext 카탈로그 관리자 컨텍스트에 대한 핸들을 가져옵니다. 이 핸들은 CryptCATAdminAddCatalog, CryptCATAdminEnumCatalogFromHashCryptCATAdminRemoveCatalog 함수에 대한 후속 호출에서 사용할 수 있습니다.
CryptCATAdminAcquireContext2 지정된 해시 알고리즘 및 해시 정책에 대한 카탈로그 관리자 컨텍스트에 대한 핸들을 가져옵니다.
CryptCATAdminAddCatalog 카탈로그 데이터베이스에 카탈로그를 추가합니다.
CryptCATAdminCalcHashFromFileHandle 파일의 해시를 계산합니다.
CryptCATAdminCalcHashFromFileHandle2 지정된 알고리즘을 사용하여 파일의 해시를 계산합니다.
CryptCATAdminEnumCatalogFromHash 지정된 해시를 포함하는 카탈로그를 열거합니다.
CryptCATAdminReleaseCatalogContext 이전에 CryptCATAdminAddCatalog 함수에서 반환한 카탈로그 컨텍스트에 대한 핸들을 해제합니다.
CryptCATAdminReleaseContext 이전에 CryptCATAdminAcquireContext 함수에서 할당한 핸들을 해제합니다.
CryptCATAdminRemoveCatalog 카탈로그 파일을 삭제하고 Windows 카탈로그 데이터베이스에서 해당 카탈로그의 항목을 제거합니다.
CryptCATAdminResolveCatalogPath 지정된 카탈로그의 정규화된 경로를 검색합니다.
CryptCATCatalogInfoFromContext 지정된 카탈로그 컨텍스트에서 카탈로그 정보를 검색합니다.
CryptCATClose 이전에 CryptCATOpen 함수에서 연 카탈로그 핸들을 닫습니다.
CryptCATEnumerateAttr 카탈로그의 멤버와 연결된 특성을 열거합니다.
CryptCATEnumerateCatAttr 카탈로그와 연결된 특성을 열거합니다.
CryptCATEnumerateMember 카탈로그의 멤버를 열거합니다.
CryptCATGetAttrInfo 카탈로그 멤버의 특성에 대한 정보를 검색합니다.
CryptCATGetMemberInfo 카탈로그의 PKCS #7에서 멤버 정보를 검색합니다. 이 함수는 지정된 참조 태그에 대한 멤버 정보를 검색하는 것 외에도 멤버 컨텍스트를 엽니다.
CryptCATOpen 카탈로그를 열고 열려 있는 카탈로그에 대한 컨텍스트 핸들을 반환합니다.
IsCatalogFile 지정된 파일이 카탈로그 파일인지 여부를 나타내는 부울 값을 검색합니다.

 

WinTrust 함수

다음 함수는 다양한 신뢰 작업을 수행하는 데 사용됩니다.

기능 설명
WintrustAddActionID 사용자 시스템에 신뢰 공급자 작업을 추가합니다.
WintrustGetRegPolicyFlags 정책 공급자에 대한 정책 플래그를 검색합니다.
WintrustAddDefaultForUsage 공급자에 대한 기본 사용 식별자 및 콜백 정보를 지정합니다.
WintrustGetDefaultForUsage 기본 사용 식별자 및 콜백 정보를 검색합니다.
WintrustLoadFunctionPointers 지정된 작업 GUID에 대한 함수 진입점을 로드합니다.
WintrustRemoveActionID WintrustAddActionID 함수에 의해 추가된 작업을 제거합니다.
WintrustSetDefaultIncludePEPageHashes 이식 가능한 실행 파일에 대한 SIP(주체 인터페이스 패키지) 간접 데이터를 만들 때 페이지 해시가 포함되는지 여부를 결정하는 기본 설정을 설정합니다.
WintrustSetRegPolicyFlags 정책 공급자에 대한 정책 플래그를 설정합니다.
WinVerifyTrust 지정된 개체에 대해 트러스트 확인 작업을 수행합니다.
WinVerifyTrustEx 지정된 개체에 대한 신뢰 확인 작업을 수행하고 WINTRUST_DATA 구조체에 대한 포인터를 사용합니다.
WTHelperCertCheckValidSignature 서명이 유효한지 여부를 확인합니다.
WTHelperCertFindIssuerCertificate 지정된 주체 인증서와 일치하는 지정된 인증서 저장소에서 발급자 인증서를 찾습니다.
WTHelperCertIsSelfSigned 인증서가 자체 서명되었는지 여부를 확인합니다.
WTHelperGetFileHash 서명된 파일의 서명을 확인하고 파일에 대한 해시 값 및 알고리즘 식별자를 가져옵니다.
WTHelperGetProvCertFromChain 인증서 체인에서 트러스트 공급자 인증서를 검색합니다.
WTHelperGetProvPrivateDataFromChain 공급자 ID를 사용하여 체인에서 CRYPT_PROVIDER_PRIVDATA 구조를 받습니다.
WTHelperGetProvSignerFromChain 체인에서 인덱스로 서명자 또는 카운터시너를 검색합니다.
WTHelperProvDataFromStateData 지정된 핸들에서 트러스트 공급자 정보를 검색합니다.

 

개체 로케이터 함수

다음 콜백 함수는 인증서를 검색하기 위해 보안 채널(Schannel) 보안 패키지에서 호출하려는 사용자 지정 공급자에 의해 구현될 수 있습니다.

기능 설명
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH 개체가 변경되었음을 지정합니다.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET 개체를 검색합니다.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE 공급자를 해제합니다.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD PFX 바이트 배열을 암호화하는 데 사용되는 암호를 해제합니다.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE 공급자가 반환한 개체를 해제합니다.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER 개체 식별자에 대한 메모리를 해제합니다.
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE 공급자를 초기화합니다.