檢視原始碼 加密應用程式

描述

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)