WKDのz-base-32形式のSHA1ハッシュ生成
WKDのz-base-32形式のSHA1ハッシュを生成する方法について説明します。
PGP公開鍵をWeb Key Directoryで公開する際に、ユーザーIDのSHA1ハッシュをz-base-32形式で生成する必要がある。 以下のように発行する必要があるらしい。
Web Key DirectoryでPGPの公開鍵を配布する
- 小文字にする(Joe.Doe → joe.doe)
- sha1でハッシュをとる(joe.doe → a83ee94be89c48a11ed25ab44cfdc848833c8b6e)
- ハッシュした値(バイナリ)を、Z-Base32でエンコードする(a83ee94be89c48a11ed25ab44cfdc848833c8b6e → iy9q119eutrkn8s1mk4r39qejnbu3n5q)
CLIで実行する場合は、以下のようできた。 z-base-32 Crate が助かる。
$ cargo install --features cli z-base-32
$ zbase32 <(echo -n joe.doe | sha1sum | awk '{printf $1}' | xxd -r -p)
iy9q119eutrkn8s1mk4r39qejnbu3n5q
もしもキー自体を持っている場合は、以下のようにして確認もできる。
$ gpg --with-wkd-hash -k name@address
この記事を検証
$ gpg --locate-keys [email protected]
$ curl -sLO blog.gr3.ie/ja/posts/wkd-zbase32.md -O blog.gr3.ie/ja/posts/wkd-zbase32.md.asc
$ gpg --verify wkd-zbase32.md.asc wkd-zbase32.md
gpg: Good signature from "Yasuhiro Yamada <[email protected]>"