密碼編譯提供者類型
密碼編譯領域很大且成長。 有許多不同的標準數據格式和通訊協定。 這些通常會組織成群組或系列,每個群組都有自己的數據格式和執行方式。 即使兩個系列使用相同的演算法(例如 RC2 區塊加密),它們通常會使用不同的填補配置、不同的密鑰長度和不同的預設模式。 CryptoAPI 的設計目的是讓 CSP 提供者類型代表特定系列。
當應用程式連接到特定類型的 CSP 時,每個 CryptoAPI 函式預設都會以對應至該 CSP 類型的系列所指定的方式運作。 應用程式選擇提供者類型會指定下列專案:
項目 | 說明 |
---|---|
金鑰交換演算法 | 每個提供者類型都會指定一個金鑰交換演算法。 特定類型的每個 CSP 都必須實作此演算法。 應用程式會藉由選取適當提供者類型的 CSP 來指定要使用的金鑰交換演算法。 |
數位簽名演算法 | 每個提供者類型都會指定一個和一個數位簽名演算法。 特定類型的每個 CSP 都必須實作此演算法。 應用程式會藉由選取適當提供者類型的 CSP 來指定要使用的數位簽名演算法。 |
金鑰 BLOB 格式 | 提供類型會決定用來從 CSP 匯出金鑰的金鑰 BLOB 格式,以及將金鑰匯入 CSP。 |
數位簽名格式 | 提供者類型會決定數位簽名格式。 這可確保指定提供者類型 CSP 所產生的簽章可由相同提供者類型的任何 CSP 驗證。 |
會話金鑰衍生配置 | 提供者類型會決定用來從哈希衍生會話密鑰的方法。 |
金鑰長度 | 某些提供者類型會指定公用/私鑰組和會話金鑰的長度。 |
預設模式 | 提供者類型通常會指定各種選項的預設模式,例如區塊加密加密模式或區塊加密填補方法。 |
某些進階應用程式一次可能會連線到多個 CSP,但大部分的應用程式通常只使用單一 CSP。
目前有許多預先定義的提供者類型。 下列各節提供下列提供者類型的相關信息:
- PROV_RSA_FULL
- PROV_RSA_AES
- PROV_RSA_SIG
- PROV_RSA_SCHANNEL
- PROV_DSS
- PROV_DSS_DH
- PROV_DH_SCHANNEL
- PROV_FORTEZZA
- PROV_MS_EXCHANGE
- PROV_SSL
即使某些 CSP 類型可能部分相容於其他類型,但需要 交換金鑰 和加密訊息的兩個或多個應用程式應該使用相同的 CSP。
自定義 CSP 寫入器可以定義新的提供者類型。 不過,CSP 寫入器接著會負責將新的提供者類型散發給任何要使用的應用程式作者。 如需撰寫自定義 CSP 的相關信息,請參閱 密碼編譯服務提供者。