Pasori RC-S380でMifare Classic読み取りでハマる | 現役SEが最新ITネタを分かりやすく伝えるブログ

現役SEが最新ITネタを分かりやすく伝えるブログ

好奇心旺盛なうどん大好きITエンジニア。
フットサル,けん玉,クライミング,新日本プロレスが趣味。
AI と データ分析 界隈が大好き。
本屋には毎日行く。

Twitter:@waka21

マイ本棚:http://booklog.jp/users/wakagasira/front

{B34A9E74-5AF2-4CDC-BF0A-A434B18AE279}


タイトルの通りなんですが、ICカードリーダーでは一番有名なんじゃないかと思う、

 

SONYのPasori RC-S380で初めてMIFARE Classicを読み書きしようとしてハマりました。

 

 

いわゆる「黒パソリ」と呼ばれたりするこのリーダーですが、

FeliCaだけでなく、Mifareカードも読み書きできます。

そのあたりは、SDK for NFC Starter Kit付属の資料にPC/SC準拠コマンドについて記載があります。

・Sony SDK for NFC Starter Kit

https://www.sony.co.jp/Products/felica/business/products/ICS-D004_002_003.html

ちょっと探すのが分かりにくいんですが。

 

で、本題ですがその資料にのっとってMifareカードを読み取ります。

まず、UID取得はいつものコマンドでOK。(FFCA0000かな)

 

そして、データ読み出しですが、Mifare Classicはキー認証が必要なため、

1.Load Keyコマンド

2.Authenticateコマンド

3.Read Binaryコマンド

という手順になりますが、このAuthenticateコマンド認証でなぜか正常(0x90、0x00)ではなく、0x69、0x83が返ってくる・・・

 

PC/SCコマンドの仕様書も見ましたが、あっているはず。キーはキーAを使っています。

そこでなんとなしにLoad KeyコマンドのKeyType指定を0x00で送ったら、いけた!

 

うーむ、KeyTypeはキーAかキーBかどちらかを指定しなさいとあるんですが、

0x00にするとうまくいきます。

 

根本原因は分かりませんが、同じ事で悩まれる方の助けになれば幸いです。

書込みも同様にこれでいけました。

 

開発環境:Visual Studio 2008

言語:C++とC#とVB.net

 

カードはこんな感じのMifare Classic 1Kです。