Featured image of post Keybase に Ed25519/NIST p521 の秘密鍵を登録する方法

Keybase に Ed25519/NIST p521 の秘密鍵を登録する方法

ERROR key generation error: Unknown signature subpacket: 34 (error 905) の対策

Summary

Keybase は GnuPG 2.4 以上で鍵を作成すると Keybase が対応していない形式(AEAD)が自動で追加されるため鍵をアップロード出来ない状態になる。 筆者もハマり散らかし大変困ったので、ワークアラウンド(暫定対処)を記載しておく。

対処

対処しないとこのようなエラーとなり登録出来ない

- ERROR key generation error: Unknown signature subpacket: 34 (error 905)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
+   > gpg -k
    C:\Users\naa0yama\AppData\Roaming\gnupg\pubring.kbx
    ---------------------------------------------------
    pub   nistp521 2024-09-13 [C]
          A4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    uid           [  究極  ] naa0yama <[email protected]>
    sub   cv25519 2024-09-13 [E]
    sub   ed25519 2024-09-13 [S]
    sub   ed25519 2024-09-13 [A]

+   > keybase pgp select
    You are selecting a PGP key from your local GnuPG keychain, and
    will publish a statement signed with this key to make it part of
    your Keybase.io identity.

    Note that GnuPG will prompt you to perform this signature.

    You can also import the secret key to *local*, *encrypted* Keybase
    keyring, enabling decryption and signing with the Keybase client.
    To do that, use "--import" flag.

    Learn more: keybase pgp help select

    #    Algo   Key Id             Created   UserId
    =    ====   ======             =======   ======
    1    521E   77CXXXXXXXXXXXXX             naa0yama <[email protected]>
+   Choose a key: 1
-   - ERROR key generation error: Unknown signature subpacket: 34 (error 905)

対応としては下記で対処できる AEAD: OCB の箇所が、 AEAD: となれば対処出来ている

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
+   > gpg --expert --edit-key $env:KEYID
    gpg (GnuPG) 2.4.5; Copyright (C) 2024 g10 Code GmbH
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

    秘密鍵が利用できます。

        pub  nistp521/77CXXXXXXXXXXXXX
            作成: 2024-08-24  有効期限: 無期限      利用法: C
            信用: 究極        有効性: 究極
        ssb  cv25519/77EXXXXXXXXXXXXX
            作成: 2024-08-24  有効期限: 無期限      利用法: E
        ssb  ed25519/77SXXXXXXXXXXXXX
            作成: 2024-08-24  有効期限: 無期限      利用法: S
        ssb  ed25519/77AXXXXXXXXXXXXX
            作成: 2024-08-24  有効期限: 無期限      利用法: A
        [  不明  ] (1). naa0yama <[email protected]>

+   gpg> showpref
    [  究極  ] (1). naa0yama <[email protected]>
        暗号方式: AES256, AES192, AES, 3DES
+       AEAD: OCB
        ダイジェスト: SHA512, SHA384, SHA256, SHA224, SHA1
        圧縮: ZLIB, BZIP2, ZIP, 無圧縮
        機能: MDC, AEAD, 鍵サーバ 修正しない

+   gpg> setpref AES256 AES192 AES 3DES SHA512 SHA384 SHA256 SHA224 SHA1 ZLIB BZIP2 ZIP Uncompressed mdc no-ks-modify
    優先指定の一覧を設定:
        暗号方式: AES256, AES192, AES, 3DES
-       AEAD:
        ダイジェスト: SHA512, SHA384, SHA256, SHA224, SHA1
        圧縮: ZLIB, BZIP2, ZIP, 無圧縮
        機能: MDC, 鍵サーバ 修正しない
+   優先指定を本当に更新しますか? (y/N) y
+   gpg> save

Keybase へ登録

Note

Keybase に登録する Windows Client は $env:GNUPGHOME 変数に対応していない。 そのため、一時的に Windows 標準の場所に GPG を展開し登録する必要がある。

通常であれば %APPDATA%\gnupg になります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
+   > gpg --version
    gpg (GnuPG) 2.4.5
    libgcrypt 1.10.3
    Copyright (C) 2024 g10 Code GmbH
    License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

+   Home: C:\Users\naa0yama\AppData\Roaming\gnupg
    サポートしているアルゴリズム:
    公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
    暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256,
          TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
    ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
    圧縮: 無圧縮, ZIP, ZLIB, BZIP2

F:\gnupg はUSBデバイスに保管しているためそこからコピーして配置しています

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
+   > Copy-Item -Path F:\gnupg -Destination $env:APPDATA -Recurse

+   > gpg -k
    C:\Users\naa0yama\AppData\Roaming\gnupg\pubring.kbx
    ---------------------------------------------------
    pub   nistp521 2024-08-24 [C]
          A4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    uid           [  究極  ] naa0yama <[email protected]>
    sub   cv25519 2024-08-24 [E]
    sub   ed25519 2024-08-24 [S]
    sub   ed25519 2024-08-24 [A]

+   > keybase pgp select
    You are selecting a PGP key from your local GnuPG keychain, and
    will publish a statement signed with this key to make it part of
    your Keybase.io identity.

    Note that GnuPG will prompt you to perform this signature.

    You can also import the secret key to *local*, *encrypted* Keybase
    keyring, enabling decryption and signing with the Keybase client.
    To do that, use "--import" flag.

    Learn more: keybase pgp help select

    #    Algo   Key Id             Created   UserId
    =    ====   ======             =======   ======
    1    521E   77CXXXXXXXXXXXXX             naa0yama <[email protected]>
    Choose a key: 1
    - INFO Generated new PGP key:
    - INFO   user: naa0yama <[email protected]>
    - INFO   521-bit ECDSA key, ID 77CXXXXXXXXXXXXX, created 2024-09-13

完了すると、下記のように Keybase App から鍵のフィンガープリントが見えます

keybase は公開鍵を ダウンロードできるためこちらをダウンロードして確認してみましょう。
問題なさそうですね

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
> curl -sL https://keybase.io/naa0yama/pgp_keys.asc | `
  gpg --show-key --with-sig-list
pub   nistp521 2024-09-13 [C]
      65284A0A9205C52EBC16BBCF794676DEF45A4D7F
uid                      Naoki Aoyama <9667078+naa0yama@users.noreply.github.com>
sig 3        794676DEF45A4D7F 2024-09-13  [自己署名]
sub   cv25519 2024-09-13 [E]
sig          794676DEF45A4D7F 2024-09-13  [自己署名]
sub   ed25519 2024-09-13 [S]
sig          794676DEF45A4D7F 2024-09-13  [自己署名]
sub   ed25519 2024-09-13 [A]
sig          794676DEF45A4D7F 2024-09-13  [自己署名]
Hugo で構築されています。
テーマ StackJimmy によって設計されています。