Closed2

GopenPGP について軽く調べておく

SpiegelSpiegel

GopenPGP は非推奨になった golang.org/x/crypto/openpgp の代替となる github.com/ProtonMail/go-crypto パッケージと,その上位ライブラリである github.com/ProtonMail/gopenpgp パッケージで構成されている。

https://gopenpgp.org/

golang.org/x/crypto/openpgp が非推奨になった経緯は以前に私のブログで紹介している。

https://text.baldanders.info/release/2021/04/gpgpdump-v0_12_2-is-released/

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 などの組み込みを目指している。この辺をサポートしてくれるなら有難い。

https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-07

github.com/ProtonMail/gopenpgp パッケージについては以下の記事にコード例があるので参考になるかもしれない。というか,この記事で GopenPGP というサイトができてるのを知ったのだが。

https://qiita.com/KEINOS/items/705f67cf47262f31dd19

ぶっちゃけ github.com/ProtonMail/go-crypto パッケージは緊急避難的な措置かと思っていたが, golang.org/x/crypto にはない Brainpool アルゴリズムや AEAD の EAX mode や OCB mode もサポートしてるっぽいので,本気で使える(運用できる)パッケージと考えていいかもしれない。

他のデータ暗号システムでも同じだが,大事なことは,実は鍵の取扱いをどうするかってことだったりする。特に OpenPGP のように鍵ペアを永続的に保持する必要がある場合は,鍵を管理するキーストアをどう設計するかがとても重要。この点で GnuPG 以外の OpenPGP 実装をあまり信用していないのだが, GopenPGP と GnuPG を組み合わることができるなら面白いかもしれない。

このスクラップは2022/11/27にクローズされました