檢視原始碼 加密應用程式
描述
Crypto 應用程式的目的是提供一個 Erlang API 來使用加密函數,請參閱 crypto
。請注意,該 API 處於相當低的層級,並且在較高抽象層級的 public_key
中也有一些對應的 API 函數可供使用,它們在其實現中使用 crypto 應用程式。
相依性
當前的 crypto 實作使用 nif 來介接 OpenSSL 的加密函式庫,並且在功能受限的情況下,可能與 OpenSSL 0.9.8c 等較舊的版本一起使用。FIPS 模式支援至少需要 1.0.1 版以及支援 FIPS 的 OpenSSL 安裝。我們建議使用 OpenSSL 專案官方支援的版本。相容 API 的後端(如 LibreSSL)也應該可以使用。
crypto 應用程式每天至少使用 OpenSSL 1.0.1、1.0.2、1.1.0、1.1.1 和 3.0 的一個版本進行測試。FIPS 模式也針對 1.0.1、1.0.2 和 3.0 進行測試。
自 OTP 26.2 起,支援將 OpenSSL 3.0 與 Engines 一起使用。
可以從 OpenSSL 專案首頁或其中列出的鏡像網站下載 OpenSSL 的原始碼發行版。
組態
針對 crypto 應用程式定義了以下組態參數。有關組態參數的更多資訊,請參閱 app(3)
。
fips_mode = boolean()
- 指定是否在 FIPS 模式下執行 crypto。此設定將在載入 nif 模組時生效。如果請求 FIPS 模式,但在執行時不可用,則 nif 模組以及 crypto 模組將無法載入。此機制可防止意外使用未驗證的演算法。rand_cache_size = integer()
- 設定crypto:rand_seed_alg(crypto_cache)
和crypto:rand_seed_alg_s(crypto_cache)
使用的快取大小(以位元組為單位)。此參數會在呼叫種子函數時讀取,然後保留在產生器狀態物件中。它具有一個相當小的預設值,導致大約每百次呼叫隨機值讀取一次強隨機位元組。設定的值會向上捨入為這些種子函數使用的單字大小的整數倍。
另請參閱
application(3)