檢視原始碼 加密版本發行說明

此文件描述了對加密應用程式所做的變更。

加密 5.5.2

已修正的錯誤和故障

  • crypto:strong_rand_bytes/2 已修正,可在安裝 FIPS 支援的 Ubuntu pro 上運作。

    內部 ID:OTP-19223 輔助 ID:PR-8800GH-8769

  • 當使用 OpenSSL 3.4 或更新版本時,已修正摘要類型 shake128shake256crypto:hash_final/1

    內部 ID:OTP-19329 輔助 ID:GH-8997PR-9002

加密 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/3crypto_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 或更新版本時,已修正摘要類型 shake128shake256crypto: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/3crypto_dyn_iv_update/3 已棄用。

    專屬 ID:OTP-17870

  • 增加了錯誤訊息中的資訊。

    先前,錯誤會以錯誤類別例外狀況 badargnotsuperror 發出訊號,也會以其他更多方式,例如其他例外狀況或非標準化格式的回傳值。

    現在它是錯誤類別例外狀況 {notsup|badarg|error, InfoFromCfile, Description::string()}

    InfoFromCfile 是一個包含發現錯誤的 C 檔案名稱和行號的 term。這主要用於加密維護者或進階使用者尋找複雜錯誤的原因 - 可能在加密本身中。該 term 的內容將來可能會變更。

    Description 是一個描述錯誤的純文字字串。對於 badargnotsup,目的是要協助使用者找到原因(例如「金鑰大小錯誤」)。特別是對於某些不太可能發生的 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 啟用了雜湊演算法 md4ripemd160

    - 使用 OpenSSL 3.0 啟用了密碼 blowfish_cbcblowfish_ecbdes_cbcdes_cfbdes_ecbrc2_cbcrc4

    使用 OpenSSL 3.0 時仍停用或不支援

    - ENGINE 支援

    - FIPS 模式

    - 除了內建的提供者之外的其他提供者

    - 在相容模式下使用 OpenSSL 3.0 cryptolib 進行編譯和連結(例如,行為與 1.1.1 相同)

    而且,不支援密碼 blowfish_cfb64blowfish_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 編譯時,雜湊演算法 md4ripemd160 會暫時停用。

    使用 OpenSSL 3.0 編譯時,加密演算法 blowfish_cbcblowfish_cfb64blowfish_ecbblowfish_ofb64des_cbcdes_cfbdes_ecbrc2_cbcrc4 會暫時停用。

    自有 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

  • 現在,如果無法啟用要求的功能,cryptoerts 中的 configure 腳本會失敗。

    cryptoconfigure 腳本的很大一部分已重寫,並進行了各種改進和錯誤修復。它現在更擅長找到可用的 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

  • 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/3crypto_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 的錯誤傳回中的錯誤。它傳回了 atom notsup,而不是例外 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

  • 新增了兩個雜湊函式 blake2bblake2s(分別為 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-bfno-blake2no-chachano-cmacno-dhno-dsano-md4no-poly1305no-rc2no-rc4no-rmd160

    自有 ID:OTP-15683

  • 引入了新的函式 crypto:supports/1。單一引數接受 atom 作為引數:hashespublic_keysciphersmacscurvesrsa_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:signcrypto: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_mdrsa_oaep_mdrsa_oaep_label 之前總是停用。現在當使用適當的密碼庫時,它們將會啟用。

    它們仍然是實驗性的,可能會在沒有事先通知的情況下變更。

    自有 ID:OTP-15212 輔助 ID:ERL-675、PR1899、PR838

  • 密碼 aes_ige256blowfish_cbccrypto: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 曲線 x25519x448

    自有 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,提取引擎的 ID

    engine_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/2crypto: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 上,如果 observercrypto 之前啟動,則 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_keyecdh 的錯誤,該錯誤可能會因輸入錯誤而導致 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_encryptblock_decrypt

    自有 Id:OTP-11911

Crypto 3.3

修正錯誤和故障

  • 修正在傳遞錯誤引數時,mod_powmod_expgenerate_key(srp,...) 中的記憶體洩漏和無效的釋放。(感謝 Florian Zumbiehi)

    自有 Id:OTP-11550

  • 更正整份文件中單字「ChipherText」的拼寫 (感謝 Andrew Tunnell-Jones)

    自有 Id:OTP-11609

  • 修正當在多個 hmac_updatehmac_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

  • 最佳化 cryptopublic_key 中的 RSA 私鑰處理。

    自身 ID:OTP-10065

  • 使 crypto:aes_cfb_128_encryptcrypto: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_signcrypto:dss_verify 的變體,帶有額外的參數來控制摘要的計算方式。

    自身 ID:OTP-8700

加密模組 1.6.4

改進和新功能

  • 跨編譯改進和其他建置系統改進。

    最值得注意的是

    • 許多跨編譯改進。舊的跨編譯支援或多或少是不存在的,並且已損壞。請注意,跨編譯支援仍應視為實驗性。另請注意,未經修改,無法使用舊的跨編譯組態。如需有關跨編譯 Erlang/OTP 的詳細資訊,請參閱 $ERL_TOP/INSTALL-CROSS.md 檔案。
    • 使用 DESTDIR 支援分段安裝。舊的損壞 INSTALL_PREFIX 也已修正。如需更多資訊,請參閱 $ERL_TOP/INSTALL.md 檔案。
    • 頂層 Makefilerelease 目標文件。如需更多資訊,請參閱 $ERL_TOP/INSTALL.md 檔案。
    • make install 現在預設會建立相對符號連結,而不是絕對符號連結。如需更多資訊,請參閱 $ERL_TOP/INSTALL.md 檔案。
    • $ERL_TOP/configure --help=recursive 現在可以運作,並列印所有帶有 configure 指令碼的應用程式的說明。
    • make all 之後直接執行 make installmake release 不再觸發其他重建。
    • 在沒有先執行 make all 的情況下執行 make installmake release 時,現在會使用現有的引導系統。
    • 當動態連結到 libssl.solibcrypto.so 時,cryptossl 應用程式會使用相同的執行階段函式庫路徑。執行階段函式庫搜尋路徑也已擴充。
    • erl_interfaceodbcconfigure 指令碼現在會以與 ERTS 相同的方式搜尋執行緒函式庫和執行緒函式庫的怪異之處。
    • 在 64 位元系統上建置時,odbc 應用程式的 configure 指令碼現在也會在 lib64lib/64 目錄中尋找 odbc 函式庫。
    • 現在會自動產生 erl_interface 應用程式中的 config.h.in 檔案,而不是靜態更新,這降低了沒有任何效果的 configure 測試的風險。

    (感謝 Henrik Riomar 的建議和測試)

    (感謝 Winston Smith 的 AVR32-Linux 跨組態和測試)

    * 可能的不相容性 *

    自身 ID:OTP-8323

  • 加密模組現在支援 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/5des_ede3_cbc_decrypt/5 已分別重新命名為 des3_cbc_encrypt/5des3_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_finishsha_finish 已變更為 md5_finalsha_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

新的應用程式。