Gnukを使ってみる。
OpenPGPカードのソフトウエア実装であるGnukを作って使ってみる。
準備
秋月でSTM8S Discovery Kitを買う。
750円。入って右側の壁にかかってる。
HIDaspxの材料 + 3.3Vレギュレータ。
500円ぐらい。
ケースとかUSBケーブルとか?
100円ショップで買う。
本体の作成
STM8SのSTM32部分を切り取るだけ。
ここが詳しい。
http://www.gniibe.org/memo/development/gnuk/hardware/topvalu-mint-and-stm32-part-of-stm8s-discovery-kit
自分は。USB端子を外にはみ出る感じで付けて、フタを開けずに使えるようにしてる。
Gnukの ビルド
https://github.com/esden/summon-arm-toolchain を使ってビルドする。
必須パッケージをいれる。
sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev \
libmpc-dev autoconf texinfo build-essential libftdi-dev
クローンする。
git clone https://github.com/esden/summon-arm-toolchain.git
メインスクリプトを変更する
vim summon-arm-toolchain
あとは、gnukのパッケージをダウンロードしてビルドするだけ。
http://www.gniibe.org/download/
Gnukのインストール
高価な開発キットを買ってもいいが、安いので、hid_blasterを使う。
http://hp.vector.co.jp/authors/VA000177/html/hid_blaster.html
http://hp.vector.co.jp/authors/VA000177/html/stm32f103.html
部品点数も少ないし、オススメ。
ただ、AVRライターが別途必要。
ターゲットの基盤のISP端子は上から見て、次のような感じになってる。
8 つながない GND 7
6 MOSI RST 5
4 SCK MISO 3
VDD 1
ダウンロードした、制御ソフトのocd.batを起動、別途telnetなどで接続します。
reset halt
stm32x unlock 0
shutdown
で一度再起動して、
reset halt
flash probe 0
flash write_image erase gnuk.hex
で書き込み
gpg鍵を入れる。
http://d.hatena.ne.jp/tmatsuu/20101112/1289587685
を参考にした。--expertオプションがわからなくて最初はまった。
gpg --gen-key でキー作成
gpg --expert --edit-key
gpg --card-edit でカードの中身をいじって
gpg --edit-key
制限
なんか、gpg-agentが古いらしく、gpg-agent起動後に差した場合や、起動後に抜いて差しなおした時に認識されない。
knowm-bugみたい。
http://bugs.g10code.com/gnupg/issue1238