Menggunakan pakej Golang golang.org/x/crypto/ed25519, percubaan untuk mendapatkan semula kunci awam yang sepadan dengan kunci persendirian yang diberikan menghasilkan hasil yang berbeza daripada yang dijangkakan. Khususnya, pustaka mengembalikan 32 bait terakhir Kunci Pengesahan Peribadi (PVK), manakala data ujian yang disediakan menunjukkan ini tidak betul.
Percanggahan timbul daripada format berbeza yang digunakan untuk ed25519 kunci peribadi. Pelaksanaan Golang mengikut konvensyen RFC 8032, yang mentakrifkan kunci persendirian sebagai gabungan benih 32 bait dengan kunci awam 32 bait.
Walau bagaimanapun, kunci persendirian yang disediakan dalam ujian BitTorrent BEP-0044 data ialah hasil 64-bait cincangan SHA512 benih, dan format ini tidak boleh ditukar terus kerana sifat sehala fungsi pencincangan.
Untuk menggunakan Pustaka Golang dengan data ujian yang diberikan, versi pustaka yang diubah suai diperlukan yang membolehkan penjanaan tersuai kunci awam dan tandatangan daripada format kunci persendirian yang dicincang. Ini boleh dicapai dengan menyalin kod yang berkaitan daripada pustaka dan mengubah suai pelaksanaan untuk menampung format yang berbeza.
Kod yang diubah suai termasuk:
Menggunakan fungsi yang diubah suai ini, adalah mungkin untuk mereplikasi vektor ujian dijangka, yang termasuk kunci awam dan tandatangan.
Atas ialah kandungan terperinci Mengapakah golang.org/x/crypto/ed25519 Mengembalikan Kunci Awam Tidak Dijangka untuk Data Ujian BitTorrent BEP-0044?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!