密碼編譯函式

密碼編譯函式會根據使用方式進行分類,如下所示:

CryptXML 函式

密碼編譯 XML 函式會提供 API,以使用 XML 格式化的資料來建立和表示數位簽章。 如需 XML 格式化簽章的詳細資訊,請參閱 上的 https://go.microsoft.com/fwlink/p/?linkid=139649 XML-Signature 語法和處理規格。

函式 描述
A_SHAFinal 計算 MD5Update 函式所輸入資料的最終雜湊。
A_SHAInit 起始資料流程的雜湊。
A_SHAUpdate 將資料加入至指定的雜湊物件。
CryptXmlCreateReference 建立 XML 簽章的參考。
CryptXmlAddObject Object 元素加入至開啟以供編碼之檔內容中的 Signature。
CryptXmlClose 關閉密碼編譯 XML 物件控制碼。
CryptXmlDigestReference 應用程式用來摘要解析的參考。 此函式會在更新摘要之前套用轉換。
CryptXmlDllCloseDigest 釋放 CryptXmlDllCreateDigest 函式所配置的CRYPT_XML_DIGEST。
CryptXmlDllCreateDigest 建立指定方法的摘要物件。
CryptXmlDllCreateKey 剖析 KeyValue 元素並建立密碼編譯 API:新一代 (CNG) BCrypt 金鑰控制碼來驗證簽章。
CryptXmlDllDigestData 將資料放入摘要中。
CryptXmlDllEncodeAlgorithm 使用預設參數編碼 Agile 演算法的 SignatureMethodDigestMethod 元素。
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 結構的檔內容控制碼。 檔內容可以包含一或多個 Signature 元素。
CryptXmlSetHMACSecret 在呼叫 CryptXmlSignCryptXmlVerify 函式之前,先在控制碼上設定 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,可以在 CryptoAPI 密碼編譯函式呼叫中指定要使用的 CSP。 Microsoft 基底密碼編譯提供者的一個 CSP 會與 CryptoAPI搭配使用。 如果沒有指定其他 CSP,此 CSP 會做為許多 CryptoAPI 函式的預設提供者。

每個 CSP 都提供提供給 CryptoAPI 的密碼編譯支援的不同實作。 有些提供更強大的密碼編譯演算法;其他包含硬體元件,例如 智慧卡。 此外,某些 CSP 偶爾可以與使用者通訊,例如使用使用者的簽章私密金鑰執行數位簽章時。

基底密碼編譯函式位於下列廣泛群組中:

  • 服務提供者函式
  • 金鑰產生和 Exchange 函式
  • 物件編碼和解碼函式
  • 資料加密和解密函式
  • 雜湊和數位簽章函式

服務提供者函式

應用程式會使用下列服務函式來連線和中斷 密碼編譯服務提供者 (CSP) 。

函式 描述
CryptAcquireCoNtext 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
取得特定 CSP 內目前使用者 金鑰容器 的控制碼。
CryptCoNtextAddRef 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
遞增HCRYPTPROV控制碼上的參考計數
CryptEnumProviders 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
列舉電腦上的提供者。
CryptEnumProviderTypes 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
列舉電腦上支援的提供者類型。
CryptGetDefaultProvider 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
決定目前使用者的預設 CSP,或指定提供者類型的電腦。
CryptGetProvParam 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 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 在呼叫之前需要 密碼編譯金鑰 。 這是使用 CryptGenKeyCryptDeriveKeyCryptImportKey 函式來完成。 建立金鑰時會指定加密演算法。 CryptSetKeyParam 可以設定其他加密參數。

函式 描述
CryptDecrypt 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
使用指定的加密金鑰解密 加密文字 的區段。
CryptEncrypt 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
使用指定的加密金鑰來加密 純文字 的區段。
CryptProtectData DATA_BLOB 結構中的資料執行加密。
CryptProtectMemory 加密記憶體以保護敏感性資訊。
CryptUnprotectData DATA_BLOB中執行資料的解密和完整性檢查。
CryptUnprotectMemory 解密使用 CryptProtectMemory 加密的記憶體。

 

雜湊和數位簽章函式

這些函式會計算資料的 雜湊 ,並同時建立和驗證 數位簽章。 雜湊也稱為訊息摘要。

函式 描述
CryptCreateHash 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
建立空的雜湊物件。
CryptDestroyHash 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
終結雜湊物件。
CryptDuplicateHash 複製雜湊物件。
CryptGetHashParam 擷取雜湊物件參數。
CryptHashData 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
雜湊資料區塊,並將其新增至指定的雜湊物件。
CryptHashSessionKey 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
雜湊工作階段金鑰,並將其新增至指定的雜湊物件。
CryptSetHashParam 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
設定雜湊物件參數。
CryptSignHash 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
簽署指定的雜湊物件。
CryptUIWizDigitalSign 顯示以數位方式簽署檔或 BLOB的精靈。
CryptUIWizFreeDigitalSignCoNtext 釋放 CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT 結構的指標。
CryptVerifySignature 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
驗證數位簽章,指定雜湊物件的控制碼。
PFNCFILTERPROC 篩選 CryptUIWizDigitalSign 函式所顯示之數位簽章精靈中顯示的憑證。

 

憑證和憑證存放區函式

憑證和憑證存放區函式會管理憑證的使用、儲存和擷取、憑證撤銷清單 (CRL) ,以及憑證信任清單 (CCL) 。 這些函式分成下列群組:

  • 憑證存放區函式
  • 憑證和憑證存放區維護函式
  • 憑證函數
  • 憑證撤銷清單函式
  • 憑證信任清單函式
  • 擴充屬性函式
  • 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 和 CCL的相關函式。 如需相關 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_EXTszOID_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

 

憑證驗證函式

憑證是使用 CCL 或憑證鏈結進行驗證。 這兩者都提供函式:

  • 使用 CCL 的驗證函式
  • 憑證鏈結驗證函式

使用 CCL 的驗證函式

這些函式會在驗證程式中使用 CCL。 如需使用 CCL 的其他函式,請參閱憑證信任清單函式和擴充屬性函式。

下列函式會直接使用 CCL 進行驗證。

函式 描述
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 將已存在的簽章 (編碼的 SignerInfo 計數器,如 PKCS #7 所定義) 。
CryptMsgDuplicate 藉由遞增 參考計數來複製密碼編譯訊息控制碼。 參考計數會追蹤訊息的存留期。
CryptMsgGetParam 在編碼或解碼密碼編譯訊息之後取得參數。
CryptMsgOpenToDecode 開啟密碼編譯訊息以進行解碼。
CryptMsgOpenToEncode 開啟密碼編譯訊息以進行編碼。
CryptMsgUpdate 更新密碼編譯訊息的內容。
CryptMsgVerifyCountersignatureEncoded 根據 PKCS #7) 所定義的 SignerInfo 結構 (來驗證 計數器簽署
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 匯出與提供者對應私密金鑰相關聯的公開金鑰資訊。 此函式與 CryptExportPublicKeyInfo 不同,因為使用者可以指定公開金鑰演算法,藉此覆寫 CSP 所提供的預設值。
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 釋放 CryptMemAllocCryptMemRealloc配置的記憶體。
CryptMemRealloc 釋放目前為緩衝區配置的記憶體,並配置新緩衝區的記憶體。
CryptQueryObject 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
擷取 BLOB 或檔案內容的相關資訊。
CryptSignAndEncodeCertificate 編碼「要簽署」的資訊、簽署此編碼資訊,以及編碼產生的已簽署編碼資訊。
CryptSignCertificate 簽署已編碼、已簽署內容中的「要簽署」資訊。
CryptSIPAddProvider 在 SIP) (新增主體介面套件。
CryptSIPCreateIndirectData 傳回SIP_INDIRECT_DATA結構,其中包含所提供SIP_SUBJECTINFO結構、摘要演算法和編碼屬性的雜湊。 雜湊可作為資料的間接參考。
CryptSIPGetCaps 擷取 SIP 的功能。
CryptSIPGetSignedDataMsg 從檔案擷取 Authenticode 簽章。
CryptSIPLoad 載入動態連結程式庫,此程式庫會實作主旨介面套件,並將適當的程式庫匯出函式指派給 SIP_DISPATCH_INFO 結構。
CryptSIPPutSignedDataMsg 將 Authenticode 簽章儲存在目標檔案中。
CryptSIPRemoveProvider 移除先前呼叫 CryptSIPAddProvider 函 式所新增的 SIP。
CryptSIPRemoveSignedDataMsg 移除指定的 Authenticode 簽章。
CryptSIPRetrieveSubjectGuid 根據指定檔案中的標頭資訊擷取 GUID。
CryptSIPRetrieveSubjectGuidForCatalogFile 擷取與指定檔案相關聯的主旨 GUID。
CryptSIPVerifyIndirectData 根據提供的主體驗證間接雜湊資料。
CryptUpdateProtectedState 在使用者 的安全性識別碼 (SID) 變更之後,移轉目前使用者的主要金鑰。
CryptVerifyCertificateSignature 使用公開金鑰資訊來驗證主體憑證或 CRL 的簽章。
CryptVerifyCertificateSignatureEx CryptVerifyCertificateSignature的擴充版本。
GetEncSChannel 將加密的安全通道 DLL 內容儲存在記憶體中。
pCryptSIPGetCaps 由 SIP 實作以報告功能。

 

資料轉換函式

下列 CryptoAPI 函式會將憑證結構成員轉換成不同的形式。

函式 描述
CertAlgIdToOID 將 CryptoAPI 演算法識別碼 (ALG_ID) 轉換為 抽象語法標記法一 (ASN.1) 物件識別碼 , (OID) 字串。
CertGetNameString 從憑證取得主體或簽發者名稱,並將其轉換為以 Null 結尾的字元字串。
CertNameToStr 將憑證名稱 BLOB 轉換為以零結尾的字串。
CertOIDToAlgId 將 ASN.1 物件識別碼字串轉換為 CSP 演算法識別碼。
CertRDNValueToStr 將 Name 值轉換為以 Null 結尾的字串。
CertStrToName 將以 Null 結尾的 X.500 字串轉換為編碼的憑證名稱。
CryptBinaryToString 將二進位序列轉換成格式化字串。
CryptFormatObject 格式化編碼的資料,並傳回 Unicode 字串。
CryptStringToBinary 將格式化字串轉換成二進位序列。

 

增強金鑰使用函式

下列函式會處理 增強的金鑰使用 方式, (EKU) 延伸模組和憑證的 EKU 擴充屬性。 EKU 延伸模組和擴充屬性會指定及限制憑證的有效用法。 延伸模組是憑證本身的一部分。 它們是由憑證的簽發者所設定,而且是唯讀的。 憑證擴充屬性是與可在應用程式中設定的憑證相關聯的值。

函式 描述
CertAddEnhancedKeyUsageIdentifier 將使用識別碼新增至憑證的 EKU 屬性。
CertGetEnhancedKeyUsage 從憑證取得 EKU 延伸模組或屬性的相關資訊。
CertRemoveEnhancedKeyUsageIdentifier 從憑證的 EKU 擴充屬性中移除使用識別碼。
CertSetEnhancedKeyUsage 設定憑證的 EKU 屬性。

 

索引鍵識別碼函式

金鑰識別碼函式可讓使用者建立、設定、擷取或尋找金鑰識別碼或其屬性。

金鑰識別碼是 公開/私密金鑰組的唯一識別碼。 它可以是任何唯一識別碼,但通常是編碼 CERT_PUBLIC_KEY_INFO 結構的 20 位元組 SHA1 雜湊。 金鑰識別碼可透過憑證的CERT_KEY_IDENTIFIER_PROP_ID取得。 金鑰識別碼允許使用該 金鑰組 來加密或解密訊息,而不需使用憑證。

金鑰識別碼不會與 CRLCTL相關聯。

金鑰識別碼可以有與憑證內容相同的屬性。 如需詳細資訊,請參閱 CertCreateCoNtext

函式 描述
CryptCreateKeyIdentifierFromCSP 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
從 CSP 的 公開金鑰 BLOB 建立金鑰識別碼。
CryptEnumKeyIdentifierProperties 列舉金鑰識別碼及其屬性。
CryptGetKeyIdentifierProperty 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
從指定的金鑰識別碼取得特定屬性。
CryptSetKeyIdentifierProperty 重要:
此 API 即將淘汰。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
設定指定之金鑰識別碼的屬性。

 

OID 支援函式

這些函式提供 OID) 支援 (物件識別碼 。 這些函式會安裝、註冊和分派至 OID 和編碼類型特定函式。

下列 CryptoAPI 函式會使用這些 OID 支援函式:

如需此程式的概觀,請參閱 擴充 CryptoAPI 功能

下列函式使用 OID。

函式 描述
CryptEnumOIDFunction 列舉其編碼類型、函式名稱和 OID 所識別的已註冊 OID 函式。
CryptEnumOIDInfo 列舉其群組所識別的已註冊 OID 資訊,並呼叫 pfnEnumOIDInfo 進行比對。
CryptFindOIDInfo 使用指定的索引鍵和群組來尋找 OID 資訊。
CryptFreeOIDFunctionAddress 釋放 CryptGetOIDFunctionAddressCryptGetDefaultOIDFunctionAddress所遞增和傳回的控制碼計數。
CryptGetDefaultOIDDllList 取得指定函式集和編碼類型的已註冊預設 DLL 專案清單。
CryptGetDefaultOIDFunctionAddress 取得第一個或下一個已安裝的預設函式,或載入包含預設函式的 DLL。
CryptGetOIDFunctionAddress 搜尋已安裝函式的清單,以取得編碼類型和 OID 相符專案。 如果找不到相符專案,則會搜尋登錄以尋找相符專案。
CryptGetOIDFunctionValue 取得指定編碼類型、函式名稱、OID 和值名稱的值。
CryptInitOIDFunctionSet 初始化並傳回所提供的函數名稱所識別之 OID 函式集的控制碼。
CryptInstallOIDFunctionAddress 安裝一組可呼叫的 OID 函式位址。
CryptRegisterDefaultOIDFunction 註冊 DLL,其中包含要針對指定的編碼類型和函式名稱呼叫的預設函式。
CryptRegisterOIDFunction 註冊 DLL,其中包含要針對指定的編碼類型、函式名稱和 OID 呼叫的函式。
CryptRegisterOIDInfo 註冊 CRYPT_OID_INFO 結構中指定的 OID 資訊,並將它保存在登錄中。
CryptSetOIDFunctionValue 設定指定編碼類型、函數名稱、OID 和值名稱的值。
CryptUnregisterDefaultOIDFunction 移除 DLL 的註冊,其中包含要針對指定的編碼類型和函式名稱呼叫的預設函式。
CryptUnregisterOIDFunction 移除 DLL 的註冊,其中包含要針對指定的編碼類型、函式名稱和 OID 呼叫的函式。
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 封包,並使用指定的密碼將它解密。

 

憑證服務備份和還原函式

憑證服務包含備份和還原憑證服務資料庫的函式。 這些憑證服務備份和還原函式包含在 Certadm.dll 中。 不同于與憑證服務相關聯的其他 API 元素,這些函式不會封裝在可用來呼叫類別方法的 物件中。 相反地,備份和還原 API 會藉由先呼叫 LoadLibrary 將 Certadm.dll 程式庫載入記憶體中,然後呼叫 GetProcAddress來判斷函式的位址。 當您完成呼叫憑證服務備份和還原函式之後,請呼叫 FreeLibrary 以從記憶體釋放 Certadm.dll 資源。

注意

Certadm.dll 提供的備份和還原功能不會備份或還原憑證服務的 私密金鑰。 如需備份憑證服務私密金鑰的相關資訊,請參閱 備份和還原憑證服務私密金鑰

若要呼叫備份和還原函式,您必須具有備份和還原 許可權。 如需詳細資訊,請參閱 設定備份和還原許可權

 

注意

如果先前在用來呼叫憑證服務備份和還原 API 的相同執行緒中呼叫 CoInitializeEx ,則必須將COINIT_APARTMENTTHREADED旗標傳遞至 CoInitializeEx。 也就是說,當使用相同的執行緒時,如果執行緒先前在呼叫 CoInitializeEx中傳入COINIT_MULTITHREADED旗標,則您無法呼叫憑證服務備份和還原 API。

 

憑證服務備份 API 定義于 Certbcli.h 中。 不過,當您建立程式時,請使用 Certsrv.h 作為包含檔案。

下列 API 是由 Certadm.dll 匯出。

函式 描述
CertSrvBackupClose 關閉開啟的檔案。
CertSrvBackupEnd 結束備份會話。
CertSrvBackupFree 釋放備份和還原 API 所配置的緩衝區。
CertSrvBackupGetBackupLogs 傳回需要備份的記錄檔清單。
CertSrvBackupGetDatabaseNames 傳回需要備份的資料庫檔案清單。
CertSrvBackupGetDynamicFileList 擷取需要針對指定備份內容備份的憑證服務動態檔案名清單。
CertSrvBackupOpenFile 開啟檔案以準備進行備份。
CertSrvBackupPrepare 準備線上備份的資料庫。
CertSrvBackupRead 讀取已開啟檔案的內容。
CertSrvBackupTruncateLogs 截斷記錄檔。
CertSrvIsServerOnline 判斷憑證服務伺服器是否在線上 (主動執行) 。
CertSrvRestoreEnd 結束還原會話。
CertSrvRestoreGetDatabaseLocations 擷取用於備份和還原案例 () 的資料庫位置。
CertSrvRestorePrepare 開始還原會話。
CertSrvRestoreRegister 註冊還原作業。
CertSrvRestoreRegisterComplete 完成先前註冊的還原作業。
CertSrvRestoreRegisterThroughFile 註冊還原作業。
CertSrvServerControl 將控制項命令傳送至憑證服務實例。

 

回呼函式

本節中的回呼函式可用來註冊或安裝應用程式定義的 憑證存放區 提供者,以及透過回呼函式提供相關功能。 回呼函式是由應用程式實作,並由 CryptoAPI 函式呼叫。 回呼函式可讓應用程式控制 CryptoAPI 函式運算元據的方式。

回呼函式 用途
CertChainFindByIssuerCallback 應用程式定義的回呼函式,可讓應用程式篩選可能新增至憑證鏈結的憑證。
CertDllOpenStoreProv 定義存放區提供者開啟函式。
CertEnumPhysicalStoreCallback CertEnumPhysicalStore函式所使用的回呼函式,以格式化和呈現每個找到之實體存放區的資訊。
CertEnumSystemStoreCallback CertEnumSystemStore函式所使用的回呼函式,用來格式化和呈現每個找到之實體存放區的資訊。
CertEnumSystemStoreLocationCallback CertEnumSystemStoreLocation函式所使用的回呼函式,用來格式化和呈現每個找到之實體存放區的資訊。
CertStoreProvCloseCallback 決定當開啟存放區的 參考計數 變成零時,會發生什麼事。
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 決定在呼叫 CertSetCertificateCoNtextPropertyCertGetCertificateCoNtextProperty之前要採取的動作。
CertStoreProvSetCRLPropertyCallback 決定呼叫 CertSetCRLCoNtextPropertyCertGetCRLCoNtextProperty之前要採取的動作。
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_PRI加值稅E_KEY_FUNC CryptImportPKCS8函式所使用的回呼函式。
PCRYPT_ENCRYPT_PRI加值稅E_KEY_FUNC 建立 CRYPT_ENCRYPTED_PRI加值稅E_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 CNG 物件識別碼 (OID) 可安裝函式,用於匯入已解密的內容加密金鑰 (CEK) 。
PFN_CMSG_CNG_IMPORT_KEY_AGREE 匯入信封郵件之金鑰傳輸收件者的內容加密金鑰。
PFN_CMSG_CNG_IMPORT_KEY_TRANS CNG OID 可安裝函式,用於匯 入和解密 金鑰傳輸收件者、加密、內容 加密金鑰 (CEK) 。
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 由 CryptExportPublicKeyInfoEx呼叫,以匯出公開金鑰 BLOB 並將其編碼。
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 取得目錄管理員內容的控制碼。 後續呼叫 CryptCATAdminAddCatalogCryptCATAdminEnumCatalogFromHashCryptCATAdminRemoveCatalog 函式,即可使用此控制碼。
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 使用提供者識別碼從鏈 結接收CRYPT_PROVIDER_PRIVDATA 結構。
WTHelperGetProvSignerFromChain 依索引從鏈結擷取簽署者或計數器簽署者。
WTHelperProvDataFromStateData 從指定的控制碼擷取信任提供者資訊。

 

物件定位器函式

下列回呼函式可由安全通道 (安全通道) 安全性套件呼叫的自訂提供者實作,以擷取憑證。

函式 描述
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 將提供者初始化。