GopenPGP
本当は色々と試してから記事にしたかったのだが,しばらく時間が取れそうもないので,今回は簡単な紹介のみで。
GopenPGP は OpenPGP の 暗号化・復号・署名およびその検証 といった処理を行うための Go パッケージで,大きく2つのレイヤに分かれている。
- OpenPGP 暗号化ライブラリ(
golang.org/x/crypto/openpgp
からの fork) - 暗号化等の処理を簡単に行うためのラッパー
一応,経緯を紹介すると,2021年に Go 側が golang.org/x/crypto/openpgp
のメンテナンスを止めて非推奨(deprecated)にすると言いやがりまして。
まぁ,個人のプライバシーに敵対的な企業がホストする言語ですから(笑)
その後 Proton Mail が golang.org/x/crypto/openpgp
を fork したリポジトリを公開してメンテナンスを始めた。
これが github.com/ProtonMail/go-crypto
パッケージ。
この頃のことは私も記事を書いている。
当時は緊急避難的な措置かと思っていたが, Proton Mail 側は本格的に Go で OpenPGP 暗号化ライブラリを構築しようと考えたようだ。
これが github.com/ProtonMail/gopenpgp
にあたると思われる。
また github.com/ProtonMail/go-crypto
パッケージについても,現行の RFC 4880 だけでなく,次期 OpenPGP (RFC 4880bis) でサポート予定の AEAD の EAX モードや OCB モードもサポートしているようで,これを見ても Proton Mail 側の本気度が伺えるというものである。
OpenPGP についてはリファレンス実装としての GnuPG が有名だが,他にも JavaScript や Rust 等による実装が存在する。 こうした中でようやく Go でもまともな実装が出てきたというわけだ。
今年のうちは無理かもしれないが来年(2023年)に入ったら,ちょっと真面目に golang.org/x/crypto/openpgp
パッケージを弄ってみようかな,と考える所存であります。
ちゃんと時間が取れるといいなぁ。
ブックマーク
- 【Golang】Go で OpenPGP のペア鍵を生成する【GopenPGP】 - Qiita
- draft-ietf-openpgp-crypto-refresh-07 : 次期 OpenPGP ドラフト 2022-10-23 版
- You can’t say Go without Google – specifically, our little logo, Chocolate Factory insists • The Register
参考図書
- 暗号化 プライバシーを救った反乱者たち
- スティーブン・レビー (著), 斉藤 隆央 (翻訳)
- 紀伊國屋書店 2002-02-16
- 単行本
- 4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)
- 評価
20世紀末,暗号技術の世界で何があったのか。知りたかったらこちらを読むべし!
- 暗号技術入門 第3版 秘密の国のアリス
- 結城 浩 (著)
- SBクリエイティブ 2015-08-25 (Release 2015-09-17)
- Kindle版
- B015643CPE (ASIN)
- 評価
SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。
- 初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド
- Jon Bodner (著), 武舎 広幸 (翻訳)
- オライリージャパン 2022-09-26
- 単行本(ソフトカバー)
- 4814400047 (ASIN), 9784814400041 (EAN), 4814400047 (ISBN)
- 評価
2021年に出た “Learning Go” の邦訳版。私は版元で PDF 版を購入。 Go 特有の語法(idiom)を切り口として Go の機能やパッケージを解説している。 Go 1.19 対応。