Development
BIP32 的邊緣案例
我正在嘗試編寫具有完整測試覆蓋率的BIP0032程式碼,但遇到了這些非常罕見的邊緣情況:
私有父密鑰→私有子密鑰
在 parse256(IL) ≥ n 或 ki = 0 的情況下,生成的鍵是無效的,應該繼續 i 的下一個值。(注意:這在 2^127 中的機率低於 1。)
公共父密鑰→公共子密鑰
如果 parse256(IL) ≥ n 或 Ki 是無窮遠點,則生成的鍵無效,應該繼續 i 的下一個值。
我沒有圍繞這些條件編寫任何程式碼,因為沒有測試案例來證明我做得正確,這是毫無意義的。
我已經使用從另一個庫生成的 3000 萬個地址成功地測試了我的程式碼,但我認為找到這些邊緣情況之一的機會要高於 50/50,我必須按以下順序檢查
10^19
(來源:生日攻擊) .所以我的問題是,有沒有人有這些案例的測試向量?
另一種方法是進行白盒測試,將錯誤
IL
值直接傳遞給其他私有函式,但我寧願進行黑盒測試。
我懷疑任何人都會有這樣的價值,因為它需要大量的計算。一種方法是猴子修補您的 HMAC-SHA512 函式以返回一個帶有 32 個前導零字節的值,以便進行測試。