檢視原始碼 Public_Key 發行說明

Public_Key 1.17

改進和新功能

  • public_key:cacerts_load/1 現在可以透過應用程式環境進行設定。

    自有 ID:OTP-19321 輔助 ID: PR-8920

  • 在 MacOS 上,CA 憑證現在也會從系統鑰匙串載入。

    自有 ID:OTP-19375 輔助 ID: PR-8844

Public_Key 1.16.4

已修正的錯誤和故障

  • 如果憑證同時定義了 ext-key-usagekey-usage,則應檢查這些用法是否彼此一致。這將影響到,當 ext-key-usages 被標記為關鍵,且其用法與 key-use 一致時,該憑證可以被視為有效,而無需對 ext-key-useage 擴充功能進行強制性的應用程式特定檢查。

    自有 ID:OTP-19240 輔助 ID: PR-8840, OTP-19532

  • 當解碼僅包含公用 EDDSA 金鑰的 PEM 檔案時,正確處理 EDDSA 金鑰的解碼。

    自有 ID:OTP-19350 輔助 ID: GH-9009, PR-9053

Public_Key 1.16.3

已修正的錯誤和故障

  • 引入 verify_fun/4 不幸地為一些特定的路徑驗證錯誤引入了參數切換,導致在這些情況下,verify_fun/3 可能會以 DER 憑證而不是解碼憑證來調用,並且在這種情況下,verify_fun/4 中的憑證順序會顛倒。

    自有 ID:OTP-19245 輔助 ID: Gh-8832

改進和新功能

  • 不要隱藏 crypto badarg 的原因,此錯誤處理增強功能有助於偵錯。這些類型的執行階段錯誤沒有記錄,不應依賴它們進行匹配,它們旨在及早捕獲輸入錯誤。

    自有 ID:OTP-19238

Public_Key 1.16.2

已修正的錯誤和故障

  • 為了完整性,處理 rsa_pss 隱式預設值,儘管這可能不常用,因為它提供的安全性非常弱。

    自有 ID:OTP-19179

  • public_key:cacerts_load() 函數在某些錯誤情況下可能會返回 undefined 而不是 {error, Reason}

    自有 ID:OTP-19183 輔助 ID: GH-8604

  • 新增了對 DragonFly 的支援。

    自有 ID:OTP-19191 輔助 ID: PR-8703

改進和新功能

  • RSA 加密函數的棄用已還原,因為仍然存在使用 PKCS-1 以外的其他填充模式的合法用例。

    雖然使用 PCKS-1 填充搭配某些版本的 cryptolib 可以被認為是安全的,但我們仍然建議使用其他對神諭攻擊不太敏感的演算法。

    自有 ID:OTP-19163

  • 現在可以使用 4 個參數的驗證函數,讓使用者函數可以存取憑證的編碼和解碼版本。當編碼錯誤導致重新編碼不可靠時,這是一種理想的解決方案。如果需要編碼版本,這也可以節省一些工作負載。

    請注意,不建議僅使用解碼的憑證調用 public_key:pkix_path_validation/3,因為存在解碼的解決方案,儘管只要不需要這些解決方案它就可以正常工作。

    如果在調用 public_key 之前需要解碼版本,建議使用 combined_cert-類型來避免重複解碼。請注意,路徑驗證演算法本身始終需要憑證的編碼和解碼版本。

    ssl 實作現在將受益於使用此函數而不是模擬 verify_fun/4。

    自有 ID:OTP-19169

Public_Key 1.16.1

已修正的錯誤和故障

  • 修復 dnsName 約束檢查中的錯誤,可能導致有效的憑證在路徑驗證期間被視為無效。

    自有 ID:OTP-19100 輔助 ID: GH-8482, PR-8508

Public_Key 1.16

改進和新功能

  • ssl 客戶端可以協商和處理憑證狀態請求(客戶端上的 OCSP Stapling 支援)。

    感謝 voltone 進行互通性測試和相關討論。

    自有 ID:OTP-18606 輔助 ID: OTP-16875,OTP-16448

  • public_key:cacerts_get/0 失敗時的例外原因已改進。

    自有 ID:OTP-18609 輔助 ID: GH-7295, PR-7302

  • 金鑰自訂支援已擴展,允許硬體安全模組 (HSM) 或可信任平台模組 (TPM) 的實作者具有靈活性。

    自有 ID:OTP-18876 輔助 ID: PR-7898, PR-7475

  • 文件已移轉為使用 Markdown 和 ExDoc。

    自有 ID:OTP-18955 輔助 ID: PR-8026

  • 現有函數 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

Public_Key 1.15.1.4

已修正的錯誤和故障

  • 如果憑證同時定義了 ext-key-usagekey-usage,則應檢查這些用法是否彼此一致。這將影響到,當 ext-key-usages 被標記為關鍵,且其用法與 key-use 一致時,該憑證可以被視為有效,而無需對 ext-key-useage 擴充功能進行強制性的應用程式特定檢查。

    自有 ID:OTP-19240 輔助 ID: PR-8840, OTP-19532

  • 當解碼僅包含公用 EDDSA 金鑰的 PEM 檔案時,正確處理 EDDSA 金鑰的解碼。

    自有 ID:OTP-19350 輔助 ID: GH-9009, PR-9053

Public_Key 1.15.1.3

改進和新功能

  • 不要隱藏 crypto badarg 的原因,此錯誤處理增強功能有助於偵錯。這些類型的執行階段錯誤沒有記錄,不應依賴它們進行匹配,它們旨在及早捕獲輸入錯誤。

    自有 ID:OTP-19238 輔助 ID: PR-8831

Public_Key 1.15.1.2

已修正的錯誤和故障

  • 為了完整性,處理 rsa_pss 隱式預設值,儘管這可能不常用,因為它提供的安全性非常弱。

    自有 ID:OTP-19179

Public_Key 1.15.1.1

已修正的錯誤和故障

  • 修復 dnsName 約束檢查中的錯誤,可能導致有效的憑證在路徑驗證期間被視為無效。

    自有 ID:OTP-19100 輔助 ID: GH-8482, PR-8508

Public_Key 1.15.1

已修正的錯誤和故障

  • 不應接受具有 X 個點的主機名稱前綴。

    自有 ID:OTP-18935 輔助 ID: GH-8021

Public_Key 1.15

已修正的錯誤和故障

  • ssl 應用程式將僅在終端實體憑證中驗證 id-kp-serverAuth 和 id-kp-clientAuth 擴展金鑰用法。public_key 應用程式將不允許 CA 憑證的「anyExtendedKeyUsage」,該憑證包含擴展金鑰用法擴展並將其標記為關鍵。

    自有 ID:OTP-18739

  • 將 ECC 處理現代化,以便 crypto FIPS 支援按預期工作。

    自有 ID:OTP-18854

改進和新功能

  • 支援路徑驗證中的憑證策略 - 如 RFC 5280 所述。

    自有 ID:OTP-17844 輔助 ID: ERIERL-738

  • 在 Illumos 上為 cacerts 新增更多搜尋路徑。

    自有 ID:OTP-18814 輔助 ID: PR-7435

  • 使 pkix_path_validation/3 的 verify_fun 可以處理無效的日期格式

    自有 ID:OTP-18867 輔助 ID: GH-7515

Public_Key 1.14.1

已修正的錯誤和故障

  • 國家/地區名稱比較應不區分大小寫

    自有 ID:OTP-18718 輔助 ID: GH-7546

  • 新增檢查以不允許路徑中存在重複的憑證

    自有 ID:OTP-18723 輔助 ID: GH-6394

Public_Key 1.14

改進和新功能

  • 透過在嵌入模式的啟動順序中新增額外步驟(該步驟會執行所有 on_load 處理常式,而不是依賴稍後在核心監督樹啟動時對它們的明確調用)來改進啟動期間對 on_load 模組的處理。

    這主要是一種程式碼改進和 OTP 內部簡化,以避免未來的錯誤並簡化程式碼維護。

    自有 ID:OTP-18447

Public_Key 1.13.3.5

已修正的錯誤和故障

  • 如果憑證同時定義了 ext-key-usagekey-usage,則應檢查這些用法是否彼此一致。這將影響到,當 ext-key-usages 被標記為關鍵,且其用法與 key-use 一致時,該憑證可以被視為有效,而無需對 ext-key-useage 擴充功能進行強制性的應用程式特定檢查。

    自有 ID:OTP-19240 輔助 ID: PR-8840, OTP-19532

  • 當解碼僅包含公用 EDDSA 金鑰的 PEM 檔案時,正確處理 EDDSA 金鑰的解碼。

    自有 ID:OTP-19350 輔助 ID: GH-9009, PR-9053

Public_Key 1.13.3.4

改進和新功能

  • 不要隱藏 crypto badarg 的原因,此錯誤處理增強功能有助於偵錯。這些類型的執行階段錯誤沒有記錄,不應依賴它們進行匹配,它們旨在及早捕獲輸入錯誤。

    自有 ID:OTP-19238 輔助 ID: PR-8831

Public_Key 1.13.3.3

已修正的錯誤和故障

  • 為了完整性,處理 rsa_pss 隱式預設值,儘管這可能不常用,因為它提供的安全性非常弱。

    自有 ID:OTP-19179

Public_Key 1.13.3.2

修正錯誤與故障

  • ssl 應用程式將僅在終端實體憑證中驗證 id-kp-serverAuth 和 id-kp-clientAuth 擴展金鑰用法。public_key 應用程式將不允許 CA 憑證的「anyExtendedKeyUsage」,該憑證包含擴展金鑰用法擴展並將其標記為關鍵。

    自有 ID:OTP-18739

Public_Key 1.13.3.1

修正錯誤與故障

  • 國家/地區名稱比較應不區分大小寫

    自有 ID:OTP-18718 輔助 ID: GH-7546

Public_Key 1.13.3

修正錯誤與故障

  • 由於存在不同的憑證撤銷驗證解決方案,因此移動 'CRLDistributionPoints' 的解碼,使其僅在驗證過程中實際使用時才進行解碼。這將實現與使用具有無效空 CRLDistributionPoints 擴展的憑證的系統的互操作性,這些系統希望忽略這些擴展並通過其他方式進行驗證。

    自有 ID:OTP-18316 輔助 ID:GH-6402,PR-6883

  • public_key:pkix_path_validation 驗證 2050 年之後過期的憑證

    自有 ID:OTP-18356 輔助 ID:GH-6403

  • 在 MacOS 上呼叫 cacerts_load() 後,請勿在訊息佇列中留下結束訊息。

    自有 ID:OTP-18392 輔助 ID:GH-6656

改進與新功能

  • 將 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-18432 輔助 ID:GH-6672、PR-6793、PR-6784、PR-6787、PR-6785、PR-6682、PR-6800、PR-6797、PR-6798、PR-6799、PR-6796、PR-6813、PR-6671、PR-6673、PR-6684、PR-6694、GH-6677、PR-6696、PR-6670、PR-6674

Public_Key 1.13.2

修正錯誤與故障

  • 當預期使用 HTTP URI 時,忽略 LDAP URI。

    自有 ID:OTP-18333 輔助 ID:GH-6363

Public_Key 1.13.1

修正錯誤與故障

  • 在 cacerts_load/0 中支援更多 Linux 發行版。

    自有 ID:OTP-18154 輔助 ID:PR-6002

  • 更正 pki_asn1_type() 類型中可用的 asn1 類型名稱

    自有 ID:OTP-18189 輔助 ID:ERIERL-829

  • 針對 eddsa,簽署/驗證現在的行為與 OTP-24 及更早版本相同。

    自有 ID:OTP-18205 輔助 ID:GH-6219

Public_Key 1.13

改進與新功能

  • 新增用於擷取作業系統提供的 CA 憑證的功能。

    自有 ID:OTP-17798 輔助 ID:GH-5760

  • 允許將金鑰檔案密碼作為單個二進位輸入,也就是說,我們將資料類型變更為更符合目的邏輯的資料類型 iodata(),而不是 string()。

    自有 ID:OTP-17890

  • 已移除已棄用的 public_key 函數 ssh_decode/2、ssh_encode/2、ssh_hostkey_fingerprint/1 和 ssh_hostkey_fingerprint/2。

    它們分別由 ssh_file:decode/2、ssh_file:encode/2、ssh:hostkey_fingerprint/1 和 ssh:hostkey_fingerprint/2 取代。

    請注意,decode/2 和 encode/2 並非完全替代的函數,可能需要進行一些微小的變更。如需更多資訊,請參閱手冊。

    * 潛在的不相容性 *

    自有 ID:OTP-17921

Public_Key 1.12.0.2

修正錯誤與故障

  • 國家/地區名稱比較應不區分大小寫

    自有 ID:OTP-18718 輔助 ID: GH-7546

Public_Key 1.12.0.1

修正錯誤與故障

  • 更正 pki_asn1_type() 類型中可用的 asn1 類型名稱

    自有 ID:OTP-18189 輔助 ID:ERIERL-829

Public_Key 1.12

改進與新功能

  • 支援 ssl:connect 函數中受保護金鑰檔案的密碼函數。

    自有 ID:OTP-17816 輔助 ID:PR-5607

Public_Key 1.11.3

修正錯誤與故障

  • 避免重新編碼已解碼的憑證。這可能會導致意外的失敗,因為在解碼時可以容忍一些細微的編碼錯誤,但是如果重新編碼解碼的值,則會建立另一個位元組序列。

    自有 ID:OTP-17657

Public_Key 1.11.2

修正錯誤與故障

  • public_key:pkix_sign/2 現在會遵守提供的輸入參數中的鹽長度。如果未使用建議的預設值,則早期可能會導致不正確的簽名。

    自有 ID:OTP-17534 輔助 ID:GH-5054、PR-5057

改進與新功能

  • 在解碼 'ECPrivateKey' 時,解除私密金鑰的包裝。如需更精確的資訊,請參閱 RFC 8410 第 7 節。

    自有 ID:OTP-17609 輔助 ID:GH-5157、GH-5156

Public_Key 1.11.1

修正錯誤與故障

  • 如 GH-4877 中所報告,處理舊根憑證過期時的交叉簽署根憑證。

    自有 ID:OTP-17475 輔助 ID:GH-4877

Public_Key 1.11

改進與新功能

  • TLS 連線現在支援 EdDSA 憑證。

    自有 ID:OTP-17142 輔助 ID:PR-4756、GH-4637、GH-4650

  • 函數 public_key:ssh_encode/2、public_key:ssh_decode/2、public_key:ssh_hostkey_fingerprint/1 和 public_key:ssh_hostkey_fingerprint/2 已棄用。

    替換函數可在 SSH 中找到,請參閱 Erlang/OTP 文件中的 棄用章節。

    自有 ID:OTP-17352

  • 加強憑證處理的文件和記錄。

    自有 ID:OTP-17384 輔助 ID:GH-4800

Public_Key 1.10.0.1

修正錯誤與故障

  • 如 GH-4877 中所報告,處理舊根憑證過期時的交叉簽署根憑證。

    自有 ID:OTP-17475 輔助 ID:GH-4877

Public_Key 1.10

修正錯誤與故障

  • 修正不區分大小寫的主機名稱檢查。

    自有 ID:OTP-17242 輔助 ID:GH-4500

改進與新功能

  • 將受信任錨點憑證到期時間的健全性檢查新增至 pkix_path_validation/3。雖然錨點被視為受信任的輸入,但此健全性檢查確實為 public_key 應用程式的使用者提供了額外的安全性,因為此屬性需要在使用時進行檢查,並且與此處執行的其他檢查非常吻合。

    自有 ID:OTP-16907

  • 調整測試憑證的產生,以符合 RFC 5280 中有關憑證有效性格式化的規則

    自有 ID:OTP-17111

Public_Key 1.9.2

改進與新功能

  • 更正 pkix_path_validation/3 的 dialyzer 規格

    自有 ID:OTP-17069

Public_Key 1.9.1

修正錯誤與故障

  • 修正 pem_decode 在輸入無效時會當機的問題。

    自有 ID:OTP-16902 輔助 ID:ERIERL-534

Public_Key 1.9

修正錯誤與故障

  • 修正解碼 PEM 檔案時不重要的空格問題。

    自有 ID:OTP-16801 輔助 ID:ERL-1309

改進與新功能

  • 實驗性 OCSP 用戶端支援。

    自有 ID:OTP-16448

  • 針對自簽憑證使用使用者回傳的路徑驗證錯誤。這允許 ssl 應用程式的使用者在定義的警示範圍內,自訂產生的 TLS 警示。

    專屬 ID:OTP-16592

  • 新增 API 函式以擷取 X509 憑證的主題 ID

    專屬 ID:OTP-16705

Public_Key 1.8

改進和新功能

  • 新增對 RSA-PSS 簽章機制的支持

    專屬 ID:OTP-15247

  • 舊 Crypto API 中已棄用的函式呼叫替換為其替代函式的呼叫。

    專屬 ID:OTP-16346

Public_Key 1.7.2

改進和新功能

  • 新增對使用 Edward 曲線進行金鑰交換以及在簽章驗證中使用 PSS-RSA 填充的支持。

    專屬 ID:OTP-16528

Public_Key 1.7.1

修正的錯誤和故障

  • 修正了可能導致 CRL 驗證失敗的 CRL 處理。當 CRL 分發點明確指定 CRL 發行者時,而該發行者未使用回退機制時,可能會發生這種情況。

    專屬 ID:OTP-16156 輔助 ID:ERL-1030

Public_Key 1.7

修正的錯誤和故障

  • 支援使用 AES 的基於密碼的加密

    專屬 ID:OTP-15870 輔助 ID:ERL-952

改進和新功能

  • 變更 Dialyzer 規格以避免混淆

    專屬 ID:OTP-15843 輔助 ID:ERL-915

Public_Key 1.6.7

修正的錯誤和故障

  • 傳遞給 crypto 的 RSA 選項,用於使用公鑰或私鑰進行加密和解密。

    專屬 ID:OTP-15754 輔助 ID:ERL-878

  • 修正了由 digest_type() 的錯誤型別規格引起的 Dialyzer 警告。

    此變更更新了 digest_type() 和使用此引數型別運作的函式,使其接受 'sha1' 和 'sha' 作為 digest_type()。

    專屬 ID:OTP-15776

改進和新功能

  • 新增讀取使用舊 PEM 加密(使用 AES-256)加密的 PEM 檔案的可能性

    專屬 ID:OTP-13726

  • 放寬憑證的解碼,以便可以接受「無害」的第三方編碼錯誤,但 public_key 應用程式不會產生此類錯誤。這增加了對使用不正確的三字元國家/地區代碼的接受,PKIX 標準使用兩字元的國家/地區代碼。也接受國家/地區代碼以 utf8 編碼,但規格說明它應該是 ASCII。

    專屬 ID:OTP-15687 輔助 ID:PR-2162

Public_Key 1.6.6.1

修正的錯誤和故障

  • 支援使用 AES 的基於密碼的加密

    專屬 ID:OTP-15870 輔助 ID:ERL-952

Public_Key 1.6.6

改進和新功能

  • 從 OTP-22 向後移植錯誤修正 ERL-893 和增強文檔,以解決 ssl 應用程式使用者的 Dialyzer 警告。

    此變更也會影響 public_key、eldap(和 inet doc)。

    專屬 ID:OTP-15785 輔助 ID:ERL-929、ERL-893、PR-2215

Public_Key 1.6.5

改進和新功能

  • 新增 Dialyzer 型別的匯出

    專屬 ID:OTP-15624

Public_Key 1.6.4

改進和新功能

  • 新增 ed25519 和 ed448 簽署/驗證。

    在 OTP 應用程式 crypto 下需要 OpenSSL 1.1.1 或更高版本作為 cryptolib。

    專屬 ID:OTP-15419 輔助 ID:OTP-15094

Public_Key 1.6.3

修正的錯誤和故障

  • 在 public_keys ASN1-spec 和 public_key:pkix_sign_types/1 中新增 DSA SHA2 oids

    專屬 ID:OTP-15367

Public_Key 1.6.2

修正的錯誤和故障

改進和新功能

  • 重新設計了 CRYPTO 和 PUBLIC_KEY 應用程式中的型別,並更正了一些錯誤。

    現在從型別產生文件,並做了一些說明。

    在 CRYPTO 使用者指南中新增了一個關於演算法詳細資訊(例如金鑰大小和可用性)的新章節。

    專屬 ID:OTP-15134

Public_Key 1.6.1

修正的錯誤和故障

  • public_key 中新產生的模數檔案中的某些金鑰長度並非普遍支援。這可能會導致 SSH 金鑰交換 diffie-hellman-group-exchange-sha* 失敗。

    現在已移除這些金鑰長度。

    專屬 ID:OTP-15151 輔助 ID:OTP-15113

Public_Key 1.6

修正的錯誤和故障

  • 更新對 base64 模組的呼叫,以符合該模組的型別規格。

    專屬 ID:OTP-14788 輔助 ID:OTP-14624

改進和新功能

  • 使用 uri_string 模組而不是 http_uri。

    專屬 ID:OTP-14902

  • 一個新的函式 - public_key:pkix_verify_hostname_match_fun/1 - 會傳回一個 fun,作為 public_key:pkix_verify_hostname/3 的選項 match_fun 或透過 ssl 傳遞。

    該 fun 根據引數中協定的特定規則進行驗證主機名稱比對。目前僅支援 https

    專屬 ID:OTP-14962 輔助 ID:ERL-542、OTP-15102

  • 完成 PKCS-8 編碼支援,並增強 'PrivateKeyInfo' 的解碼,使其符合 Erlang public_key API 的其餘部分。

    專屬 ID:OTP-15093

  • 產生了一個新的模數檔案。此檔案用於 SSH 中建議的 diffie-hellman-group-exchange-sha256 金鑰交換演算法。

    專屬 ID:OTP-15113

Public_Key 1.5.2

修正的錯誤和故障

  • 修正了 public_key:ssh_encode/2 中的一個錯誤,該錯誤使得可以在產生的二進位檔案中錯誤地使用另一種類型(例如 ECDSA)來編碼 RSA 金鑰。

    專屬 ID:OTP-14570 輔助 ID:ERIERL-52、OTP-14676

  • 修正了 public_key:generate_key/1 中參數化的 EC 金鑰的處理,以便它可以如預期般運作,而不是在 crypto 中引起執行階段錯誤。

    專屬 ID:OTP-14620

Public_Key 1.5.1

改進和新功能

  • 主機名稱驗證:在憑證的主題替代名稱延伸(subjAltName)中新增對一般名稱 iPAddress 的處理。

    專屬 ID:OTP-14653

  • 修正 pkix_test_data/1 中的金鑰處理,並使用一般範例郵件地址而不是現有的郵件地址。

    專屬 ID:OTP-14766

Public_Key 1.5

修正的錯誤和故障

  • public_key 現在以一致的方式處理橢圓曲線參數,以便可以正確地重新編碼解碼後的 ECDSA 金鑰。

    * 潛在的不相容性 *

    專屬 ID:OTP-14621 輔助 ID:ERL-480、ERL-481

改進和新功能

  • 使用以下項目擴充 crypto:sign、crypto:verify、public_key:sign 和 public_key:verify

    * 支援用於簽章的 RSASSA-PS 填充和用於 saltlength 設定
    * X9.31 RSA 填充。
    * NIST SP 800-57 第 1 部分中提到的用於 dss 簽章的 sha、sha224、sha256、sha384 和 sha512。
    * 用於 RSA 簽章的 ripemd160。

    這是由 potatosalad 於 2015 年 9 月發出的提取請求 838 的一半的手動合併。

    專屬 ID:OTP-13704 輔助 ID:PR838

  • 新增 API 函式 pkix_test_data/1,以方便自動化測試。這對於執行所謂的憑證鏈的 X509 憑證路徑驗證的應用程式(例如 TLS)很有用。

    專屬 ID:OTP-14181

  • 改進了錯誤傳播和報告

    專屬 ID:OTP-14236

  • RSAPrivateKey 版本設定為 'two-prime',而不是直接使用基礎列舉值。

    專屬 ID:OTP-14534

  • 已棄用的函式 crypto:rand_uniform/2 已替換為 rand:uniform/1

    專屬 ID:OTP-14608

Public_Key 1.4.1

修正的錯誤和故障

  • 修正了 public_key:generate_key({namedCurve,OID}) 的錯誤。

    專屬 ID:OTP-14258

改進與新功能

  • 使用映射(maps)來現代化用於 CRL 驗證的內部表示法。

    內部 ID: OTP-14111

  • 在 pkix_sign/2 中支援 EC 金鑰。

    內部 ID: OTP-14294

Public_Key 1.4

改進與新功能

  • 新的函式 pkix_verify_hostname/2,3 實作憑證主機名稱檢查。請參閱手冊和 RFC 6125。

    內部 ID: OTP-13009

  • 現在 ssh 主機金鑰指紋的產生也採用演算法列表,並回傳相應指紋的列表。請參閱 public_key:ssh_hostkey_fingerprint/2 以及 ssh:connect 中的選項 silently_accept_hosts

    內部 ID: OTP-14223

Public_Key 1.3

改進與新功能

  • 新的函式 public_key:ssh_hostkey_fingerprint/1,2 用於計算 SSH 主機金鑰指紋字串。

    內部 ID: OTP-13888 輔助 ID: OTP-13887

Public_Key 1.2

已修正的錯誤與故障

  • ASN-1 類型 GeneralName 可以有多個值,而不僅是最常見的目錄名稱,現在程式碼可以處理這種情況。

    內部 ID: OTP-13554

改進與新功能

  • 處理 PEM 編碼的 EC 公鑰。

    內部 ID: OTP-13408

Public_Key 1.1.1

已修正的錯誤與故障

  • 封裝的 PEM 標頭後應接續一個空行。

    內部 ID: OTP-13381 輔助 ID: seq13070

Public_Key 1.1

改進與新功能

  • 實作 ssh 的 'ecdsa-sha2-nistp256'、'ecdsa-sha2-nistp384' 和 'ecdsa-sha2-nistp521' 簽章演算法。請參閱 RFC 5656。

    內部 ID: OTP-12936

  • 現在有一個檔案 (public_key/priv/moduli) 列出大小-產生器-模數三元組。其目的是讓伺服器可以從預先產生的三元組列表中隨機選擇加密質數。這降低了對 Diffie-Hellman 協商進行某些攻擊的風險。

    請參閱 public_key:dh_gex_group/4 的參考手冊,其中描述了此處理方式。

    ssh 伺服器 (ssh:daemon) 使用此功能。

    內部 ID: OTP-13054 輔助 ID: OTP-13052

  • 依照 PKIX1Explicit88 中的註解建議,為不同的字串類型新增不同的上限。

    內部 ID: OTP-13132

Public_Key 1.0.1

改進與新功能

  • 文件增強功能

    內部 ID: OTP-12986

Public_Key 1.0

改進與新功能

  • public_key: 移除舊版開關 compact_bit_string

    亦即,位元字串將不會解碼為 {Unused, Binary},現在它們是 Erlang 位元字串。

    此外,compact_bit_string 也暗示舊版 legacy_erlang_types 開關,因此移除開關也會使 OCTET STRING 值表示為二進位制。

    未解碼的開放類型現在將會包裝在 asn1_OPENTYPE 元組中。

    這會變更 public_key API 回傳的記錄中的某些值,使得此變更可能造成不相容。

    * 潛在的不相容性 *

    內部 ID: OTP-12110

Public_Key 0.23

改進與新功能

  • 改進/擴展對 CRL 處理的支援。

    內部 ID: OTP-12547 輔助 ID: OTP-10362

Public_Key 0.22.1

已修正的錯誤與故障

  • 新增對 PBES2 的遺失編碼支援,並完成了對不完整的 PBES1 的支援。

    內部 ID: OTP-11915

Public_Key 0.22

已修正的錯誤與故障

  • 修正不正確的 dialyzer 規格和類型,並增強文件。

    感謝 Ayaz Tuncer。

    內部 ID: OTP-11627

  • 已修正下列應用程式的應用程式升級 (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

    已將用於測試 appup 檔案的新測試公用程式新增至 test_server。現在 OTP 中的大多數應用程式都使用此公用程式。

    (感謝 Tobias Schlager)

    內部 ID: OTP-11744

改進與新功能

  • 將橢圓曲線定義從 crypto NIF/OpenSSL 移至 Erlang 程式碼中,新增 RFC-5639 brainpool 曲線並使 TLS 使用它們 (RFC-7027)。

    感謝 Andreas Schultz

    內部 ID: OTP-11578

  • 處理沒有擴展的 v1 CRL,並修正 CRL 驗證期間 IDP (簽發分配點) 比較的問題。

    感謝 Andrew Thompson

    內部 ID: OTP-11761

Public_Key 0.21

改進與新功能

  • 修正 public_key 文件中的一個小錯字。感謝 Tomas Morstein。

    內部 ID: OTP-11380

  • public_key: 針對錯誤編碼的 utf8 emailAddress 的解決方法。感謝 Andrew Bennett。

    內部 ID: OTP-11470

Public_Key 0.20

改進與新功能

  • 擴展 PKCS-7 以支援 SCEP (簡單憑證註冊協定)。

    內部 ID: OTP-10874

  • public_key:pem_entry_decode/2 現在可處理 AES-128-CBC 加密的金鑰。感謝 Simon Cornish。

    內部 ID: OTP-11281

Public_Key 0.19

改進與新功能

  • 新增對 ISO OID 1.3.14.3.2.29 和 1.3.14.3.2.27 的支援,這些 OID 有時會取代 PKCS 定義的 OID 1.2.840.113549.1.1.5 和 1.2.840.10040.4.3。新增函式 pkix_sign_types:/1,將 OID 轉換為演算法原子,例如:

    public_key:pkix_sign_types({1,3,14,3,2,29}). {sha,rsa}

    內部 ID: OTP-10873

  • 整合來自 Andreas Schultz 的橢圓曲線貢獻。

    為了能夠支援 SSL/TLS 中的橢圓曲線加密套件,已在 public_key 和 crypto 中新增用於處理橢圓曲線基礎架構的功能。

    這也導致 crypto API 的重寫,以獲得一致性並消除不必要的開銷。所有使用 crypto 的 OTP 應用程式都已更新為使用新的 API。

    影響:橢圓曲線密碼學 (ECC) 提供與其他公鑰演算法相當的安全性,但金鑰大小較小。較小的金鑰大小可節省電力、記憶體、頻寬和計算成本,這使得 ECC 對於受限的環境特別有吸引力。

    內部 ID: OTP-11009

Public_Key 0.18

已修正的錯誤與故障

  • 修正 public_key 中 subjectPublicKeyInfo 類型註解。感謝 Ryosuke Nakai。

    內部 ID: OTP-10670

改進與新功能

  • public_key 現在支援 CRL 驗證並記錄函式 public_key:pkix_path_validation/3

    內部 ID: OTP-7045

  • 已修正某些超出 PDF 頁面寬度的範例。

    內部 ID: OTP-10665

  • 修正 public_key 規格中的錯字。

    內部 ID: OTP-10723

  • 修正 PKCS-10 文件並新增一些 PKCS-9 支援,這些支援相當常被 PKCS-10 使用。稍後將新增對 PKCS-9 的完整支援。

    內部 ID: OTP-10767

Public_Key 0.17

已修正的錯誤與故障

  • ssh_decode 現在可以正確處理行尾包含空格的註解。

    內部 ID: OTP-9361

  • 新增遺失的 sha224 和 sha384 參考。

    內部 ID: OTP-9362 輔助 ID: seq12116

改進與新功能

  • public_key 現在支援 PKCS-10,並包含對 PKCS-7 的實驗性支援。

    內部 ID: OTP-10509 輔助 ID: kunagi-291 [202]

Public_Key 0.16

改進與新功能

  • 新增 crypto 和 public_key 對雜湊函式 SHA224、SHA256、SHA384 和 SHA512 的支援,以及使用這些雜湊函式的 hmac 和 rsa_sign/verify 支援。感謝 Andreas Schultz 製作原型。

    內部 ID: OTP-9908

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

    內部 ID: OTP-10065

Public_Key 0.15

改進和新功能

  • 更改了 ssh 實作,對所有公鑰處理使用 public_key 應用程式。這也是啟用回呼 API 的第一步,該 API 用於提供公鑰和處理受密碼短語保護的金鑰。

    此外,改進了測試套件,使其不會將使用者的金鑰複製到測試伺服器目錄,因為這是一種安全隱憂。同時,也修正了在此過程中發現的 IPv6 和檔案存取問題。

    此變更也解決了 OTP-7677 和 OTP-7235 的問題

    此變更還涉及對 public_keys ssh 函數的一些更新。

    內部 ID:OTP-9911

Public_Key 0.14

改進和新功能

  • public_key、ssl 和 crypto 現在支援 PKCS-8

    內部 ID:OTP-9312

  • 如果 asn1 應用程式可用,asn1 解碼器/編碼器現在會使用來自該應用程式的執行階段 NIF。

    內部 ID:OTP-9414

Public_Key 0.13

修正錯誤和故障

  • 將 "a ssl" 替換為 "an ssl",重新縮排 pkix_path_validation/3,進行微不足道的文件修正 (感謝 Christian von Roques)

    內部 ID:OTP-9464

Public_Key 0.12

改進和新功能

  • public_key 應用程式現在支援 ssh 公鑰檔案的編碼/解碼。

    內部 ID:OTP-9144

Public_Key 0.11

改進和新功能

  • 允許 public_key 模組解碼和編碼使用 SubjectPublicKeyInfo 格式編碼的 RSA 和 DSA 金鑰。當對 RSA 或 DSA 公鑰類型呼叫 pem_entry_encode 時,金鑰會以 SubjectPublicKeyInfo 格式包裝。

    內部 ID:OTP-9061

Public_Key 0.10

改進和新功能

  • 改進的 Dialyzer 規格。

    內部 ID:OTP-8964

Public_Key 0.9

改進和新功能

  • 更新了 ssl 以忽略違反憑證 asn1 規格的 CA 憑證,並更新了公鑰 asn1 規格以處理繼承的 DSS 參數。

    內部 ID:OTP-7884

  • 變更了 ssl 實作,以保留舊選項 {verify, 0} 的向後相容性,該選項應等效於 {verify, verify_none},還區分了未知 CA 和自我簽署對等憑證的情況,並恢復了已棄用函數 public_key:pem_to_der/1 的傳回值。

    內部 ID:OTP-8858

  • 更好地處理 v1 和 v2 憑證。V1 和 v2 憑證沒有任何擴充功能,因此 validate_extensions 應該只接受沒有擴充功能的情況,而不是以 missing_basic_constraints 子句結尾。

    內部 ID:OTP-8867

  • 變更了驗證函數,使其透過使用 valid_peer 或 valid 作為驗證函數的第二個參數來區分對等憑證和 CA 憑證。否則,可能並非總是簡單或甚至可能知道何時到達對等憑證。

    * 潛在的不相容性 *

    內部 ID:OTP-8873

Public_Key 0.8

修正錯誤和故障

  • 變更了 ssl 和 public_key 中未知 CA 憑證的處理方式,使其按預期工作。

    內部 ID:OTP-8788

改進和新功能

  • 修訂 public_key API - 清理並記錄了 public_key API,使其適用於一般用途,同時也變更了 ssl 以使用新的 API。

    內部 ID:OTP-8722

  • 新增了當路徑驗證認為憑證有效時,將呼叫驗證函數的功能,允許存取路徑中每個憑證的使用者應用程式。同時嘗試驗證 subject-AltName,如果無法驗證,則讓應用程式驗證。

    內部 ID:OTP-8825

Public_Key 0.7

修正錯誤和故障

  • public_key 無法處理沒有任何擴充功能的憑證。

    內部 ID:OTP-8626

改進和新功能

  • 程式碼清理和小錯誤修正。

    內部 ID:OTP-8649

Public_Key 0.6

改進和新功能

  • 支援 Diffie-Hellman。ssl-3.11 需要 public_key-0.6。

    內部 ID:OTP-7046

  • 將 ssl 值的擴充金鑰使用測試移至 ssl。

    內部 ID:OTP-8553 輔助 ID:seq11541, OTP-8554

Public_Key 0.5

改進和新功能

  • 新增 public_key:pkix_transform/2 以允許 ssl 在憑證請求期間傳送 CA 清單。

    注意:SSL (new_ssl) 需要 public_key-0.5。ssl 用法。

    內部 ID:OTP-8372

Public_Key 0.4

改進和新功能

  • 現在使用大多數平台上存在的開放原始碼工具 (xsltproc 和 fop) 來建置文件。一個明顯的變更是移除了框架。

    內部 ID:OTP-8250

Public_Key 0.3

修正錯誤和故障

  • 憑證中未知的屬性會被保留編碼,而不是崩潰。由 Will "wglozer" 修補,感謝。

    內部 ID:OTP-8100

改進和新功能

  • 允許 public_key:pem_to_der/[1,2] 除了檔案名稱之外,還將二進位檔作為引數。由 Geoff Cant 修補,感謝。

    內部 ID:OTP-8142

Public_Key 0.2

改進和新功能

  • 由於對 ssl 和 public_key 應用程式進行了更廣泛的測試,因此 X509 憑證處理已得到擴充和改進。憑證處理的更多擴充功能尚待實作。

    內部 ID:OTP-7860

Public_Key 0.1

改進和新功能

  • 第一個版本。

    內部 ID:OTP-7637