ST-LINK V2 刷 Gnuk
OpenPGP 智慧卡不好買,又覺得 YubiKey 很貴的話,可以使用 Gnuk 搭配 STM32 MCU 方案自製 USB OpenPGP 智慧卡,其中 STM32F103C8T6 是可以刷 Gnuk 最便宜的 STM32 方案,STM32 的燒錄器 ST-LINK V2 本身就是用 STM32F103C8T6 MCU 而且已經是 USB Dongle 外型,不如就是直把 ST-LINK V2 刷成 OpenPGP 智慧卡吧,淘寶上一個 ST-LINK V2 只要約12rmb上下。
Gnuk 的韌體大小約 110kb,STM32F103C8T6 在硬體規格上的 64KB flash 空間其實是不符合 Gnuk 的需求規格的,但因為意法半導體直接用 128kb 充當 64kb,所以讓 STM32F103C8T6 有機會成功刷入 Gnuk 韌體。
硬體準備
兩隻 ST-LINK V2 或是一台 J-Link + ST-LINK V2,以下教學使用 J-Link + ST-LINK V2,想使用 ST-LINK V2 燒錄 ST-LINK V2 可以看最下面的參考資料。 USB 頭端開始往後算燒錄用的針腳,每一個版本硬體的 layout 不太一樣,最好先用電表確認 VCC 和 GND 的腳,在交叉測試 SWDIO 和 SWCLK 腳。
- VCC
- SWDIO
- SWCLK
- GND
ST-LINK V2 接線
J-LINK 接線
編譯韌體&燒錄
使用 WSL 的 Ubuntu 環境編譯韌體
下載OpenOCD,配置設定檔 openocd.cfg
如下
執行 openocd.exe
使用 telnet 連線 4444 port 輸入以下指令
成果
移除尾端針腳
比起只能選擇 RSA 的 YubkiKey,Gnuk 可以選擇 Ed25519 橢圓曲線密碼作為金鑰的演算法。
如何寫入 GPG 私鑰參考使用 Yubikey 儲存 OpenPGP 私鑰
留言