クマは森で用を足しますか?

アウトプットは重要です。

Java Card

APDU コマンドクラスを Kotlin で書いてみる

業務では使っていない Kotlin にはまだどうにも馴染めないでいるのですが、使わないままだとずっと馴染むことができません。ということで、今回 Kotlin を練習する目的で書いてみたのは、普段から Android での取り扱いが心地よくない APDU コマンドです。 A…

Android は APDU の送受信を制限しなくていいのに

Android と SIM カードとの間で APDU コマンドの送受信を実行しようと思うと、通常は下記のどちらかの公開 API を利用することになると思います。しかし、一般のアプリ開発者にとってはそのどちらも使いにくい、と言うか著しく自由度の低いものになっていま…

GET INKEY コマンドをサポートしてひとまず完成

しばらくぶりの Java Card プログラミングで結局のところ何を作っていたかと言いますと、GET INPUT コマンドを非同期的に SIM カードから端末に送信する SIM ツールキット用アプレットで、そのコマンドのパラメータをある程度コンフィギュレーションできるよ…

GET INPUT コマンドと TIMER MANAGEMENT コマンド

前回(下記)に引き続き、sysmoUSIM-SJS1 4FF を使って SIM ツールキット用 Java Card アプレットを作ってゆきます。cheerio-the-bear.hatenablog.comSET UP MENU コマンドに DISPLAY TEXT コマンド、SELECT ITEM コマンドとやってきましたが、今回は GET IN…

SELECT ITEM コマンドで二階層目のメニューを

先日から SIM ツールキット用の Java Card アプレットを書き始めたところ(下記)ですが、まとまった時間があまり取れていないと進捗しないですね。cheerio-the-bear.hatenablog.com前回は SET UP MENU コマンドと DISPLAY TEXT コマンドをやりましたが、今…

SET UP MENU コマンドと DISPLAY TEXT コマンド

sysmoUSIM-SJS1 4FF を久しぶりに引っ張り出してきて、SIM ツールキット用の Java Card アプレットを作ってみることにします。SIM 側の実装を知ることで、SIM ツールキットの理解も深められるのではないかと考えています。いわゆる "Hello World" 相当の、こ…

Android Secure Element CTSの実行用ARA-Mできました

Android Secure Element CTSの実行に必要なアクセスルールを返すARA-M、とりあえず完成です。インストール後にルールの追加や変更を動的に実行できるようには作っていませんが、それはまた他にやることがないときにでも。github.com アクセスルールの選択ル…

GET DATA [Refresh tag]の追加

前回の変更で、現在製造中のARA-MがGET DATA [All]コマンドとGET DATA [Next]コマンドをサポートしました。cheerio-the-bear.hatenablog.com GET DATAコマンドとしてはもうひとつ、GET DATA [Refresh Tag]コマンドにも対応させます。 GET DATA [Refresh Tag]…

GET DATA [All]とGET DATA [Next]の実装

ARA-Mがアクセスルールをターミナルに提供できるようにするために、GET DATAコマンドをサポートします。コマンド仕様の詳細については、Global PlatformのSecure Element Access Control仕様書4.1章を。github.com GET DATA [All]コマンド GET DATA [All]コ…

ではARA-Mを作り始める準備を

前回までは、Android Secure Element CTSの実施時に必要なJava Cardアプレットを作成していました。cheerio-the-bear.hatenablog.comアクセスコントロール系のテストケースには、そのアプレットだけでは全然足りません。ということで、テストが期待するアク…

OMAPI/ACテスト用アプレットはこれで完成(のつもり)

自作のJava Cardアプレットをインストール可能な珍しいSIMカード、OSMOCOMコミュニティーのsysmoUSIM-SJS1 4FFを使ってAndroid Secure Element CTS仕様のアプレットを作る件、今回の変更でひとまず完成ということで良いのではないかと思います。テスト仕様に…

論理チャネルを開くときにP2値を割愛するケース

Android Secure Element CTSページのOpen Mobile API関連の記述について言えば、これまでの対応でカバーできていないのは、おそらく下記の件のみではないでしょうか。 a. 0xA000000476416E64726F696443545331 ... vi. The applet should return success stat…

各種警告系ステータスワードの返却

ターミナルとカードの間で行われるAPDUコマンドのやり取りには、当然ながらカードOSが介在します。ふと見つけてドイツから個人輸入したsysmoUSIM-SJS1 4FFですが、カードOSの制限事項のようなもの、例えばカードOSが通過を許してくれないクラスバイトやイン…

Case 2コマンドやCase 4コマンドへの長いデータの応答

Android Secure Element CTSに使えるSIMカードをsysmoUSIM-SJS1 4FFで作ってみる件、次はOmapiTest.testSegmentedResponseTransmit()です。 testSegmentedResponseTransmit()が期待する動作 テストコードによると、セキュアエレメントから返ってくるデータの…

突然のSW 6F00はメモリリークによるものなのか?

Android Secure Element CTS仕様に沿ってJava Cardアプレットを作成中ですが、ある日突然アプレットを選択することができなくなりました。最初に作ったアプレットAID 'A000000476416E64726F696443545331'に対するSELECTコマンドに、SW 6F00が返ってきてしま…

OmapiTest.testLongSelectResponse()のサポート

OSMOCOM (Open Source Mobile Communications) コミュニティのSIMカードsysmoUSIM-SJS1 4FF上で動くAndroid Secure Element CTS用Java Cardアプレットを作成するこのシリーズ、前回までにOmapiTest.testTransmitApdu()の対応を終え、今回はOmapiTest.testLon…

OmapiTest.testTransmitApdu()が期待するSIMカードの振る舞い(2)

前回は、Android Secure Element CTSのOmapiTest.testTransmitApdu()を、Pythonスクリプトで再現するところまで。今回は、それに対応するJava Cardアプレット側の実装を行います。cheerio-the-bear.hatenablog.com その前に「インストール」できないことに気…

google-cardlet.capはロードできるのか

SIMツールキット用のアプレットのロードおよびインストールができることはわかりましたが、その他のJava Cardアプレットでも同様の操作が行えることを確認してゆこうと思います。あまりまとまった時間を確保してやってはいないので、さて何日かかることやら…

GET STATUSコマンドで確認してみましょう

SIMツールキット用サンプルアプレットのビルド、sysmoUSIM-SJS1 4FFへのロードおよびインストールを実行することができました。次は、インストールされたアプレットの存在について、GET STATUSコマンドを使ってあらためて確認してみましょう。cheerio-the-be…

SIMツールキット用サンプルアプレットは動きます

Java Cardアプレットのロードやインストールに使うPythonスクリプトが実行可能になりましたので、その仕組みについても少しずつ確認したりしなかったりします。cheerio-the-bear.hatenablog.com APDUコマンドを出力してみました スクリプトは正常に終了する…

JDK10じゃビルドできないんですか?

Global Platformのお作法ではJava Cardアプレットをロードさせてもらえなさそうなので、まずはsysmoUSIM-SJS1 4FFのマニュアルやwikiで「できる」とされていること、SIMツールキット用アプレットの実装サンプルとして提供されている "Hello STK" のビルドか…

デフォルトのGPキーではないんですか?

Java Cardアプレットを実行できそうなテストカードを調達できましたので、当面のところはいろいろと試してみる作業が続くことになると思います。cheerio-the-bear.hatenablog.com アプレットのリスト表示を試みる GlobalPlatformProの list (-l) オプション…

Java Cardアプレットを実行できるSIMカードはありますか?

GP鍵付きのSIMカードがない ネットで検索してみたものの、所望のカードがなかなか見つかりません。これを書いている今でも、まだ見つかっていません。所望のカードの条件はと言うと、下記の二点だけです。 Java Cardのアプレットをロード・インストールでき…