共用方式為


密碼編譯函式

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

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 物件 專案加入至開啟進行編碼的文件內容中的簽章。
CryptXmlClose 關閉密碼編譯 XML 物件句柄。
CryptXmlDigestReference 應用程式用來摘要解析的參考。 此函式會在更新摘要之前套用轉換。
CryptXmlDllCloseDigest 釋放由 CryptXmlDllCreateDigest 函式所配置的CRYPT_XML_DIGEST。
CryptXmlDllCreateDigest 建立指定方法的摘要物件。
CryptXmlDllCreateKey 剖析 KeyValue 元素,並建立密碼編譯 API:新一代 (CNG) BCrypt 金鑰句柄來驗證簽章。
CryptXmlDllDigestData 將數據放入摘要中。
CryptXmlDllEncodeAlgorithm 使用預設參數編碼敏捷式演算法 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 先在句柄上設定 HMAC 秘密,再呼叫 CryptXmlSignCryptXmlVerify 函式。
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 時間戳指定的主旨,並選擇性地傳回 SIGNER_CONTEXT 結構的指標,其中包含 BLOB指標。 此函式支援 Authenticode 時間戳。 若要執行 X.509 公鑰基礎結構 (RFC 3161) 時間戳,請使用 SignerTimeStampEx2 函式。
SignerTimeStampEx2 時間戳指定的主旨,並選擇性地傳回 SIGNER_CONTEXT 結構的指標,其中包含 BLOB指標。 此函式可用來執行 X.509 公鑰基礎結構、RFC 3161 相容、時間戳。
SignerTimeStampEx3 時間戳指定的主旨,並支援在多個簽章上設定時間戳。

 

基底密碼編譯函式

基底密碼編譯函式提供開發密碼編譯應用程式的最彈性方式。 與 密碼編譯服務提供者 (CSP) 的所有通訊都會透過這些函式進行。

CSP 是執行所有密碼編譯作業的獨立模組。 每個使用密碼編譯函式的應用程式至少需要一個 CSP。 單一應用程式偶爾可以使用多個 CSP。

如果使用多個 CSP,您可以在 CryptoAPI 密碼編譯函式呼叫中指定要使用的 CSP。 CSP,Microsoft基底密碼編譯提供者,隨附於 CryptoAPI。 如果未指定其他 CSP,此 CSP 會當做許多 CryptoAPI 函式的預設提供者使用。

每個 CSP 都會提供加密 API 所提供的不同密碼編譯支持實作。 有些提供更強大的密碼編譯演算法;其他元件則包含硬體元件,例如 智慧卡。 此外,某些 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。
指定索引鍵的參數。

 

物件編碼和譯碼函式

這些是一般化編碼和譯碼函式。 它們可用來編碼和譯碼 憑證證書吊銷清單憑證要求和憑證延伸模組。

功能 描述
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 函式所顯示之數位簽名精靈中顯示的憑證。

 

憑證和證書存儲函式

憑證和證書存儲函式會管理 憑證的使用、儲存和擷取、證書吊銷清單憑證信任清單(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 顯示 [憑證] 對話框。

 

憑證函式

大部分 憑證 函式都有相關函式,可處理 CRLCTL。 如需相關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 在遠端電腦上安裝憑證。

 

證書吊銷清單函式

這些函式會管理 證書吊銷清單 的儲存和擷取。

功能 描述
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 及其屬性。

 

憑證信任清單函式

這些函式會管理 憑證信任清單 的儲存和擷取。

功能 描述
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 或憑證鏈結進行驗證。 這兩個函式都提供:

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

使用 CCL 的驗證函式

這些函式會在驗證程式中使用 CCL。 使用 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 將已經存在的簽章(編碼的 SignerInfo,如 PKCS 所定義 #7 所定義)進行計數器。
CryptMsgDuplicate 藉由遞增 參考計數來複製密碼編譯訊息句柄。 參考計數會追蹤訊息的存留期。
CryptMsgGetParam 在編碼或譯碼密碼編譯訊息之後取得參數。
CryptMsgOpenToDecode 開啟密碼編譯訊息以進行譯碼。
CryptMsgOpenToEncode 開啟密碼編譯訊息以進行編碼。
CryptMsgUpdate 更新密碼編譯訊息的內容。
CryptMsgVerifyCountersignatureEncoded 根據 SignerInfo 結構(如 PKCS #7 所定義)來驗證 反簽署
CryptMsgVerifyCountersignatureEncodedEx 確認 pbSignerInfoCounterSignature 參數包含 encryptedDigest 欄位的加密 哈希pbSignerInfo 參數結構。

 

簡化的訊息函式

簡化的訊息函式 將低階訊息函式包裝成單一函式,以完成指定的工作。

功能 描述
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 釋放由 cryptMemAlloc CryptMemRealloc所配置的記憶體。
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 元素,這些函式不會封裝在可用來呼叫類別方法的物件中。 相反地,藉由呼叫 loadLibrary LoadLibrary,然後呼叫 getProcAddress來判斷函式的位址,藉此呼叫備份和還原 API,先將 Certadm.dll 連結庫載入記憶體中。 當您完成呼叫憑證服務備份和還原函式時,請呼叫 FreeLibrary,從記憶體中釋放 Certadm.dll 資源。

注意

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

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

 

注意

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

 

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

下列 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 定義存放區提供者 open 函式。
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_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 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 從指定的句柄擷取信任提供者資訊。

 

物件定位器函式

下列回呼函式可由安全通道 (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 初始化提供者。