はじめに
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でできることって?②)