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:ソケットの知識もないまま無理矢理書き換えたので、どっかにバグが潜んでたんだろな