Pengujian kode kriptografi pada assembly sulit karena sifat waktu konstan membuat laporan cakupan biasa tidak menunjukkan jalur data sebenarnya yang dipakai.
Untuk Go 1.26, diperkenalkan kerangka mutation testing khusus assembly guna mengidentifikasi instruksi dan jalur data yang belum diuji.
Kerangka ini mengubah assembler Go dengan flag -mutlist (daftar target mutasi) dan -mut (mengganti instruksi berdasar program counter) sehingga mutasi terjadi sebelum encoding.
Prosesnya: kompilasi dengan -mutlist, lalu jalankan go test untuk setiap mutasi; jika tes tidak gagal, berarti jalur itu tidak ter-cover.
Mutasi menargetkan instruksi yang bergantung pada carry/borrow atau flag lain (ADCS, SBCS, ADC, SBC, CSEL) dengan menggantinya ke bentuk yang mengabaikan atau memaksa flag tanpa mengubah register atau flag akhir.
Penerapan pada assembly P-256 arm64 menemukan beberapa instruksi yang tak teruji, termasuk pada p256SubInternal terkait bug #20040, menunjukkan perlunya peningkatan cakupan dan pemecahan kode menjadi bagian lebih kecil.
Kerangka ini bertujuan meningkatkan keandalan perpustakaan kriptografi Go dan masih prototipe yang mungkin berubah sesuai masukan tim compiler.
Pekerjaan ini didukung oleh organisasi Geomys dan sponsor industri.
Get notified when new stories are published for "Berita Peretas 🇮🇩 Bahasa Indonesia"