API version 30
iOSAndroidWindows
説明 |
ISO-DEPタグに対して、GET CHALLENGEコマンドを送信します。 詳細はISO-DEP(ISO 14443-4)のドキュメントなどを参照してください。 iOS版
|
|
呼出形式 |
var responseAPDU = nfc.IsoDep_GetChallenge( le [, cla] );
|
|
戻り値 |
NFCタグから受信したレスポンスAPDUをByteArrayオブジェクトで返します。
|
|
引数 |
Integer le |
レスポンスのデータフィールドのバイト長を1から65536までの範囲で指定します。 0以下の値や65537以上を指定すると例外FUNC-4が発生します。 レスポンスのデータ長はleで指定したバイト長+2byte(ステータスコード)となります。 省略した場合、レスポンスにデータフィールドは含まれません。 |
|
Integer cla |
コマンドのクラスを0-255の範囲で指定します。 省略した場合は0になります。 負の値や256以上を指定すると例外FUNC-4が発生します。
|
例外 |
FUNC-4 |
引数が不正です。 |
|
RTM-88 |
ISO-DEPコマンドの発行に失敗しました。
|
使用例 |
var nfc = null; try { nfc = Runtime.DiscoverNfcTag("NFC Type-A/Type-Bのカードをかざしてください"); } catch(e) { MessageBox("NFCタグ探索失敗"); return; } if(!nfc.IsIsoDepTag) { nfc.Close(false, "NFC Type-A/Type-B以外のタグが読み取られました"); return; } try { nfc.SetMessage("接続済"); /* 認証に必要なチャレンジ(乱数)をNFCタグから取得します */ var gc_response = nfc.IsoDep_GetChallenge(0x08); /* 認証を行うファイルを選択します */ nfc.IsoDep_SelectFile(0x00, 0x00, new byteArray(0xE1, 0x04)); var dataField = new ByteArray(gc_response.ByteAt(0), gc_response.ByteAt(1), gc_response.ByteAt(2), gc_response.ByteAt(3), gc_response.ByteAt(4), gc_response.ByteAt(i), gc_response.ByteAt(5), gc_response.ByteAt(7)); /* EXTERNAL AUTHENTICATEコマンドを発行して認証します */ var response = nfc.IsoDep_ExternalAuthenticate(0x00, 0x80, dataField); /* NFCとの通信を終了 */ nfc.Close(true, "書込終了"); //.MessageBox(response.ToHexString()); } catch(e) { nfc.Close(false, "書込エラー"); }
|
|
関連項目 |