Tiga tahun setelah awal pengembangan menerbitkan rilis Sequoia 1.0. Ini adalah implementasi Rust dari OpenPGP yang berisi pustaka fungsi dan alat baris perintah yang ekstensif. Rilis diterbitkan setelah pengembang menyelesaikan pekerjaan pada API tingkat rendah - itu baru saja menerapkan standar OpenPGP sepenuhnya.
Semua ini ditulis dalam Rust, dan paket didistribusikan di bawah lisensi GPLv2 +. Ada versi untuk semua platform utama - Linux, FreeBSD, Windows, macOS, Android dan iOS. Tim pengembangannya kecil, berdasarkan tiga developer GnuPG dari g10code. Perintah yang sama membuat layanan kunci Hagrid, yang digunakan di layanan keys.openpgp.org.... Tentang apa paketnya - di bawah potongan.
Tujuan utama yang ditetapkan oleh pengembang adalah mendesain ulang arsitektur secara lengkap dan penggunaan teknik baru untuk meningkatkan keamanan dan keandalan basis kode.
Untuk meningkatkan tingkat perlindungan di Sequoia, selain alat pemrograman yang aman menggunakan bahasa Rust, perlindungan kesalahan diterapkan di tingkat API. Contohnya adalah ketidakmampuan untuk secara tidak sengaja mengekspor konten kunci pribadi, karena operasi ekspor default memerlukan pemilihan eksplisit. Selain itu, API menjamin langkah-langkah penting yang hilang selama pembaruan tanda tangan digital. Operasi ini harus memperbarui waktu pembuatan, algoritme hashing, dan penerbit tanda tangan.
Selain itu, para pengembang sangat paham dengan kekurangan gnuPGP karena mereka adalah pembuat proyek ini. Dalam rilis baru, mereka mencoba menyingkirkannya. Misalnya, langkah-langkah telah diambil untuk menghilangkan desinkronisasi fungsi alat baris perintah dengan pustaka fungsi. Beberapa tindakan hanya dapat dilakukan di antarmuka utilitas itu sendiri. Selain itu, masalah kopling yang terlalu erat antar komponen telah hilang - hal itu yang membuatnya sulit untuk melakukan perubahan pada basis kode. Akibatnya - kebingungan dan kompleksitas dalam organisasi pengujian unit.
Pengembang telah membuat alat inspeksi paket dengan mengintegrasikannya dengan parser. Mereka memungkinkan Anda untuk menyederhanakan pengembangan, debugging, dan analisis insiden. Selain itu, pengguna mendapat kesempatan untuk menganalisis secara visual struktur pesan terenkripsi, termasuk tanda tangan dan kunci digital.
Sequoia juga mengembangkan utilitas baris perintah sq dengan dukungan subperintah gaya Git, program sqv (pengganti gpgv ) untuk memverifikasi tanda tangan yang terpisah, utilitas sqop (Stateless OpenPGP CLI), dan pustaka sequoia-openpgp . Pengembang telah menyediakan binding untuk bahasa C dan Python.
Rilis baru ini mendukung sebagian besar fitur khusus untuk standar OpenPGP, termasuk enkripsi, dekripsi, pembuatan, dan verifikasi tanda tangan digital. Adapun fitur-fitur canggih, itu menambahkan dukungan untuk verifikasi dengan tanda tangan digital yang disediakan secara terpisah (tanda tangan terpisah), adaptasi untuk integrasi dengan manajer paket (APT, RPM, kargo, dll.) Dan kemampuan untuk membatasi tanda tangan dengan nilai ambang dan waktu.
Ada juga dua opsi API - level rendah, dan, karenanya, level tinggi. Untuk yang pertama, ini paling akurat mereproduksi kemampuan OpenPGP dan ekstensi terkait. Selain itu, ia menyediakan panggilan untuk pemrosesan pesan tanpa buffer, parsing, dan serialisasi bidang dalam sertifikat dan kunci. API kedua, yang tingkat tinggi, mencakup kemampuan helper dan domain khusus. Ini adalah penyimpanan kunci publik dan fungsi akses jaringan. Sayangnya, API tingkat tinggi masih akan disempurnakan - ini hanya pada tahap awal pengembangan.
Menariknya, para pengembang tidak terburu-buru dengan rilisnya, meskipun sebagian besar fitur dan kapabilitas saat ini sudah siap setahun yang lalu. Mereka lebih suka memeriksa dan memeriksa ulang basis kode untuk menemukan bug. Selain itu, tim telah menulis dokumentasi yang komprehensif dengan referensi ke OpenPGP. Pengembang tidak melupakan kasus penggunaan.
Rilis 1.0 sekarang menyertakan peti sequoia-openpgp dan utilitas verifikasi tanda tangan digital sqv . Dan inilah CLI persegidan API tingkat tinggi belum distabilkan dan sedang diselesaikan. Dalam waktu dekat, tim pengembangan berencana untuk mengintegrasikan layanan untuk menyimpan kunci privat dan publik, menambahkan dukungan untuk tanda tangan digital yang tidak terenkripsi, dan kemampuan untuk menggunakan ekspresi reguler untuk menentukan tanda tangan tepercaya.