はじめに
opensc-tool.exeを使用するとどんなことができるかを
オプションの意味とともに調べてみました。
使用するツール
- コマンドプロンプト
- opensc-tool.exe(WindowsでOpenSCを使う(1.準備編)参照)
- カードリーダー:PaSoRi RC-S380
- ICカード=Felica
OpenSCオプション
単体で実行できるオプション
--info, -i
バージョンや有効なコンポーネントなどのOpenSCに関する情報を出力します。
実際に実行してみると↓の画像のような情報が出力されます。
--infoでも、-iでも同じ情報が出力されますね。


OpenSC 0.19.0[Microsoft 1800]がバージョン、
Enabled features:pcsc openssl zlibが有効なコンポーネントのようです。
現在使用しているOpenSCのバージョンはOpenSC 0.19.0、
有効なコンポーネントはpcscとopensslとzlibの三種ということになるでしょうか。
[Microsoft 1800]部分は実行環境かな?Windows以外で実行してみると分かるかもしれませんね。
--atr, -a
こちらのオプションは
WindowsでOpenSCを使う(2.カードのIDm確認編)で解説しています。
--name, -n
カードとドライバの名前を出力します。
まず、ICカードを載せていない状態で実行してみます。

カードリーダーの情報、Sony FeliCa Port/PaSoRi 3.0.0とCard not presentと
カードが載っていない旨が出力されます。
次に、持っているFelicaカードを載せて同じコマンドを実行してみます。

カードリーダーは上記と同じですが、カード情報としてUnsupported cardが表示されました。なにこれ。
ここで同じような問題にあたっている人がいましたが、
どうもICカードでも、OpenSCでサポートされていないものがあるようです。
Felicaだから大丈夫だと思ったのにな。
ここはもう少しちゃんと調べたいですね。
--serial
カードのシリアル番号(通常はICCSN)を16進バイト形式で出力します。

これも-nの時と同じでサポートされていないカードだからかダメみたいです。
--send-apdu apdu, -s apdu
任意のAPDUコマンドをカードに送ります。
これについては
WindowsでOpenSCを使う(3.MIFARE Classicブロックデータ読み出し編①)を参照してください。
--list-files, -f
カードに保存されているすべてのファイルを再帰的にリストします。

カードがサポートされてないか、カードにファイルが保存されていないのか...
--list-readers, -l
設定されたリーダーをすべてリストします。

うん、カードリーダーの情報はちゃんと取得できますね。
--list-drivers, -D
インストール済みのカードドライバーをすべてリストします。



いっぱいある。
ほかのオプションと組み合わせて実行するオプション
--reader num, -r num
カードリーダー番号を指定してコマンドを実行する。デフォルトのカードリーダー番号は0。
カードリーダー番号は--list-readers, -l
を行った時に確認できます。
-r カードリーダー番号 -カードリーダーで実行したいオプションという形で実行します。
--card-driver driver, -c driver
指定されたカードドライバーを使用します。デフォルトは自動検出されます。
カードドライバーは--list-drivers, -Dで確認できます。

--card-driver カードドライバー名 -カードリーダーで実行したいオプションという形で実行します。
--wait, -w
カードを載せていない状態でopensc-tool.exe -w -nを実行すると、
Waiting for a card to be inserted...と出力され、
カードを載せるとUnsupported cardと出力されました。
-wを使用すると、カードが載せられるまで-nの実行を待ってくれるんですね。
--verbose, -v
opensc-toolをより詳細にします。
openscライブラリでデバッグ出力を有効にするには、このフラグを数回指定します。

-vと-nを組み合わせて実行しました。
Using card driver Defalt driver for unknown cards.と
-n単体で行った時より、詳しい説明が出ました。
次に調べること
うまく情報が取得できなかった、-n、--serial、--list-filesについて詳しく調べます。
おそらく、--card-driverオプションを使用して、
デフォルトのドライバーじゃなくて違うドライバーを選択すればちゃんと情報取得できるのではないかな。
参考サイト
opensc-tool(1) - Linux man page
Ubuntu Manuals opensc-tool.1
関連ページ
WindowsでOpenSCを使う(1.準備編)
WindowsでOpenSCを使う(2.カードのIDm確認編)
WindowsでOpenSCを使う(3.MIFARE Classicブロックデータ読み出し編①)
WindowsでOpenSCを使う(3.MIFARE Classicブロックデータ読み出し編②)
WindowsでOpenSCを使う(4. opensc-tool.exeでできることって?②)

