GopenPGP について軽く調べておく
とりあえず,自ブログに紹介記事を書いた。
GopenPGP は非推奨になった golang.org/x/crypto/openpgp の代替となる github.com/ProtonMail/go-crypto パッケージと,その上位ライブラリである github.com/ProtonMail/gopenpgp パッケージで構成されている。
golang.org/x/crypto/openpgp が非推奨になった経緯は以前に私のブログで紹介している。
GopenPGP の目標は
GopenPGP is a high-level OpenPGP wrapper library developed by Proton Mail, as well as a fork of the golang crypto library, which the wrapper library is built on. The goal of this project is to provide an easy-to-use, open source encryption wrapper library for the developer community that is well-maintained, up-to-date with the latest OpenPGP RFC changes, and periodically audited for security.
(vis GopenPGP)
と書かれている。 OpenPGP は現在 RFC 4880 からのアップデートを議論中で AEAD などの組み込みを目指している。この辺をサポートしてくれるなら有難い。
github.com/ProtonMail/gopenpgp パッケージについては以下の記事にコード例があるので参考になるかもしれない。というか,この記事で GopenPGP というサイトができてるのを知ったのだが。
ぶっちゃけ github.com/ProtonMail/go-crypto パッケージは緊急避難的な措置かと思っていたが, golang.org/x/crypto にはない Brainpool アルゴリズムや AEAD の EAX mode や OCB mode もサポートしてるっぽいので,本気で使える(運用できる)パッケージと考えていいかもしれない。
他のデータ暗号システムでも同じだが,大事なことは,実は鍵の取扱いをどうするかってことだったりする。特に OpenPGP のように鍵ペアを永続的に保持する必要がある場合は,鍵を管理するキーストアをどう設計するかがとても重要。この点で GnuPG 以外の OpenPGP 実装をあまり信用していないのだが, GopenPGP と GnuPG を組み合わることができるなら面白いかもしれない。