Java Card
業務では使っていない Kotlin にはまだどうにも馴染めないでいるのですが、使わないままだとずっと馴染むことができません。ということで、今回 Kotlin を練習する目的で書いてみたのは、普段から Android での取り扱いが心地よくない APDU コマンドです。 A…
Android と SIM カードとの間で APDU コマンドの送受信を実行しようと思うと、通常は下記のどちらかの公開 API を利用することになると思います。しかし、一般のアプリ開発者にとってはそのどちらも使いにくい、と言うか著しく自由度の低いものになっていま…
しばらくぶりの Java Card プログラミングで結局のところ何を作っていたかと言いますと、GET INPUT コマンドを非同期的に SIM カードから端末に送信する SIM ツールキット用アプレットで、そのコマンドのパラメータをある程度コンフィギュレーションできるよ…
前回(下記)に引き続き、sysmoUSIM-SJS1 4FF を使って SIM ツールキット用 Java Card アプレットを作ってゆきます。cheerio-the-bear.hatenablog.comSET UP MENU コマンドに DISPLAY TEXT コマンド、SELECT ITEM コマンドとやってきましたが、今回は GET IN…
先日から SIM ツールキット用の Java Card アプレットを書き始めたところ(下記)ですが、まとまった時間があまり取れていないと進捗しないですね。cheerio-the-bear.hatenablog.com前回は SET UP MENU コマンドと DISPLAY TEXT コマンドをやりましたが、今…
sysmoUSIM-SJS1 4FF を久しぶりに引っ張り出してきて、SIM ツールキット用の Java Card アプレットを作ってみることにします。SIM 側の実装を知ることで、SIM ツールキットの理解も深められるのではないかと考えています。いわゆる "Hello World" 相当の、こ…
Android Secure Element CTSの実行に必要なアクセスルールを返すARA-M、とりあえず完成です。インストール後にルールの追加や変更を動的に実行できるようには作っていませんが、それはまた他にやることがないときにでも。github.com アクセスルールの選択ル…
前回の変更で、現在製造中のARA-MがGET DATA [All]コマンドとGET DATA [Next]コマンドをサポートしました。cheerio-the-bear.hatenablog.com GET DATAコマンドとしてはもうひとつ、GET DATA [Refresh Tag]コマンドにも対応させます。 GET DATA [Refresh Tag]…
ARA-Mがアクセスルールをターミナルに提供できるようにするために、GET DATAコマンドをサポートします。コマンド仕様の詳細については、Global PlatformのSecure Element Access Control仕様書4.1章を。github.com GET DATA [All]コマンド GET DATA [All]コ…
前回までは、Android Secure Element CTSの実施時に必要なJava Cardアプレットを作成していました。cheerio-the-bear.hatenablog.comアクセスコントロール系のテストケースには、そのアプレットだけでは全然足りません。ということで、テストが期待するアク…
自作のJava Cardアプレットをインストール可能な珍しいSIMカード、OSMOCOMコミュニティーのsysmoUSIM-SJS1 4FFを使ってAndroid Secure Element CTS仕様のアプレットを作る件、今回の変更でひとまず完成ということで良いのではないかと思います。テスト仕様に…
Android Secure Element CTSページのOpen Mobile API関連の記述について言えば、これまでの対応でカバーできていないのは、おそらく下記の件のみではないでしょうか。 a. 0xA000000476416E64726F696443545331 ... vi. The applet should return success stat…
ターミナルとカードの間で行われるAPDUコマンドのやり取りには、当然ながらカードOSが介在します。ふと見つけてドイツから個人輸入したsysmoUSIM-SJS1 4FFですが、カードOSの制限事項のようなもの、例えばカードOSが通過を許してくれないクラスバイトやイン…
Android Secure Element CTSに使えるSIMカードをsysmoUSIM-SJS1 4FFで作ってみる件、次はOmapiTest.testSegmentedResponseTransmit()です。 testSegmentedResponseTransmit()が期待する動作 テストコードによると、セキュアエレメントから返ってくるデータの…
Android Secure Element CTS仕様に沿ってJava Cardアプレットを作成中ですが、ある日突然アプレットを選択することができなくなりました。最初に作ったアプレットAID 'A000000476416E64726F696443545331'に対するSELECTコマンドに、SW 6F00が返ってきてしま…
OSMOCOM (Open Source Mobile Communications) コミュニティのSIMカードsysmoUSIM-SJS1 4FF上で動くAndroid Secure Element CTS用Java Cardアプレットを作成するこのシリーズ、前回までにOmapiTest.testTransmitApdu()の対応を終え、今回はOmapiTest.testLon…
前回は、Android Secure Element CTSのOmapiTest.testTransmitApdu()を、Pythonスクリプトで再現するところまで。今回は、それに対応するJava Cardアプレット側の実装を行います。cheerio-the-bear.hatenablog.com その前に「インストール」できないことに気…
SIMツールキット用のアプレットのロードおよびインストールができることはわかりましたが、その他のJava Cardアプレットでも同様の操作が行えることを確認してゆこうと思います。あまりまとまった時間を確保してやってはいないので、さて何日かかることやら…
SIMツールキット用サンプルアプレットのビルド、sysmoUSIM-SJS1 4FFへのロードおよびインストールを実行することができました。次は、インストールされたアプレットの存在について、GET STATUSコマンドを使ってあらためて確認してみましょう。cheerio-the-be…
Java Cardアプレットのロードやインストールに使うPythonスクリプトが実行可能になりましたので、その仕組みについても少しずつ確認したりしなかったりします。cheerio-the-bear.hatenablog.com APDUコマンドを出力してみました スクリプトは正常に終了する…
Global Platformのお作法ではJava Cardアプレットをロードさせてもらえなさそうなので、まずはsysmoUSIM-SJS1 4FFのマニュアルやwikiで「できる」とされていること、SIMツールキット用アプレットの実装サンプルとして提供されている "Hello STK" のビルドか…
Java Cardアプレットを実行できそうなテストカードを調達できましたので、当面のところはいろいろと試してみる作業が続くことになると思います。cheerio-the-bear.hatenablog.com アプレットのリスト表示を試みる GlobalPlatformProの list (-l) オプション…
GP鍵付きのSIMカードがない ネットで検索してみたものの、所望のカードがなかなか見つかりません。これを書いている今でも、まだ見つかっていません。所望のカードの条件はと言うと、下記の二点だけです。 Java Cardのアプレットをロード・インストールでき…