BonCasLinkのサーバーをLinuxに立ててB-CASカードを共有する
BonCasServerをperlに移植した - FIXED STEP を発見したのでメモ。
一枚のB-CASカードを複数台のPCで利用できるBonCasLinkのサーバーを、Linuxで構築するためのPerlスクリプトです。玄箱などで使えるかも。
また、Windowsにはリモートデスクトップ接続するとスマートカードが強制切断される不思議な仕様があるので、これを回避するのに活用しております。
インストール
当環境はFedora 11です。パッケージシステム等適宜読み替えてください。
# yum install pcsc-perl
とやって、スクリプトをダウンロード、chmod +x するだけです。多分。あとはリンク元のページに従って21行目を書き換えてください。
Unknown ATR found... maybe target card isn't B-CAS CARD
実行したところ、当方のB-CASカードでは
Unknown ATR found... maybe target card isn't B-CAS CARD Card's ATR:3B F0 12 00 FF 91 81 B1 7C 45 1F 01 9B B-CAS ATR:3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
とのエラーが出ました。恐らくB-CASカードの種類の問題のようですので、143-157行目をまるっとコメントアウトして対処。ひとまず正常動作しています。
有用なスクリプトを公開してくださったwalkure様に感謝。
実は
自分でも同様のツールをBonCasServerのソースをそのままLinuxソケットに移植して使っていたんですが、数週間に一度動かなくなるバグがあって。 ps u で見るとVSZの値が異常に大きくなってて、メモリリークの類だったんでしょうなあ*1。bcs-perl.plを数週間運用して様子を見てみます。
*1:ソケットの知識もないまま無理矢理書き換えたので、どっかにバグが潜んでたんだろな