MacにてGPGで鍵を作るときに文字化け

# 概要
暗号化のためにGPGを使おうと思って、軽い気持ちでGPGをMacにインストールしたら少しハマったのでメモ。

# GPGのインストール
brewでgpgをインストールした。

```
brew install gpg
```

# 鍵の作成
とりあえず `--gen-key` を使って鍵の生成を試してみた。

```
% gpg --gen-key
gpg (GnuPG) 2.2.16; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

注意: 全機能の鍵生成には "gpg --full-generate-key" を使います。

GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。

本名: Kenichiro Nishioka
電子メール・アドレス: xxxxx@xxxxx
次のユーザIDを選択しました:
    "Kenichiro Nishioka <xxxxx@xxxxx>"
```

文字化けした画面に突入
![Screen Shot 0031-07-21 at 14.29.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7058/53254aee-f672-464a-a847-1fb03b888ffb.png)

ここで、キャンセルっぽい場所にタブで移動してキャンセルすればよかったのだが、`ctrl + C` で抜けてしまったために、コンソールが若干バグってしまった。consoleでの入出力がうまくできなくなったので、ターミナルを再起動。
再び、gen-keyを試してみると先ほど出てきた画面とは違うメッセージが出るようになった。

```
gpg --gen-key
gpg (GnuPG) 2.2.16; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

注意: 全機能の鍵生成には "gpg --full-generate-key" を使います。

GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。

本名: Kenichiro Nishioka
電子メール・アドレス: xxxxx@xxxxx
次のユーザIDを選択しました:
    "Kenichiro Nishioka <xxxxx@xxxxx>"

名前(N)、電子メール(E)の変更、またはOK(O)か終了(Q)? O
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動か
す、ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生
成器に十分なエントロピーを供給する機会を与えることができます。
```

こちらでは特に操作ができなかったのだが、しばらくしたら以下のようなエラーが返ってきた。
どうやらパスフレーズ入力に移れていないようであった。

```
gpg: agent_genkey failed: Timeout
鍵の生成に失敗しました: Timeout
```

日本語文字のせいかと思い、LANGを変えて実行して見たところ、先程と同様に実行不可能な状況になりタイムアウトになった。

```
LANG=C gpg --gen-key
gpg (GnuPG) 2.2.16; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: Kenichiro Nishioka
Email address: xxxxx@xxxxx
You selected this USER-ID:
    "Kenichiro Nishioka <xxxxx@xxxxx>"

Change (N)ame, (E)mail, or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: agent_genkey failed: Timeout
Key generation failed: Timeout
```

どうやらgpg-agentが起動していることでおかしくなっていそうだったので、gpg-agentを起動し直してみた。

```
gpgconf --kill gpg-agent
```

再びgen-keyを試した見たところ

```
LANG=C gpg --gen-key
gpg (GnuPG) 2.2.16; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: Kenichiro Nishioka
Email address: xxxxx@xxxxx
You selected this USER-ID:
    "Kenichiro Nishioka <xxxxx@xxxxx>"

Change (N)ame, (E)mail, or (O)kay/(Q)uit? O
```

今度はパスフレーズの入力画面に無事に飛ぶことができ、無事に鍵を作ることができた。

![Screen Shot 0031-07-21 at 16.02.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7058/6062602f-b571-e978-6aff-827a158d8c49.png)

```
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
… (略)
```