
edwards25519楕円曲線の低レベルのGo実装であり、署名やDiffie-Hellmanのような高レベルの暗号プリミティブを構築するためのAPIを提供します。
import "filippo.io/edwards25519"
このライブラリはedwards25519楕円曲線を実装し、幅広い高レベルプリミティブを構築するために必要なAPIを公開しています。ドキュメントはpkg.go.dev/filippo.io/edwards25519で読めます。
このパッケージは上流の標準ライブラリパッケージcrypto/internal/fips140/edwards25519を追跡し、追加機能で拡張しています。
コードは元々、Go標準ライブラリ内のAdam Langleyの内部実装から派生し、George Tankersleyのパフォーマンス改善を含んでいます。その後、Henry de Valenceによってristretto255での使用のためにさらに開発され、最終的にGo 1.17でGo標準ライブラリにマージされました。
ほとんどのユーザーはこのパッケージを必要とせず、代わりに署名にはcrypto/ed25519、Diffie-Hellmanにはcrypto/ecdh、素数位数グループのロジックにはgithub.com/gtank/ristretto255を使用すべきです。ただし、現在内部のedwards25519パッケージやgithub.com/agl/edwards25519のフォークを使用している方にとって、このパッケージはより安全で高速かつ強力な代替手段となるはずです。
このパッケージはGoエコシステムにおけるedwards25519実装の乱立を抑制することを目的としているため、新しいAPIのリクエストやレビュー可能なパフォーマンス改善を歓迎します。