密碼編譯函式
密碼編譯函式會根據使用方式進行分類,如下所示:
- CryptXML 函式
- 簽署者函式
- 基底密碼編譯函式
- 憑證和證書存儲函式
- MakeCert函式
-
憑證驗證函式
- 使用 CTL 驗證函式
- 憑證鏈結驗證函式
- 訊息函式
- 輔助函式
- 憑證服務備份和還原函式
- 回呼函式
- 目錄定義函式
- 型錄函式
- WinTrust 函式
- 物件定位器函式
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 | 使用預設參數編碼敏捷式演算法 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 結構的檔內容句柄。 文件內容可以包含一或多個 Signature 專案。 |
CryptXmlSetHMACSecret | 先在句柄上設定 HMAC 秘密,再呼叫 CryptXmlSign 或 CryptXmlVerify 函式。 |
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 函式取得的句柄。 |
CryptSetProvider 和 CryptSetProviderEx |
重要事項: 此 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 支援一次性記憶體配置選項。 |
數據加密和解密函式
下列函式支援加密和解密作業。 CryptEncrypt 和 CryptDecrypt 在呼叫之前,必須先 密碼編譯密鑰。 這是使用 CryptGenKey、CryptDeriveKey或 CryptImportKey 函式來完成。 建立金鑰時會指定加密演算法。 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 中尋找指定的主旨。 |
OpenPersonalTrustDBDialog 和 OpenPersonalTrustDBDialogEx | 顯示 [憑證] 對話框。 |
憑證函式
大部分 憑證 函式都有相關函式,可處理 CRL 和 CTL。 如需相關CRL和 CTL 函式的詳細資訊,請參閱證書吊銷清單函式和憑證信任清單函式。
證書吊銷清單函式
這些函式會管理 證書吊銷清單 的儲存和擷取。
功能 | 描述 |
---|---|
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取得。 密鑰標識碼允許使用該金鑰組 金鑰組, 不使用憑證來加密或解密訊息。
密鑰標識碼可以有與憑證內容相同的屬性。 如需詳細資訊,請參閱 CertCreateContext。
功能 | 描述 |
---|---|
CryptCreateKeyIdentifierFromCSP |
重要事項: 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft在未來版本中可能會移除此 API。 從 CSP 的 公鑰 BLOB建立金鑰標識碼。 |
CryptEnumKeyIdentifierProperties | 列舉金鑰標識碼及其屬性。 |
CryptGetKeyIdentifierProperty |
重要事項: 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft在未來版本中可能會移除此 API。 從指定的金鑰識別碼取得特定屬性。 |
CryptSetKeyIdentifierProperty |
重要事項: 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft在未來版本中可能會移除此 API。 設定指定之金鑰識別碼的屬性。 |
OID 支援函式
這些函式提供 物件識別碼 (OID) 支援。 這些函式會安裝、註冊及分派至 OID 和編碼類型特定函式。
下列 CryptoAPI 函式會使用這些 OID 支援函式:
- CryptEncodeObject
- CryptEncodeObjectEx
- CryptDecodeObject
- CryptDecodeObjectEx
- CertVerifyRevocation
- CertOpenStore
如需此程式的概觀,請參閱 擴充 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 | 註冊 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 函式作數據的方式。
目錄定義函式
這些函式可用來建立目錄。 所有這些函式都是由 MakeCat呼叫。
功能 | 描述 |
---|---|
CryptCATCDFClose | 關閉目錄定義檔,並釋放對應 CRYPTCATCDF 結構的記憶體。 |
CryptCATCDFEnumAttributesWithCDFTag | 列舉CDF CatalogFiles 區段中成員檔案的屬性。 |
CryptCATCDFEnumCatAttributes | 列舉 CDF CatalogHeader 區段中的目錄層級屬性。 |
CryptCATCDFEnumMembersByCDFTagEx | 列舉 CDF CatalogFiles 區段中的個別檔案成員。 |
CryptCATCDFOpen | 開啟現有的CDF進行讀取,並初始化 CRYPTCATCDF 結構。 |
目錄函式
這些函式可用來管理目錄。
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 | 初始化提供者。 |