檢視原始碼 加密版本發行說明
此文件描述了對加密應用程式所做的變更。
加密 5.5.2
已修正的錯誤和故障
crypto:strong_rand_bytes/2
已修正,可在安裝 FIPS 支援的 Ubuntu pro 上運作。當使用 OpenSSL 3.4 或更新版本時,已修正摘要類型
shake128
和shake256
的crypto:hash_final/1
。
加密 5.5.1
已修正的錯誤和故障
使用
--enable-fips
建置的加密功能,現在只要未啟用 FIPS 模式,就會接受不含 fips provider 的 OpenSSL 3 程式庫。內部 ID:OTP-19212 輔助 ID:GH-8562
改進和新功能
在文件中加入警告,以避免呼叫
crypto:start/0
,因為它不適用於 FIPS 模式。請改用application:start(crypto)
。內部 ID:OTP-19143
已還原 RSA 加密函式的棄用,因為仍然存在使用 PKCS-1 以外的其他填充模式的合法使用案例。
雖然使用某些版本的 cryptolib 的 PCKS-1 填充可能會被視為安全,我們仍然建議使用對 oracle 攻擊較不敏感的其他演算法。
內部 ID:OTP-19163
已更正某些已移除函式的編譯器警告,以指出正確的替代函式。
內部 ID:OTP-19186 輔助 ID:PR-8709
加密 5.5
改進和新功能
文件已遷移為使用 Markdown 和 ExDoc。
內部 ID:OTP-18955 輔助 ID:PR-8026
已移除自 OTP 25 起標記為已棄用的函式
crypto_dyn_iv_init/3
和crypto_dyn_iv_update/3
。內部 ID:OTP-18973
新增對 sm3 雜湊和 hmac 的支援。
內部 ID:OTP-18975 輔助 ID:PR-6658
當清除
crypto
時會呼叫OPENSSL_thread_stop
,以避免洩漏執行緒特定資料。內部 ID:OTP-18978 輔助 ID:PR-7809
根據 GB/T 32907-2016 新增 SM4 區塊加密。
內部 ID:OTP-19005 輔助 ID:PR-8168
現有的函式
ssl:key_exporter_materials/4
現在已記錄並支援。潛在不相容性
內部 ID:OTP-19016 輔助 ID:PR-8233
由於對 PKCS #1 v1.5 填充的另一次攻擊,稱為 Marvin 攻擊,我們收到來自 Red Hat 的 Hubert Kario 的警示。您可以在 https://people.redhat.com/~hkario/marvin/ 找到更多關於此攻擊的詳細資訊。可能易受攻擊的函式現在已棄用。
請注意,您可以使用適當版本的 OpenSSL 和我們的軟體來減輕問題,但我們建議完全不要使用它們。
同時避免使用 TLS-1.2 之前的 TLS 版本(預設不支援),且不要啟用 RSA 金鑰交換密碼套件(預設不支援)。
潛在不相容性
內部 ID:OTP-19075
加密 5.4.2.3
已修正的錯誤和故障
修正了當多個 Erlang 程序首次呼叫時,可能會導致在
crypto:supports(curves)
中封鎖排程器執行緒的錯誤。此錯誤僅存在於 OTP-26.2.5.4 中。內部 ID:OTP-19316 輔助 ID:GH-8971、PR-8979
當使用 OpenSSL 3.4 或更新版本時,已修正摘要類型
shake128
和shake256
的crypto:hash_final/1
。內部 ID:OTP-19329 輔助 ID:GH-8997、PR-9002
加密 5.4.2.2
已修正的錯誤和故障
使用
--enable-fips
建置的加密功能,現在只要未啟用 FIPS 模式,就會接受不含 fips provider 的 OpenSSL 3 程式庫。內部 ID:OTP-19212 輔助 ID:GH-8562、PR-8762
crypto:strong_rand_bytes/2
已修正,可在安裝 FIPS 支援的 Ubuntu pro 上運作。內部 ID:OTP-19223 輔助 ID:PR-8800、GH-8769
加密 5.4.2.1
改進和新功能
在文件中新增警告,以避免使用
crypto:start/0
,因為它不適用於 FIPS 模式。請改用application:start(crypto)
。內部 ID:OTP-19143
加密 5.4.2
已修正的錯誤和故障
修正了在 MacOS 上使用 OpenSSL 3 和
--enable-fips
建置的問題。內部 ID:OTP-19038 輔助 ID:GH-8271、PR-8277
加密 5.4.1
已修正的錯誤和故障
修正了定義 OPENSSL_NO_DES 時的編譯錯誤。
內部 ID:OTP-18921
函式
crypto:pbkdf2_hmac
將不再封鎖主要排程器。如果迭代計數或區塊大小參數導致函式可能需要很長時間才能執行,則函式將排定在髒 CPU 排程器上執行。內部 ID:OTP-18996 輔助 ID:PR-8173、PR-8174
加密 5.4
已修正的錯誤和故障
修正了 Windows 上的一些良性編譯警告。
內部 ID:OTP-18895
改進和新功能
啟用 OpenSSL 版本 3 的引擎支援。
內部 ID:OTP-18832 輔助 ID:PR-7763
加密 5.3
已修正的錯誤和故障
修正了在具有 musl libc 的作業系統(例如 Alpine linux)上,由清除和重新載入
crypto
(例如透過 init:restart)引起的 VM 當機問題。內部 ID:OTP-18670 輔助 ID:GH-7436、PR-7450
改進了對 LibreSSL 版本的理解。支援 LibreSSL 3.7 的 chacha20 和 chacha20_poly1305。反映了在 LibreSSL 2.6.1 中完成的移除對 DSS/DSA 演算法的支援。
內部 ID:OTP-18758 輔助 ID:PR-7209
改進和新功能
OpenSSL 3.0.* 和 3.1.* 的
crypto
支援 FIPS。內部 ID:OTP-18666 輔助 ID:PR-7392
加密 5.2
已修正的錯誤和故障
修正了 LibreSSL 的 cmac_update aes_128_cbc。
內部 ID:OTP-18571
改進和新功能
新增對 SHAKE128 和 SHAKE256 的支援。
內部 ID:OTP-18204 輔助 ID:PR-6203
使
-DOPENSSL_API_COMPAT
旗標在沒有警告的情況下運作。內部 ID:OTP-18206 輔助 ID:PR-6167
將 size/1 替換為 tuple_size/1 或 byte_size/1
JIT 未最佳化
size/1
BIF,其使用可能會導致 Dialyzer 的類型更差。當知道正在測試的值必須是元組時,應該一律優先使用
tuple_size/1
。當知道正在測試的值必須是二進位時,應該優先使用
byte_size/1
。但是,byte_size/1
也接受位元字串(將大小四捨五入為整數個位元組),因此必須確保在呼叫byte_size/
之前呼叫is_binary/1
,以確保拒絕位元字串。請注意,編譯器會移除對is_binary/1
的多餘呼叫,因此如果不確定先前的程式碼是否已確保引數是二進位,則在呼叫byte_size/1
之前新增is_binary/1
測試並無害處。內部 ID:OTP-18405 輔助 ID:GH-6672、PR-6702、PR-6768、PR-6700、PR-6769、PR-6812、PR-6814
已改進在啟動期間處理
on_load
模組的方式,方法是在嵌入模式的啟動順序中新增一個額外步驟,該步驟會執行所有on_load
處理常式,而不是依賴它們的明確調用,稍後在核心監管樹狀結構開始時執行。這主要是程式碼改進和 OTP 內部簡化,以避免未來的錯誤並簡化程式碼維護。
內部 ID:OTP-18447
加密 5.1.4.3
已修正的錯誤和故障
修正了在 MacOS 上使用 OpenSSL 3 和
--enable-fips
建置的問題。內部 ID:OTP-19038 輔助 ID:GH-8271、PR-8277
加密 5.1.4.2
已修正的錯誤和故障
函式
crypto:pbkdf2_hmac
將不再封鎖主要排程器。如果迭代計數或區塊大小參數導致函式可能需要很長時間才能執行,則函式將排定在髒 CPU 排程器上執行。內部 ID:OTP-18996 輔助 ID:PR-8173、PR-8174
加密 5.1.4.1
已修正的錯誤和故障
修正了在具有 musl libc 的作業系統(例如 Alpine linux)上,由清除和重新載入
crypto
(例如透過 init:restart)引起的 VM 當機問題。內部 ID:OTP-18670 輔助 ID:GH-7436、PR-7450
加密 5.1.4
已修正的錯誤和故障
透過此變更,修正了使用 OpenSSL 3 的 crypto:generate_key 呼叫的隨機錯誤。
內部 ID:OTP-18555
加密 5.1.3
已修正的錯誤和故障
使用
--with-ssl-rpath=<PATHS>
設定的使用者定義執行階段程式庫路徑可能無法啟用。內部 ID:OTP-18384 輔助 ID:PR-6596
確保當使用者傳入使用者定義的執行時期函式庫路徑,但無法設定時,
configure
會失敗。專屬 ID:OTP-18408
Crypto 5.1.2
已修正的錯誤和故障
修正在 Windows 上使用
--with-ssl
和--disable-dynamic-ssl-lib
時的 configure 問題。專屬 ID:OTP-18147 輔助 ID:GH-6024, PR-6056
如果引擎控制代碼未明確卸載,則在垃圾回收中正確移除所有參考。
專屬 ID:OTP-18152
變更引擎載入/卸載函式的行為
引擎載入/卸載函式的語義已變更,以獲得更一致的行為,並在變數被垃圾回收時正常運作。
現在,載入函式不會註冊要替換的引擎方法。如果需要,現在將使用新的函式 engine_register/engine_unregister 來處理。
有些函式已從文件中移除,因此也從 API 中移除,但為了相容性,仍保留在程式碼中。
- engine_load/4:現在與 engine_load/3 相同
- engine_unload/2:現在與 engine_unload/1 相同
- ensure_engine_loaded/3:現在與 ensure_engine_loaded/2 相同
- ensure_engine_unloaded/1, ensure_engine_unloaded/2:現在與 engine_unload/1 相同
* 可能的不相容性 *
專屬 ID:OTP-18172 輔助 ID:ERIERL-826
修正在與 OpenSSL 3.0 cryptolib 連結時,AES-CFB 和 Blowfish-CFB/OFB 的命名錯誤。
專屬 ID:OTP-18200
對於 eddsa,簽章/驗證現在的行為與 OTP-24 和更早版本相同。
專屬 ID:OTP-18205 輔助 ID:GH-6219
改進和新功能
將橢圓曲線名稱從 crypto.erl 傳遞到 crypto 的 nif。
專屬 ID:OTP-18037
configure 選項
--disable-deprecated-warnings
已移除。它在某些版本中用於在 OpenSSL 3.0 的支援尚未完成時使用。在 OTP 25 中不再需要。專屬 ID:OTP-18133
現在認為 Crypto 可與 OpenSSL 3.0 cryptolib 用於生產程式碼。
ENGINE 和 FIPS 尚未完全正常運作。
專屬 ID:OTP-18153
如果 libcrypto 3.0 中缺少舊版提供者,則不要退出。
專屬 ID:OTP-18217
Crypto 5.1.1
已修正的錯誤和故障
在文件中註明,如果呼叫
crypto:generate_key/2
指定金鑰長度,且該長度太小,則 MODP (rfc3526) 群組和 OpenSSL 3.0 可能會產生錯誤。專屬 ID:OTP-18046
改進和新功能
現在 cmac 僅使用 3.0 API
專屬 ID:OTP-18010
文件現在已更新,其中包含目前測試 OTP 的 OpenSSL cryptolib 版本。
專屬 ID:OTP-18132
Crypto 5.1
已修正的錯誤和故障
修正 ensure_engine_loaded 中的時序錯誤
當並行執行兩個 ensure_engine_loaded() 呼叫時,可能會發生兩個呼叫都呼叫了 crypto lib 函式,而不是只有其中一個呼叫,導致錯誤。此問題已透過將實作從 erlang 移到使用互斥鎖來保護敏感部分的 NIF 函式中來解決。
專屬 ID:OTP-17858 輔助 ID:ERIERL-728
移除錯誤的類型
run_time_error()
和descriptive_error()
。專屬 ID:OTP-17984
改進和新功能
針對
autoconf
2.71 修改了configure
指令碼的輸入。專屬 ID:OTP-17414 輔助 ID:PR-4967
新增 crypto:hash_equals/2
專屬 ID:OTP-17471 輔助 ID:PR-4750
新增 /opt/homebrew/opt/openssl 至搜尋 OpenSSL cryptolib 的標準位置。
專屬 ID:OTP-17561
crypto_dyn_iv_init/3
和crypto_dyn_iv_update/3
已棄用。專屬 ID:OTP-17870
增加了錯誤訊息中的資訊。
先前,錯誤會以錯誤類別例外狀況
badarg
、notsup
或error
發出訊號,也會以其他更多方式,例如其他例外狀況或非標準化格式的回傳值。現在它是錯誤類別例外狀況
{notsup|badarg|error, InfoFromCfile, Description::string()}
。InfoFromCfile
是一個包含發現錯誤的 C 檔案名稱和行號的 term。這主要用於加密維護者或進階使用者尋找複雜錯誤的原因 - 可能在加密本身中。該 term 的內容將來可能會變更。Description
是一個描述錯誤的純文字字串。對於badarg
和notsup
,目的是要協助使用者找到原因(例如「金鑰大小錯誤」)。特別是對於某些不太可能發生的error
,如果沒有深入了解底層的 cryptolib,可能無法理解該字串。此類訊息適用於加密維護者。呼叫堆疊中的第一個元素(
try ... catch error:E:S .... end
中的S
)會提供更多資訊,例如加密呼叫中的實際引數清單以及加密內部呼叫 NIF 中的引數編號(如果可能)。此變更影響的加密函式為
sign/4、sign/5、verify/5、verify/6,
generate_key/2、generate_key/3、compute_key/4,
hash/2、hash/4、hash_init/1、hash_update/4、hash_final/1,
mac/3,4、mac_init/3、mac_update/2、mac_final/2,
pbkdf2_hmac/5,
public_encrypt/4、private_decrypt/4、private_encrypt/4、public_decrypt/4
此架構先前已在
crypto_init/3、crypto_init/4、crypto_update/2、crypto_final/1、crypto_get_data/1 中引入,
crypto_one_time/4、crypto_one_time/5、crypto_one_time_aead/6、crypto_one_time_aead/7
* 可能的不相容性 *
專屬 ID:OTP-17965
新增 AES 加密/解密對 128、192 和 256 位元金鑰大小的輸出回饋模式 (OFB) 支援。
專屬 ID:OTP-18067 輔助 ID:PR-5866
OpenSSL 3.0 中棄用的 cryptolib API 現在已不再使用,但以下列出的少數例外狀況除外。
儘管 OpenSSL 3.0.x 本身是穩定的,但其在 OTP/crypto 中的使用仍不應被視為適合用於生產程式碼。
當使用 3.0 時,預設仍停用 ENGINE 的使用。
棄用的函式仍在 otp_test_engine.c(僅用於測試)、mac.c (EVP_PKEY_new_CMAC_key) 以及 ec.c 中的五個函式呼叫 (EVP_PKEY_assign、EC_KEY_get_conv_form、EVP_PKEY_get1_EC_KEY、EC_KEY_get0_group 和 EC_KEY_set_public_key) 中呼叫。
專屬 ID:OTP-18086 輔助 ID:OTP-16282、OTP-16643、OTP-16644、OTP-17701、OTP-17702、OTP-17704
Crypto 5.0.6.5
已修正的錯誤和故障
函式
crypto:pbkdf2_hmac
將不再封鎖主要排程器。如果迭代計數或區塊大小參數導致函式可能需要很長時間才能執行,則函式將排定在髒 CPU 排程器上執行。內部 ID:OTP-18996 輔助 ID:PR-8173、PR-8174
Crypto 5.0.6.4
已修正的錯誤和故障
修正了在具有 musl libc 的作業系統(例如 Alpine linux)上,由清除和重新載入
crypto
(例如透過 init:restart)引起的 VM 當機問題。內部 ID:OTP-18670 輔助 ID:GH-7436、PR-7450
Crypto 5.0.6.3
已修正的錯誤和故障
變更引擎載入/卸載函式的行為
引擎載入/卸載函式的語義已變更,以獲得更一致的行為,並在變數被垃圾回收時正常運作。
現在,載入函式不會註冊要替換的引擎方法。如果需要,現在將使用新的函式 engine_register/engine_unregister 來處理。
有些函式已從文件中移除,因此也從 API 中移除,但為了相容性,仍保留在程式碼中。
- engine_load/4:現在與 engine_load/3 相同
- engine_unload/2:現在與 engine_unload/1 相同
- ensure_engine_loaded/3:現在與 ensure_engine_loaded/2 相同
- ensure_engine_unloaded/1, ensure_engine_unloaded/2:現在與 engine_unload/1 相同
* 可能的不相容性 *
專屬 ID:OTP-18172 輔助 ID:ERIERL-826
Crypto 5.0.6.2
已修正的錯誤和故障
修正在 Windows 上使用
--with-ssl
和--disable-dynamic-ssl-lib
時的 configure 問題。專屬 ID:OTP-18147 輔助 ID:GH-6024, PR-6056
Crypto 5.0.6.1
已修正的錯誤和故障
修正 ensure_engine_loaded 中的時序錯誤
當並行執行兩個 ensure_engine_loaded() 呼叫時,可能會發生兩個呼叫都呼叫了 crypto lib 函式,而不是只有其中一個呼叫,導致錯誤。此問題已透過將實作從 erlang 移到使用互斥鎖來保護敏感部分的 NIF 函式中來解決。
專屬 ID:OTP-17858 輔助 ID:ERIERL-728
Crypto 5.0.6
改進和新功能
自 OTP-24.2 以來,OTP 中的加密應用程式可以使用新的 OpenSSL 3.0 cryptolib 進行編譯、連結和使用。
加密應用程式的 3.0 支援已獲得改進,但仍**不建議**用於實驗和 alpha 測試以外的其他用途。目前無法保證其能正常運作,即使與其他 OTP 應用程式(例如 SSL 和 SSH)一起使用也不行,儘管沒有已知的錯誤。
自上一個版本 OTP-24.2 以來,已完成以下改進
- 它幾乎在 OTP 實驗室的每次夜間測試中都經過測試
- 使用 OpenSSL 3.0 啟用了雜湊演算法
md4
和ripemd160
。- 使用 OpenSSL 3.0 啟用了密碼
blowfish_cbc
、blowfish_ecb
、des_cbc
、des_cfb
、des_ecb
、rc2_cbc
和rc4
。使用 OpenSSL 3.0 時仍停用或不支援
- ENGINE 支援
- FIPS 模式
- 除了內建的提供者之外的其他提供者
- 在相容模式下使用 OpenSSL 3.0 cryptolib 進行編譯和連結(例如,行為與 1.1.1 相同)
而且,不支援密碼
blowfish_cfb64
和blowfish_ofb64
,未來也不會支援。不得停用 OpenSSL 3.0 cryptolib 中已棄用的函式,因為 OTP/crypto 仍使用某些已棄用的 API 函式。設定 gcc 旗標
-Wno-deprecated-declarations
以防止在編譯時列印棄用警告。專屬 ID:OTP-17812 輔助 ID:OTP-16646、OTP-16282
Crypto 已在 OpenBSD 上調整為 LibreSSL 3.5.0。
專屬 ID:OTP-17941 輔助 ID:OTP-17942
新的 configure 選項 (
--disable-otp-test-engine
) 可禁止建構某些測試套件中使用的 OTP 測試引擎。原因是該測試引擎可能難以在例如 LibreSSL 3.5.0 上進行編譯。對於該特定的 cryptolib 版本(或更高版本),會自動設定此 configure 選項。
專屬 ID:OTP-17942 輔助 ID:OTP-17941
Crypto 5.0.5
已修正的錯誤和故障
修正了使用早期 LibreSSL 版本編譯時的 C 警告「隱式宣告函式 'OpenSSL_version_num'」。
專屬 ID:OTP-17637
針對 AEAD 加密演算法,FIPS 的可用性檢查不正確。
自有 ID:OTP-17740
修復了即使被別名的加密演算法(例如 aes_128_cbc、aes_256_cbc 等)不存在,也可能出現加密演算法別名(如 aes_cbc 等)的問題。
自有 ID:OTP-17741
改進與新功能
現在 OTP 中的 crypto 應用程式可以使用新的 OpenSSL 3.0 加密函式庫進行編譯、連結和使用。
它尚未經過廣泛測試,在此版本中**不建議**用於實驗和 alpha 測試以外的用途。目前還不能保證它能夠正常運作,即使與其他 OTP 應用程式(例如 SSL 和 SSH)一起使用也一樣,儘管目前沒有已知的錯誤。
在相容模式(例如模擬 1.1.1 的行為)下使用 OpenSSL 3.0 加密函式庫進行編譯和連結尚未經過測試。也沒有使用外部供應商進行測試。
對於 FIPS 模式的支援尚未正常運作,並且在使用 OpenSSL 3.0 編譯時會停用。
不得停用 OpenSSL 3.0 cryptolib 中已棄用的函式,因為 OTP/crypto 仍使用某些已棄用的 API 函式。設定 gcc 旗標
-Wno-deprecated-declarations
以防止在編譯時列印棄用警告。使用 OpenSSL 3.0 編譯時,雜湊演算法
md4
和ripemd160
會暫時停用。使用 OpenSSL 3.0 編譯時,加密演算法
blowfish_cbc
、blowfish_cfb64
、blowfish_ecb
、blowfish_ofb64
、des_cbc
、des_cfb
、des_ecb
、rc2_cbc
和rc4
會暫時停用。自有 ID:OTP-16646 輔助 ID:OTP-16282
crypto 中的錯誤處理已部分重構,使用了新的錯誤報告支援。先前像例外狀況一樣傳播的錯誤仍然如此,但是當從終端呼叫失敗的函式時(例如在失敗追蹤期間),會產生更具描述性的文字。
自有 ID:OTP-17241
新增了一個新函式
crypto:info/0
,用於呈現有關 crypto nif 的編譯和連結的一些資料。自有 ID:OTP-17603
將
pbkdf2_hmac/5
函式新增至 crypto 模組。它會呼叫
PKCS5_PBKDF2_HMAC
函式,該函式以有效率的方式實作帶有 HMAC 的 PBKD2。自有 ID:OTP-17808 輔助 ID:PR-5421
Crypto 5.0.4
已修復的錯誤與故障
修復了
crypto
模組清除時的輕微記憶體洩漏。自有 ID:OTP-17668 輔助 ID:PR-5245
修復了在連結某些加密函式庫時,FIPS 模式下可能出現的不一致性。
自有 ID:OTP-17672
Crypto 5.0.3
已修復的錯誤與故障
修復了
crypto:ensure_engine_unloaded
中的錯誤。也修復了與引擎卸載相關的輕微記憶體洩漏。自有 ID:OTP-17593 輔助 ID:ERIERL-679
修復了在 Windows 上啟用和停用 FIPS(或反之)有時會在程序結束時導致核心傾印的問題。
自有 ID:OTP-17618 輔助 ID:PR-5126, GH-4920
改進與新功能
如果加密函式庫 < 1.0.1 且 OTP/crypto 設定為 --enable-fips,則停用 fips
否則,使用舊版 OpenSSL 時可能會出現編譯或載入問題。
自有 ID:OTP-17389
Crypto 5.0.2
已修復的錯誤與故障
如果需要,現在 EC 金鑰會以零填充到預期的長度。
自有 ID:OTP-17442 輔助 ID:GH-4861
Crypto 5.0.1
已修復的錯誤與故障
消除了核心傾印的風險。
自有 ID:OTP-17391 輔助 ID:GH-4810
修復了並在
$ERL_TOP/HOWTO/INSTALL.md
中記錄了DED_LDFLAGS_CONFTEST
設定變數。自有 ID:OTP-17419 輔助 ID:GH-4821
提交產生的
configure
腳本。自有 ID:OTP-17420 輔助 ID:OTP-17398, GH-4821
Crypto 5.0
已修復的錯誤與故障
將
/usr/local/opt/openssl
新增至 openssl 設定搜尋路徑。此路徑是 OS X 上某些工具放置 openssl 的位置。自有 ID:OTP-16882
修復 clang 編譯器產生的編譯器警告。
自有 ID:OTP-17105 輔助 ID:PR-2872
現在,如果無法啟用要求的功能,
crypto
和erts
中的configure
腳本會失敗。crypto
的configure
腳本的很大一部分已重寫,並進行了各種改進和錯誤修復。它現在更擅長找到可用的 OpenSSL 函式庫,但在以下情況下,它將無法偵測到 OpenSSL 函式庫,而先前有時是偶然偵測到這些函式庫的- OpenSSL 安裝的
include
目錄和lib
目錄部分安裝在不同的基本目錄中。為了在此變更後偵測到此類安裝,使用者必須使用--with-ssl=<path>
和--with-ssl-incl=<path>
configure
命令列引數明確指定這些位置。 - 在使用舊的
gcc
編譯器或在lib
目錄下具有 multiarch 目錄的 Debian 衍生系統上使用其他編譯器進行建置時。為了在此變更後偵測到此類安裝,使用者必須使用--with-ssl-lib-subdir=lib/<multiarch-dir>
configure
命令列引數明確指定 multiarch 目錄名稱。
自有 ID:OTP-17254 輔助 ID:ERIERL-618, GH-4230
- OpenSSL 安裝的
crypto:sign/4 和 crypto:verify/6 的規格中缺少了值「none」。
自有 ID:OTP-17312 輔助 ID:PR-4723
改進與新功能
在 OTP-23.0 中已棄用的函式和加密演算法名稱現在已移除。
* 可能的不相容性 *
自有 ID:OTP-16656
移除了已安裝的目錄 priv/obj/,其中包含多餘的物件檔案。
自有 ID:OTP-17001 輔助 ID:PR-2852
現在 TLS 連線支援 EdDSA 憑證。
自有 ID:OTP-17142 輔助 ID:PR-4756, GH-4637, GH-4650
將 prop_aead 屬性新增至從 crypto:cipher_info/1 的對應。
自有 ID:OTP-17313 輔助 ID:PR-4686
Crypto 4.9.0.4
已修復的錯誤與故障
變更引擎載入/卸載函式的行為
引擎載入/卸載函式的語義已變更,以獲得更一致的行為,並在變數被垃圾回收時正常運作。
現在,載入函式不會註冊要替換的引擎方法。如果需要,現在將使用新的函式 engine_register/engine_unregister 來處理。
有些函式已從文件中移除,因此也從 API 中移除,但為了相容性,仍保留在程式碼中。
- engine_load/4:現在與 engine_load/3 相同
- engine_unload/2:現在與 engine_unload/1 相同
- ensure_engine_loaded/3:現在與 ensure_engine_loaded/2 相同
- ensure_engine_unloaded/1, ensure_engine_unloaded/2:現在與 engine_unload/1 相同
* 可能的不相容性 *
專屬 ID:OTP-18172 輔助 ID:ERIERL-826
Crypto 4.9.0.3
已修復的錯誤與故障
修正 ensure_engine_loaded 中的時序錯誤
當並行執行兩個 ensure_engine_loaded() 呼叫時,可能會發生兩個呼叫都呼叫了 crypto lib 函式,而不是只有其中一個呼叫,導致錯誤。此問題已透過將實作從 erlang 移到使用互斥鎖來保護敏感部分的 NIF 函式中來解決。
專屬 ID:OTP-17858 輔助 ID:ERIERL-728
如果引擎控制代碼未明確卸載,則在垃圾回收中正確移除所有參考。
專屬 ID:OTP-18152
Crypto 4.9.0.2
已修復的錯誤與故障
如果需要,現在 EC 金鑰會以零填充到預期的長度。
自有 ID:OTP-17442 輔助 ID:GH-4861
Crypto 4.9.0.1
已修復的錯誤與故障
消除了核心傾印的風險。
自有 ID:OTP-17391 輔助 ID:GH-4810
提交產生的
configure
腳本。自有 ID:OTP-17420 輔助 ID:OTP-17398, GH-4821
Crypto 4.9
已修復的錯誤與故障
修復了 crypto ENGINE 中的輕微記憶體洩漏,並加強了程式碼的健壯性。
自有 ID:OTP-17212
如果在 OpenSSL 設定中設定了 NO_EC*,otp_test_engine 不再會失敗。
自有 ID:OTP-17256 輔助 ID:PR-4580, GH-4573
改進與新功能
各種位址清理器支援。
自有 ID:OTP-16959 輔助 ID:PR-2965
現在,對於最高版本為 1.0.2 的 OpenSSL 加密函式庫版本,EVP 已停用
自有 ID:OTP-17116 輔助 ID:PR-2972
移除了未使用的 C 函式的警告
自有 ID:OTP-17145 輔助 ID:OTP-17105, PR-2872
Crypto 4.8.3
已修復的錯誤與故障
在 SRP 中的 BN 呼叫中新增遺失的旗標。
自有 ID:OTP-17107
Crypto 4.8.2
已修復的錯誤與故障
修復了在設定腳本來源中使用
AC_CONFIG_AUX_DIRS()
巨集的問題。自有 ID:OTP-17093 輔助 ID:ERL-1447, PR-2948
Crypto 4.8.1
已修復的錯誤與故障
無論如何載入 crypto,都會在載入時於 NIF 中建置支援的曲線快取。
這可以防止不同的處理程序同時啟動 crypto 應用程式時可能發生的問題。
自有 ID:OTP-16819 輔助 ID:PR-2720
現在可以使用 gprof 啟用的 crypto 和 openssl 建置,並將它們靜態連結到 VM 中。
自有 ID:OTP-17029
改進與新功能
修復了由於互斥問題而在使用較舊的 OpenSSL 時,HMAC 的效能損失。
實作了一個變通方法,允許從使用 EVP API 進行 HMAC 操作中回退。在某些架構上,這可能會提高效能,尤其是在使用舊版 OpenSSL 時。對於 1.0.2 之前的 OpenSSL 版本,此回退到低階函式始終會啟用。
自有 ID:OTP-17025 輔助 ID:ERL-1400, PR-2877
Crypto 4.8
已修復的錯誤與故障
修復了 crypto 中針對 crypto_init 和 crypto:one_time 的類型規格錯誤
自有 ID:OTP-16658 輔助 ID:OTP-15884, ERL-1257
crypto:rand_uniform/2 的棄用訊息指示了一個不存在的函式。現在建議使用正確的函式 (rand:uniform/1)。
自有 ID:OTP-16846 輔助 ID:PR-2741
改進與新功能
實作了一個變通方法,允許從使用 EVP API 進行 Diffie-Hellman 金鑰產生中回退
自有 ID:OTP-16771 輔助 ID:ERIERL-509
針對金鑰產生的內部 Diffie-Hellman 高階 API 在舊版且目前 OpenSSL 不再支援的加密函式庫版本 (1.0.1 和更早版本) 中速度較慢。
如果仍然使用此類加密函式庫,則會在 crypto 應用程式內部使用低階 API。
自有 ID:OTP-16774
Crypto 4.7
已修復的錯誤與故障
crypto 會將不支援的橢圓曲線回報為在例如 Fedora 發行版上受支援。
自有 ID:OTP-16579 輔助 ID:ERL-825
改進與新功能
新增了對
crypto:generate_key
的 ed25519 和 ed448 的支援。自有 ID:OTP-15967 輔助 ID:PR-2329
已更新新的密碼編譯函式 API(crypto_init、crypto_update 和 crypto_one_time)。
現在有一個函式
crypto_final/1
,並且可以在crypto_init/3
和crypto_init/4
中設定選項。詳情請參閱手冊。自有 ID:OTP-16160
如同在 OTP 22.0 中宣告的,CRYPTO 中引入了新的 API。請參閱 CRYPTO 使用者指南中的新舊 API章節,以獲取更多資訊和建議的替換函式。
舊的 API 現在在 OTP-23.0 中已棄用,並將在 OTP-24.0 中移除。
此棄用包括密碼名稱。請參閱 crypto 使用者指南中舊的 API章節的已停用的密碼名稱部分。
自有 ID:OTP-16232
修正了在沒有已棄用的 OpenSSL cryptolib API 的情況下進行 C 編譯的問題
自有 ID:OTP-16369 輔助 ID:PR-2474
重構了已棄用和已移除函式的內部處理。
自有 ID:OTP-16469
在 crypto:supports(public_keys) 中新增了遺失的 'eddh'。
自有 ID:OTP-16583
Crypto 4.6.5.4
已修正的錯誤和故障
如果需要,現在 EC 金鑰會以零填充到預期的長度。
自有 ID:OTP-17442 輔助 ID:GH-4861
Crypto 4.6.5.3
已修正的錯誤和故障
消除了核心傾印的風險。
自有 ID:OTP-17391 輔助 ID:GH-4810
提交產生的
configure
腳本。自有 ID:OTP-17420 輔助 ID:OTP-17398, GH-4821
Crypto 4.6.5.2
已修正的錯誤和故障
在 SRP 中的 BN 呼叫中新增遺失的旗標。
自有 ID:OTP-17107
Crypto 4.6.5.1
改進和新功能
實作了一個變通方法,允許從使用 EVP API 進行 Diffie-Hellman 金鑰產生中回退
自有 ID:OTP-16771 輔助 ID:ERIERL-509
Crypto 4.6.5
已修正的錯誤和故障
修正了涉及呼叫 crypto ng_api 的潛在記憶體洩漏問題。
自有 ID:OTP-16428 輔助 ID:PR-2511
Crypto 4.6.4
已修正的錯誤和故障
新增了常數時間比較。
自有 ID:OTP-16376
Crypto 4.6.3
改進和新功能
密碼 aes_cfb8 和 aes_cfb128 現在使用 EVP 介面。支援的金鑰長度為 128、192 和 256 位元。
自有 ID:OTP-16133 輔助 ID:PR-2407
密碼 aes_cfb8 和 aes_cfb128 現在可以在啟用 FIPS 模式下使用。
自有 ID:OTP-16134 輔助 ID:PR-2407
Crypto 4.6.2
已修正的錯誤和故障
先前未使用 chacha20_poly1305 檢查解密時的 AEAD 標籤
自有 ID:OTP-16242 輔助 ID:ERL-1078
Crypto 4.6.1
已修正的錯誤和故障
修正了如果 erlang 模擬器連結到非常舊的 cryptolib 版本(1.0.1 或更早版本)時的錯誤。
如果 crypto 函式中使用了不明的密碼名稱,則現在修正的錯誤可能會觸發核心傾印。
自有 ID:OTP-16202
Crypto 4.6
已修正的錯誤和故障
crypto_one_time/4
的實作已調整為符合類型規格。函式的規格和黑箱行為保持不變。一些細節:規格和實作單獨來看都是正確的。但是,當它們與
crypto_one_time/5
同時組合使用時,而crypto_one_time/5
是由crypto_one_time/4
的實作呼叫的,則具有比平常更徹底檢查的 Dialyzer 會偵測到(明顯的)錯誤。自有 ID:OTP-15884 輔助 ID:ERL-974
當使用啟用 FIPS 模式的 crypto 時,摘要未正確處理。
自有 ID:OTP-15911
修正了
ng_crypto_init_nif
中錯誤處理程式碼的記憶體洩漏問題。自有 ID:OTP-15924
修正了 crypto nif 的損壞靜態建置
自有 ID:OTP-15928 輔助 ID:PR-2296
改進和新功能
訊息驗證碼 (MAC) CMAC、HMAC 和 Poly1305 已統一到新 Crypto API 中的通用函式。請參閱 CRYPTO 手冊。
自有 ID:OTP-13872
Crypto 4.5.1
已修正的錯誤和故障
在 1.0.1 之前的 cryptolib 的 crypto:supports 中,密碼 aes-ctr 被錯誤地停用了。但是,它在加密和解密函式中正常運作。
自有 ID:OTP-15829
Crypto 4.5
已修正的錯誤和故障
修正了
crypto:poly1305/2
的錯誤傳回中的錯誤。它傳回了 atomnotsup
,而不是例外notsup
。* 可能的不相容性 *
自有 ID:OTP-15677
密碼 chacha20 是在 OpenSSL 1.1.0 中引入的。但是,在非常奇怪的情況下,它可能會在低於 OpenSSL 1.1.0d 的版本中失敗。因此,對於這些版本,它會停用。
* 可能的不相容性 *
自有 ID:OTP-15678
改進和新功能
已實作新的
rand
模組演算法exro928ss
(Xoroshiro928**)。它具有非常長的週期和良好的所有輸出位元統計品質,同時仍然僅比預設演算法慢約 50%。相同的產生器也用作新
crypto
外掛程式中用於rand
模組的長週期計數器,演算法為crypto_aes
。此外掛程式使用 AES-256 來加擾計數器,這會隱藏任何可偵測到的統計假影。加擾是在快取的分塊中完成的,以獲得良好的攤銷速度(約為預設演算法的一半)。自有 ID:OTP-14461 輔助 ID:PR-1857
Crypto 的單一 C 檔案分割為多個檔案。不同部分的編碼樣式統一為單一樣式。
自有 ID:OTP-14732 輔助 ID:PR-2068、PR-2095
crypto
應用程式的組建組態已從erts
應用程式移至crypto
應用程式。自有 ID:OTP-15129
新增了兩個雜湊函式
blake2b
和blake2s
(分別為 64 位元雜湊和 32 位元雜湊)。這些是現代且標準的雜湊函式,用於區塊鏈和加密通訊協定。自 1.1.1 版起,這些雜湊函式在 OpenSSL 中可用。自有 ID:OTP-15564 輔助 ID:PR-2129
crypto 中實作了新的 API。請參閱 CRYPTO 使用者指南中的新舊 API章節以獲取更多資訊。
舊的 API(使用
crypto:block_*
和crypto:stream_*
介面)會保留以實現相容性,但是使用新的 API 實作。請注意,由於錯誤檢查更徹底,因此可能會有參數(例如長度錯誤的參數)不再被接受。* 可能的不相容性 *
自有 ID:OTP-15644 輔助 ID:OTP-14732、OTP-15451、PR-1857、PR-2068、PR-2095
新的 hash_info/1 和 cipher_info/1 函式會傳回包含引數中雜湊或密碼相關資訊的 map。
自有 ID:OTP-15655 輔助 ID:PR-2173、ERL-864、PR-2186
在編譯 CRYPTO 應用程式的 C 部分時,請遵守其他 OpenSSL 組態旗標:
no-bf
、no-blake2
、no-chacha
、no-cmac
、no-dh
、no-dsa
、no-md4
、no-poly1305
、no-rc2
、no-rc4
和no-rmd160
。自有 ID:OTP-15683
引入了新的函式
crypto:supports/1
。單一引數接受 atom 作為引數:hashes
、public_keys
、ciphers
、macs
、curves
或rsa_opts
。傳回值是支援演算法的清單。除了引數和傳回值之外,與現有的
crypto:supports/0
的差異在於,舊的函式報告舊 API 支援的內容,而新的函式報告新 API 中的演算法。自有 ID:OTP-15771
Crypto 4.4.2.3
已修正的錯誤和故障
在 SRP 中的 BN 呼叫中新增遺失的旗標。
自有 ID:OTP-17107
Crypto 4.4.2.2
已修正的錯誤和故障
新增了常數時間比較。
自有 ID:OTP-16376
Crypto 4.4.2.1
改進和新功能
密碼 aes_cfb8 和 aes_cfb128 現在使用 EVP 介面。支援的金鑰長度為 128、192 和 256 位元。
自有 ID:OTP-16133 輔助 ID:PR-2407
密碼 aes_cfb8 和 aes_cfb128 現在可以在啟用 FIPS 模式下使用。
自有 ID:OTP-16134 輔助 ID:PR-2407
Crypto 4.4.2
已修正的錯誤和故障
修正了 Windows 上的組建連結錯誤。未解析的符號 'bcmp'。
自有 ID:OTP-15750 輔助 ID:ERL-905
Crypto 4.4.1
已修正的錯誤和故障
修正了在某種情況下,導致
crypto:sign
和crypto:verify
傳回錯誤訊息badarg
而不是notsup
的錯誤。該情況是當使用 eddsa 金鑰(即 ed15519 或 ed448)進行簽署或驗證時,但僅在支援和啟用 FIPS 時才會發生。自有 ID:OTP-15634
改進和新功能
新增了密碼編譯效能評估測試套件。
自有 ID:OTP-15447
Crypto 4.4
已修正的錯誤和故障
更新了密碼編譯應用程式的 C 程式碼、文件和測試中的 RSA 選項部分。
自有 ID:OTP-15302
改進和新功能
新增了 ed25519 和 ed448 簽署/驗證。
在 OTP 應用程式
crypto
下,需要 OpenSSL 1.1.1 或更高版本作為 cryptolib。自有 ID:OTP-15419 輔助 ID:OTP-15094
修正了 valgrind 警告。
自有 ID:OTP-15467
Crypto 4.3.3
修正錯誤與故障
RSA 選項
rsa_mgf1_md
、rsa_oaep_md
和rsa_oaep_label
之前總是停用。現在當使用適當的密碼庫時,它們將會啟用。它們仍然是實驗性的,可能會在沒有事先通知的情況下變更。
自有 ID:OTP-15212 輔助 ID:ERL-675、PR1899、PR838
密碼
aes_ige256
和blowfish_cbc
在crypto:next_iv/2
中有命名問題。自有 ID:OTP-15283
如果使用 LibreSSL 作為密碼庫,則會停用
RSA_SSLV23_PADDING
。這是由於編譯問題所致。未來將會進一步調查此問題。
自有 ID:OTP-15303
改進與新功能
現在支援的具名橢圓曲線會在
crypto:supports/0
中以'curves'
標記的新條目中報告。函式
crypto:ec_curves/0
保留以保持相容性。自有 ID:OTP-14717 輔助 ID:OTP-15244
CRYPTO 和 PUBLIC_KEY 應用程式中的型別已重新設計,並修正了一些錯誤。
文件現在會從型別產生,並進行了一些澄清。
在 CRYPTO 使用者指南中新增了關於演算法詳細資訊(例如金鑰大小和可用性)的新章節。
自有 ID:OTP-15134
如果使用 OpenSSL 1.1.1 或更高版本作為密碼庫,現在可以支援將 SHA3 作為單獨的雜湊和 HMAC 使用。
在
crypto:supports/0
中的'hashs'
條目中會將可用的長度報告為sha3_*
。自有 ID:OTP-15153
如果使用 OpenSSL 1.1.1 或更高版本作為密碼庫,現在支援 MAC 演算法
poly1305
和密碼演算法chacha20
。自有 ID:OTP-15164 輔助 ID:OTP-15209
如果使用 OpenSSL 1.1.1 或更高版本作為密碼庫,現在支援金鑰交換 Edward 曲線
x25519
和x448
。自有 ID:OTP-15240 輔助 ID:OTP-15133
現在支援用於簽章/驗證和加密/解密的 RSA 選項,會以 '
rsa_opts
' 標記的新條目在crypto:supports/0
中報告。確切的集合仍然是實驗性的,可能會在沒有事先通知的情況下變更。
自有 ID:OTP-15260
新增密碼
aes_ccm
。自有 ID:OTP-15286
Crypto 4.3.2
修正錯誤與故障
更新密碼引擎函式以處理引擎的多個載入。
更新
engine_load/3/4
,使其不會將引擎 ID 新增至 OpenSSL 的內部引擎清單,這使得如果引擎不包含全域資料,則可以執行多次 engine_load。新增
ensure_engine_loaded/2/3
,以保證引擎只會載入一次,後續呼叫只會傳回它的參考。這是透過將 ID 新增至內部 OpenSSL 清單,並在呼叫函式時檢查它是否已註冊來完成的。新增
ensure_engine_unloaded/1/2
以卸載使用 ensure_engine_loaded 載入的引擎。然後新增了一些其他實用函式。
engine_add/1
,將引擎新增至 OpenSSL 內部清單engine_remove/1
,從 OpenSSL 內部清單中移除引擎engine_get_id/1
,提取引擎的 IDengine_get_name/1
,提取引擎名稱自有 ID:OTP-15233
Crypto 4.3.1
修正錯誤與故障
修正在傳遞錯誤型別的 Others 引數時,
crypto:compute_key(ecdh, ...)
中節點崩潰的問題。自有 ID:OTP-15194 輔助 ID:ERL-673
Crypto 4.3
修正錯誤與故障
移除了兩個未記載且錯誤的函式(
crypto:dh_generate_parameters/2
和crypto:dh_check/1
)。自有 ID:OTP-14956 輔助 ID:ERL-579
修正在針對舊於 0.9.8h 的 OpenSSL 建置的密碼模組進行執行階段升級時,導致 VM 崩潰的錯誤。此錯誤自 OTP-20.2 開始存在。
自有 ID:OTP-15088
改進與新功能
在
crypto
中實作了一個新的rand
外掛演算法,即:crypto_cache
。它使用強隨機位元組作為隨機來源,並快取它們以獲得良好的速度。請參閱crypto:rand_seed_alg/1
。自有 ID:OTP-13370 輔助 ID:PR-1573
使用 EVP_PKEY API 重新撰寫 Diffie-Hellman 金鑰函式。
自有 ID:OTP-14864
Crypto 4.2.2.4
修正錯誤與故障
新增了常數時間比較。
自有 ID:OTP-16376
Crypto 4.2.2.3
改進與新功能
密碼 aes_cfb8 和 aes_cfb128 現在使用 EVP 介面。支援的金鑰長度為 128、192 和 256 位元。
自有 ID:OTP-16133 輔助 ID:PR-2407
Crypto 4.2.2.1
修正錯誤與故障
修正在傳遞錯誤型別的 Others 引數時,
crypto:compute_key(ecdh, ...)
中節點崩潰的問題。自有 ID:OTP-15194 輔助 ID:ERL-673
Crypto 4.2.2
修正錯誤與故障
如果設定了 OPENSSL_NO_EC,則密碼 NIF 的編譯會失敗。
自有 ID:OTP-15073
修正了 LibreSSL 2.7.0 - 2.7.2 的 C 編譯錯誤
自有 ID:OTP-15074 輔助 ID:ERL-618
Crypto 4.2.1
修正錯誤與故障
修正了 LibreSSL >= 2.6.1 中移除 RSA 填補函式所造成的建置錯誤
自有 ID:OTP-14873
Crypto 4.2
修正錯誤與故障
crypto.c
中的相容性函式void HMAC_CTX_free
錯誤地嘗試傳回一個值。自有 ID:OTP-14720
改進與新功能
使用 EVP API 重新撰寫公鑰和私鑰的編碼/解碼。新增了新的 RSA 填補選項。這是 PR-838 的一半修改。
自有 ID:OTP-14446
擴充了密碼 API,以使用儲存在引擎中的私鑰/公鑰進行簽章/驗證或加密/解密操作。
ssl 應用程式提供一個 API,以在 TLS 中使用這個新的引擎概念。
自有 ID:OTP-14448
新增了對插入替代實作的支援,用於 OpenSSL Engine API 支援的部分或所有密碼運算。如果配置得當,OpenSSL 會呼叫引擎對這些運算的實作,而不是它自己的實作。
自有 ID:OTP-14567
取代了
crypto.c
中 OpenSSL 已棄用的函式DH_generate_parameters
的呼叫。自有 ID:OTP-14639
新增了關於如何使用儲存在引擎中的金鑰的文件。
自有 ID:OTP-14735 輔助 ID:OTP-14448
在密碼中新增了 engine_ctrl_cmd_string/3,4 OpenSSL 引擎支援。
自有 ID:OTP-14801
Crypto 4.1
修正錯誤與故障
在 macOS 上,如果
observer
在crypto
之前啟動,則crypto
會崩潰。在 macOS 10.13 (High Sierra) 的測試版上,crypto
會崩潰。這兩個錯誤都已修正。自有 ID:OTP-14499 輔助 ID:ERL-251 ERL-439
改進與新功能
擴充了 crypto:sign、crypto:verify、public_key:sign 和 public_key:verify,具有
* 支援 RSASSA-PS 簽章填補和 saltlength 設定
* X9.31 RSA 填補。
* NIST SP 800-57 Part 1 中提到的用於 dss 簽章的 sha、sha224、sha256、sha384 和 sha512。
* ripemd160 用於 rsa 簽章。這是從 2015 年 9 月 potatosalad 的 pull request 838 的一半手動合併。
自有 ID:OTP-13704 輔助 ID:PR838
crypto:supports/0
中的新元組會報告支援的 MAC 演算法。自有 ID:OTP-14504
Crypto 4.0
修正錯誤與故障
現代化的密碼應用程式現在可以使用 LibreSSL。
自有 ID:OTP-14247
在具有
on_load
指令的模組中新增編譯選項-compile(no_native)
,HiPE 尚未支援此指令。自有 ID:OTP-14316 輔助 ID:PR-1390
修正了 GitHub pull request #1393 中的錯誤修復所引入的 aes cfb128 函式中的錯誤。
自有 ID:OTP-14435 輔助 ID:PR-1462、PR-1393、OTP-14313
改進和新功能
新增對 CMAC 的基本支援
自有 Id:OTP-13779 輔助 Id:ERL-82 PR-1138
移除在 OTP-R16B01 中首次發佈的 crypto-3.0 中已棄用的函式
* 可能的不相容性 *
自有 Id:OTP-13873
crypto
應用程式現在支援 OpenSSL 1.1。自有 Id:OTP-13900
允許 Erlang/OTP 在 FIPS-140 模式下使用 OpenSSL,以滿足特定的安全性要求(主要來自美國聯邦政府的不同部門)。
請參閱新的加密使用者指南「FIPS 模式」章節,瞭解如何建置和使用預設停用的 FIPS 支援。
(感謝 dszoboszlay 和 legoscia)
自有 Id:OTP-13921 輔助 Id:PR-1180
針對 OpenSSL >= 1.1 啟用 RFC 7539 中的 Crypto chacha20-poly1305。
感謝 mururu。
自有 Id:OTP-14092 輔助 Id:PR-1291
RSA 金鑰產生已新增至
crypto:generate_key/2
。感謝 wiml。介面也已新增至
public_key:generate_key/1
。自有 Id:OTP-14140 輔助 Id:ERL-165, PR-1299
將 OpenSSL 版本的最低要求提高到 OpenSSL-0.9.8.c,儘管我們建議使用更高版本,也就是 OpenSSL 專案官方仍維護的版本。請注意,使用如此舊的版本可能會限制支援的加密演算法。
* 可能的不相容性 *
自有 Id:OTP-14171
棄用 crypto:rand_uniform/2,因為它不具備加密強度
自有 Id:OTP-14274
Crypto 應用程式現在支援產生密碼學上強健的亂數(小於 1.0 的浮點數和任意範圍的整數),作為 'rand' 模組的插件。
自有 Id:OTP-14317 輔助 Id:PR-1372
這將 AES、CMAC 和 GCM 密碼的硬編碼測試值,替換為 NIST 的 CAVP 程式中的完整驗證集。
自有 Id:OTP-14436 輔助 Id:PR-1396
Crypto 3.7.4
修正錯誤和故障
修正使用 192 和 256 位元金鑰的 AES CFB 128 中的錯誤。感謝 kellymclaughlin!
自有 Id:OTP-14313 輔助 Id:PR-1393
Crypto 3.7.3
改進和新功能
金鑰交換演算法 diffie-hellman-group-exchange-sha* 的實作已最佳化,對於最慢(= 最大且最安全)的群組大小,最多可達 11 倍。
自有 Id:OTP-14169 輔助 Id:seq-13261
Crypto 3.7.2
修正錯誤和故障
已修正 crypto 應用程式,使其不會針對已停用 RC2 的 OpenSSL 建置使用 RC2。
自有 Id:OTP-13895 輔助 Id:PR-1163
已修正 crypto 應用程式,使其不會針對已停用 RC4 的 OpenSSL 建置使用 RC4。
自有 Id:OTP-13896 輔助 Id:PR-1169
改進和新功能
為了方便疑難排解,
erlang:load_nif/2
現在在錯誤元組的文字部分包含失敗的 load/reload/upgrade 呼叫傳回值。crypto
NIF 會利用此功能,傳回初始化失敗時的來源程式碼行(如果有的話)。自有 Id:OTP-13951
Crypto 3.7.1
修正錯誤和故障
已修正 Crypto,使其可針對已停用 DES 密碼的 OpenSSL 版本運作。已導入密碼演算法 'des3_cfb' 的正確拼寫;先前拼寫錯誤的版本仍然有效。
自有 Id:OTP-13783 輔助 Id:ERL-203
已修正 crypto 中內部陣列的大小,使其在具有所有可能的密碼時不會發生分段錯誤。Duncan Overbruck 的錯誤修正。
自有 Id:OTP-13789 輔助 Id:PR-1140
Crypto 3.7
改進和新功能
重構
crypto
以使用 OpenSSL 的 EVP 介面,這是建議的介面,它也可以存取某些作業的硬體加速。自有 Id:OTP-12217
新增對
aes_cbc
密碼 192 位元金鑰的支援。自有 Id:OTP-13206 輔助 Id:pr 832
新增對
aes_ecb
192 位元金鑰的支援。自有 Id:OTP-13207 輔助 Id:pr829
棄用函式
crypto:rand_bytes
,並確保在所有加密重要的位置使用crypto:strong_rand_bytes
。自有 Id:OTP-13214
啟用 AES-GCM 加密/解密,以變更 1 到 16 個位元組之間的標籤長度。
自有 Id:OTP-13483 輔助 Id:PR-998
Crypto 3.6.3
修正錯誤和故障
修正資料大於 16 個位元組時
aes_ecb
區塊加密的錯誤。自有 Id:OTP-13249
改善 Crypto 和 SSL 中 ECC 測試對於「奇異」OpenSSL 版本的可攜性。
自有 Id:OTP-13311
Crypto 3.6.2
修正錯誤和故障
小的文件修正
自有 Id:OTP-13017
Crypto 3.6.1
修正錯誤和故障
如果完全不支援橢圓曲線,則讓
crypto:ec_curves/0
傳回空列表。自有 Id:OTP-12944
Crypto 3.6
修正錯誤和故障
增強 crypto:generate_key,以從私鑰計算 ECC 公鑰。
自有 Id:OTP-12394
修正
crypto:generate_key
中ecdh
的錯誤,該錯誤可能會因輸入錯誤而導致 VM 當機。自有 Id:OTP-12733
改進和新功能
針對 AES-CBC 加密使用 EVP API,以在較新的 Intel CPU (AES-NI) 和其他平台啟用 AES-CBC 加密的硬體加速。
自有 Id:OTP-12380
新增 AES ECB 區塊加密。
自有 Id:OTP-12403
Crypto 3.5
改進和新功能
擴充 aes_cfb8 和 aes_cfb128 的 block_encrypt/decrypt,以接受長度為 128、192 和 256 位元的金鑰。之前只接受 128 位元的金鑰。
自有 Id:OTP-12467
Crypto 3.4.2
改進和新功能
新增組態選項 --with-ssl-incl=PATH,以支援標頭和程式庫位於不同位置的 OpenSSL 安裝。
自有 Id:OTP-12215 輔助 Id:seq12700
新增組態選項 --with-ssl-rpath,以控制用於對 OpenSSL 進行動態連結的執行階段程式庫路徑。
自有 Id:OTP-12316 輔助 Id:seq12753
Crypto 3.4.1
修正錯誤和故障
讓
crypto
驗證 OpenSSL 標頭檔和執行階段程式庫的主要版本號碼。如果版本不符,crypto
的載入將會失敗。自有 Id:OTP-12146 輔助 Id:seq12700
Crypto 3.4
修正錯誤和故障
修正在所有資料的
crypto:hmac_init/upgrade/final
函式中,以及在資料大於 20000 個位元組的crypto:hmac/3/4
中的記憶體洩漏。自 OTP 17.0 以來存在此錯誤。自有 Id:OTP-11953
修正橢圓曲線的
crypto
中的記憶體洩漏。自有 Id:OTP-11999
改進和新功能
將
aes_cfb8
密碼新增至crypto:block_encrypt
和block_decrypt
。自有 Id:OTP-11911
Crypto 3.3
修正錯誤和故障
修正在傳遞錯誤引數時,
mod_pow
、mod_exp
和generate_key(srp,...)
中的記憶體洩漏和無效的釋放。(感謝 Florian Zumbiehi)自有 Id:OTP-11550
更正整份文件中單字「ChipherText」的拼寫 (感謝 Andrew Tunnell-Jones)
自有 Id:OTP-11609
修正當在多個
hmac_update
或hmac_final
呼叫中使用 hmac 內容變數時的嚴重錯誤。由於底層的 OpenSSL 實作不支援,因此 hmac 內容的重複使用一直無效。現在記錄為具有未定義的行為,但它不會再讓 VM 當機或損毀。自有 Id:OTP-11724
Crypto 會以受控制的中止來處理記憶體不足,而不是當機/損毀。(感謝 Florian Zumbiehi)
自有 Id:OTP-11725
已修正下列應用程式的應用程式升級 (appup) 檔案
asn1、common_test、compiler、crypto、debugger、dialyzer、edoc、eldap、erl_docgen、et、eunit、gs、hipe、inets、observer、odbc、os_mon、otp_mibs、parsetools、percept、public_key、reltool、runtime_tools、ssh、syntax_tools、test_server、tools、typer、webtool、wx、xmerl
已將新的測試公用程式新增至 test_server,以測試 appup 檔案。現在 OTP 中的大多數應用程式都使用此公用程式。
(感謝 Tobias Schlager)
自有 Id:OTP-11744
改進和新功能
透過在組態中提供 --enable-static-{nifs,drivers},現在可以將 nif 和驅動程式靜態連結到主要的 Erlang VM 二進位檔。目前僅準備好靜態連結 Erlang/OTP nif 和驅動程式的 asn1 和 crypto nif。如需更多詳細資訊,請參閱系統文件中的安裝指南。
自有 Id:OTP-11258
在 crypto 中新增 AES 的 IGE 模式 (感謝 Yura Beznos)。
自有 Id:OTP-11522
將橢圓曲線定義從 crypto NIF/OpenSSL 移至 Erlang 程式碼,新增 RFC-5639 brainpool 曲線,並讓 TLS 使用它們 (RFC-7027)。
感謝 Andreas Schultz
自有 Id:OTP-11578
從加密模組中移除所有過時的應用程式處理程序,並將其轉換為純函式庫應用程式。
自身 ID:OTP-11619
加密模組 3.2
已修正的錯誤與故障
修正加密模組中未初始化的指標 (感謝 Anthony Ramine)
自身 ID:OTP-11510
加密模組 3.1
改進和新功能
重構 ecdsa 加密,以簡化程式碼並提高效能。
自身 ID:OTP-11320
加密模組 3.0
改進和新功能
整合 Andreas Schultz 的橢圓曲線貢獻
為了能夠在 SSL/TLS 中支援橢圓曲線加密套件,已在 public_key 和 crypto 中新增處理橢圓曲線基礎架構的功能。
這也導致了加密 API 的重寫,以獲得一致性並消除不必要的開銷。所有使用加密模組的 OTP 應用程式都已更新為使用新的 API。
影響:橢圓曲線密碼學 (ECC) 提供與其他公開金鑰演算法相當的安全性,但金鑰大小更小。較小的金鑰大小可節省電力、記憶體、頻寬和計算成本,這使得 ECC 對於受限環境特別有吸引力。
自身 ID:OTP-11009
修正了加密文件中拼寫錯誤。感謝 Klaus Trainer
自身 ID:OTP-11058
已知錯誤和問題
當輸入非常大時,透過分塊輸入並增加 NIF 中的歸約次數,使加密函數可中斷。
尚未針對 block_encrypt|decrypt/4 實作
影響:對加密函數的個別呼叫可能會花費較長時間,但整體系統效能應會提高,因為加密呼叫不會成為吞吐量瓶頸。
自身 ID:OTP-11142
加密模組 2.3
改進和新功能
啟用加密模組的執行階段升級,包括加密模組使用的 OpenSSL 函式庫。
自身 ID:OTP-10596
改進加密模組中 hmac 函數的文件和測試。感謝 Daniel White
自身 ID:OTP-10640
為加密模組新增 ripemd160 支援。感謝 Michael Loftis
自身 ID:OTP-10667
加密模組 2.2
已修正的錯誤與故障
從加密 NIF 函式庫中移除對 libssl 的不必要相依性。此相依性在 R14B04 中意外引入。
自身 ID:OTP-10064
改進和新功能
為雜湊函數 SHA224、SHA256、SHA384 和 SHA512,以及使用這些雜湊函數的 hmac 和 rsa_sign/verify 支援新增加密模組和 public_key 支援。感謝 Andreas Schultz 製作原型。
自身 ID:OTP-9908
最佳化
crypto
和public_key
中的 RSA 私鑰處理。自身 ID:OTP-10065
使
crypto:aes_cfb_128_encrypt
和crypto:aes_cfb_128_decrypt
處理任意長度的資料和密碼。(感謝 Stefan Zegenhagen)自身 ID:OTP-10136
加密模組 2.1
改進和新功能
public_key、ssl 和 crypto 現在支援 PKCS-8
自身 ID:OTP-9312
如果您限制工作數,例如使用 '
make -j6
' 或 'make -j10
',現在可以使用平行 make 來建置 Erlang/OTP。目前 'make -j
' 無法運作,因為缺少某些相依性。自身 ID:OTP-9451
將 DES 和三重 DES 密碼回饋 (CFB) 模式函數新增至
crypto
。(感謝 Paul Guyot)自身 ID:OTP-9640
新增 sha256、sha384 和 sha512 對
crypto:rsa_verify
的支援。自身 ID:OTP-9778
加密模組 2.0.4
已修正的錯誤與故障
crypto:rand_uniform
可以針對負整數正確運作。對於無效範圍 (當Hi =< Lo
時),會傳回badarg
例外狀況,而不是傳回不正確的輸出。自身 ID:OTP-9526
修正 win32 OpenSSL 靜態連結 (感謝 Dave Cottlehuber)
自身 ID:OTP-9532
加密模組 2.0.3
已修正的錯誤與故障
各種小文件修正 (感謝 Bernard Duggan)
自身 ID:OTP-9172
改進和新功能
為 AES CTR 和 HMAC 串流新增新的
crypto
支援。(感謝 Travis Jensen)自身 ID:OTP-9275
由於 OpenSSL 和 Erlang/OTP 版本之間的標準函式庫 DLL 不符,OpenSSL 現在會靜態連結到 Windows 上的加密驅動程式。這修正了在所有 Windows 版本上將 Erlang 作為服務執行時啟動加密模組的問題。
自身 ID:OTP-9280
加密模組 2.0.2.2
改進和新功能
加強亂數產生。(感謝 Geoff Cant)
自身 ID:OTP-9225
加密模組 2.0.2.1
改進和新功能
其他更新。
自身 ID:OTP-9132
加密模組 2.0.2
改進和新功能
crypto
中支援 AES CTR 加密。自身 ID:OTP-8752 輔助 ID:seq11642
加密模組 2.0.1
已修正的錯誤與故障
md5_mac 和 sha_mac 中的加密 dialyzer 類型錯誤。
自身 ID:OTP-8718
RC4 串流密碼無法運作。這是因為在
crypto-2.0
中引入的新 NIF 實作crypto:rc4_encrypt_with_state/2
未傳回更新的狀態。(感謝 Paul Guyot)自身 ID:OTP-8781
修正了加密 NIF 函式庫中的一些記憶體洩漏。
自身 ID:OTP-8810
改進和新功能
新增了 erlang:system_info(build_type),這使得根據執行階段系統的建置類型選擇驅動程式、NIF 函式庫等變得更容易。
現在可以為 valgrind 和/或除錯建置加密模組的 NIF 函式庫,作為單獨的 NIF 函式庫,如果執行階段系統已使用相符的建置類型建置,則會自動載入這些函式庫。
自身 ID:OTP-8760
加密模組 2.0
改進和新功能
加密應用程式變更為使用 NIF 而不是驅動程式。
自身 ID:OTP-8333
已將 des_ecb_encrypt/2 和 des_ecb_decrypt/2 新增至加密模組。crypto:md4/1 函數已記錄在文件中。
自身 ID:OTP-8551
已移除未記錄、不受支援且已過時的函數
lists:flat_length/1
。自身 ID:OTP-8584
新增
crypto:dss_sign
和crypto:dss_verify
的變體,帶有額外的參數來控制摘要的計算方式。自身 ID:OTP-8700
加密模組 1.6.4
改進和新功能
跨編譯改進和其他建置系統改進。
最值得注意的是
- 許多跨編譯改進。舊的跨編譯支援或多或少是不存在的,並且已損壞。請注意,跨編譯支援仍應視為實驗性。另請注意,未經修改,無法使用舊的跨編譯組態。如需有關跨編譯 Erlang/OTP 的詳細資訊,請參閱
$ERL_TOP/INSTALL-CROSS.md
檔案。 - 使用 DESTDIR 支援分段安裝。舊的損壞
INSTALL_PREFIX
也已修正。如需更多資訊,請參閱$ERL_TOP/INSTALL.md
檔案。 - 頂層
Makefile
的release
目標文件。如需更多資訊,請參閱$ERL_TOP/INSTALL.md
檔案。 make install
現在預設會建立相對符號連結,而不是絕對符號連結。如需更多資訊,請參閱$ERL_TOP/INSTALL.md
檔案。$ERL_TOP/configure --help=recursive
現在可以運作,並列印所有帶有configure
指令碼的應用程式的說明。- 在
make all
之後直接執行make install
或make release
不再觸發其他重建。 - 在沒有先執行
make all
的情況下執行make install
或make release
時,現在會使用現有的引導系統。 - 當動態連結到
libssl.so
和libcrypto.so
時,crypto
和ssl
應用程式會使用相同的執行階段函式庫路徑。執行階段函式庫搜尋路徑也已擴充。 erl_interface
和odbc
的configure
指令碼現在會以與 ERTS 相同的方式搜尋執行緒函式庫和執行緒函式庫的怪異之處。- 在 64 位元系統上建置時,
odbc
應用程式的configure
指令碼現在也會在lib64
和lib/64
目錄中尋找 odbc 函式庫。 - 現在會自動產生
erl_interface
應用程式中的config.h.in
檔案,而不是靜態更新,這降低了沒有任何效果的configure
測試的風險。
(感謝 Henrik Riomar 的建議和測試)
(感謝 Winston Smith 的 AVR32-Linux 跨組態和測試)
* 可能的不相容性 *
自身 ID:OTP-8323
- 許多跨編譯改進。舊的跨編譯支援或多或少是不存在的,並且已損壞。請注意,跨編譯支援仍應視為實驗性。另請注意,未經修改,無法使用舊的跨編譯組態。如需有關跨編譯 Erlang/OTP 的詳細資訊,請參閱
加密模組現在支援 ECB、CBC 和 OFB 模式中的 Blowfish。(感謝 Paul Oliver。)
自身 ID:OTP-8331
在修正了一些錯誤並在文件建置過程中新增了一些功能之後,現在可以在開放原始碼環境中建置文件。
- 已更新 arity 計算。
- 在產生的連結中,已移除用於 bif 函數名稱的模組前綴,因此連結看起來會像 "https://erlang.dev.org.tw/doc/man/erlang.html#append_element-2",而不是 "https://erlang.dev.org.tw/doc/man/erlang.html#erlang:append_element-2"。
- 在載入新頁面時,增強了 HTML 文件中的選單定位。
- 修正了 man page 的一些產生問題 (感謝 Sergei Golovan)。
- 法律聲明取自 XML 書籍檔案,如此 OTP 的建構流程可用於非 OTP 的應用程式。
專屬 ID:OTP-8343
Crypto 1.6.3
已修正的錯誤與故障
抑制了 libcrypto 因使用未初始化的資料作為熵而引起的錯誤 valgrind 錯誤。
專屬 ID:OTP-8200
改進與新功能
現在文件使用大多數平台上存在的開源工具 (xsltproc 和 fop) 建構。一個明顯的變化是框架被移除。
專屬 ID:OTP-8201
當 crypto 應用程式無法載入 OpenSSL/LibEAY 共用物件時,錯誤指示非常稀疏。現在,更具體的錯誤訊息會傳送到錯誤記錄器。
專屬 ID:OTP-8281
Crypto 1.6.2
已修正的錯誤與故障
修正了 crypto 使用不支援大型檔案描述符的舊版 openssl 導致的模擬器崩潰問題。
專屬 ID:OTP-8261 輔助 ID:seq11434
Crypto 1.6.1
已修正的錯誤與故障
Makefile.in
已更新以使用 LDFLAGS 環境變數 (如果已設定)。(感謝 Davide Pesavento。)專屬 ID:OTP-8157
改進與新功能
將 Blowfish cfb64 的支援新增至
crypto
。專屬 ID:OTP-8096
新函數
crypto:aes_cbc_ivec
專屬 ID:OTP-8141
Crypto 1.6
已修正的錯誤與故障
dh_compute_key
有時會傳回大小不正確的 SharedSecret。專屬 ID:OTP-7674
改進與新功能
透過在進程堆積上建立小型二進位檔來優化驅動程式。
專屬 ID:OTP-7762
Crypto 1.5.3
改進與新功能
新增了新函數:dss_verify/3、rsa_verify/3、rsa_verify/4、dss_sign/2、rsa_sign/2、rsa_sign/3、rsa_public_encrypt、rsa_private_decrypt/3、rsa_private_encrypt/3、rsa_public_decrypt/3、dh_generate_key/1、dh_generate_key/2、dh_compute_key/3。
專屬 ID:OTP-7545
Crypto 1.5.2.1
改進與新功能
輕微的效能優化。
專屬 ID:OTP-7521
Crypto 1.5.2
已修正的錯誤與故障
改善了 ./configure 以尋找 64 位元的 OpenSSL 函式庫。
專屬 ID:OTP-7270
改進與新功能
改善了 crypto 和 zlib 驅動程式以允許並行 smp 存取。
專屬 ID:OTP-7262
Crypto 1.5.1.1
改進與新功能
現在 crypto 應用程式的連結驅動程式會與 OpenSSL 函式庫靜態連結,以避免與 OpenSSL 函式庫位置相關的安裝和執行階段問題。
專屬 ID:OTP-6680
輕微的 Makefile 變更。
專屬 ID:OTP-6689
Crypto 1.5
改進與新功能
現在會在啟動時明確檢查 crypto 驅動程式是否已正確載入 (感謝 Claes Wikstrom)。
專屬 ID:OTP-6109
Crypto 1.4
改進與新功能
更新並記錄了先前未記錄且不支援的
ssh
應用程式。此版本的ssh
應用程式仍被視為 beta 版本,並且 (如有必要) 在達到 1.0 之前,其 API 仍可能會變更。此外,已將更多加密演算法新增至
crypto
應用程式。* 可能的不相容性 *
專屬 ID:OTP-5631
Crypto 1.3
改進與新功能
- 新增了對 RFC 3826 的支援 - SNMP 基於使用者安全模型中的進階加密標準 (AES) 密碼演算法。
Martin Björklund
Crypto 1.2.3
已修正的錯誤與故障
現在,當模擬器啟用執行緒支援時,crypto 和 asn1 應用程式中連結的驅動程式會在 Unix 上使用 -D_THREAD_SAFE 和 -D_REENTRANT 參數進行編譯。
MacOSX 上連結的驅動程式不再使用未記錄的 -lbundle1.o 參數進行編譯。感謝 Sean Hinde 送給我們修補程式。
現在,crypto 中連結的驅動程式和 ssl 中的 port 程式可在 OSF1 上編譯。
runtime_tools 中輕微的 makefile 改善。
專屬 ID:OTP-5346
Crypto 1.2.2
改進與新功能
修正了錯誤處理。如果 crypto 使用的驅動程式的 port 意外關閉 (在 crypto 的正常操作期間不應發生這種情況),crypto 會立即終止 (而不是在下次使用 crypto 時崩潰)。也修正了 Mac OS X 上的建構問題。
專屬 ID:OTP-5279
Crypto 1.2.1
已修正的錯誤與故障
在 R9 中無法重新連結 crypto 驅動程式。缺少物件檔案以及範例 makefile。現在,crypto 驅動程式物件檔案會與應用程式一起發佈 (安裝在 priv/obj 中)。範例 makefile 也已新增至 priv/obj 目錄。makefile 可作為如何在 Unix (crypto_drv.so) 或 Windows (crypto_drv.dll) 上重新連結驅動程式的範例。
專屬 ID:OTP-4828 輔助 ID:seq8193
Crypto 1.2
改進與新功能
- 先前版本的 Crypto 隨附以 SSLeay 為基礎的靜態連結二進位檔。情況已不再如此。目前版本的 Crypto 需要使用者安裝的動態連結 OpenSSL 函式庫。需要的函式庫是
libcrypto.so
(Unix) 或libeay32.[lib|dll]
(Win32)。如需更多詳細資訊,請參閱 crypto(6) 應用程式手冊頁面。 - 此版本的 Crypto 使用 OpenSSL 0.9.7 的新 DES 介面,該介面與較早版本的 OpenSSL 不向後相容。
- 函數
des_ede3_cbc_encrypt/5
和des_ede3_cbc_decrypt/5
已分別重新命名為des3_cbc_encrypt/5
和des3_cbc_decrypt/5
。已保留舊的函數 (它們已被棄用且未列在 crypto(3) 手冊頁面中)。
已回報的修正錯誤與故障
由於錯誤地新增了 DES3 演算法,導致 crypto 在 Windows 上啟動失敗。
專屬 ID:OTP-4684
輔助 ID:seq7864
Crypto 1.1.3
已回報的修正錯誤與故障
- 為了與舊的 SSLeay 套件和較早版本的 OpenSSL 向後相容,已將巨集 OPENSSL_DES_LIBDES_COMPATIBILITY 新增至
crypto_drv.c
。這僅對開源版本的 Crypto 而言是重要的。
Crypto 1.1.2
已回報的修正錯誤與故障
在手冊頁面
crypto
中,函數名稱md5_finish
和sha_finish
已變更為md5_final
和sha_final
,以正確記錄實作。專屬 ID:OTP-3409
Crypto 1.1.1
支援執行階段中的程式碼替換。可以從 1.1 版升級,並降級至 1.1 版。
改進與新功能
- Crypto 應用程式的驅動程式部分已更新為使用 erl_driver 標頭檔。1.1.1 版本需要模擬器版本 4.9.1 或更高版本。
Crypto 1.1
已回報的已修正錯誤與故障
在 Windows 上,crypto_drv 不正確地連結到靜態執行階段函式庫,而非動態執行階段函式庫。
自有 ID:OTP-3240
Crypto 1.0
新的應用程式。