API version 16

NfcTagConnection.Mifare_AuthenticateSectorWithKeyAメソッド

iOSAndroidWindows

 

説明

Mifare Classicタグのセクタに対し、KeyAによる認証を行います。

詳細はMifare Classicのドキュメントなどを参照してください。

 

呼出形式

nfc.Mifare_AuthenticateSectorWithKeyA( sectorIndex , keyType [, key ] )

 

戻り値

なし

 

引数

Integer sectorIndex

0から開始する、認証を行うセクタのインデックスを指定します。

 

Integer keyType

認証キーを自分で指定するか、よく知られているキーを使うかを指定します。

下記の値を指定します。

 

定数

説明

NfcTagConnection.MIFARE_KEY_USER

0

指定されたkeyを使用して認証します

NfcTagConnection.MIFARE_KEY_FACTORY

1

工場出荷時のキーで認証します

NfcTagConnection.MIFARE_KEY_MAD

2

MIFARE Application Directory (MAD) 規格にそってフォーマットされたタグでよく使われるキーで認証します

NfcTagConnection.MIFARE_KEY_NFC_FORUM

3

NDEF on MIFARE Classicに沿ってフォーマットされたタグでよく使われるキーで認証します

 

ByteArray key

6byteの認証キーを指定します。

keyTypeがMIFARE_KEY_USERの場合に使用します。

 

キーのサイズが6byteではない場合、FUNC-4例外が発生します。

 

例外

FUNC-4

引数が不正です。

 

RTM-50

NFCタグへのアクセスに失敗しました。

 

RTM-85

Mifare Classicコマンドの発行に失敗しました。

 

使用例

var nfc = null;
try {
	nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
	MessageBox("NFCタグ探索失敗");
	return;
}
if(!nfc.IsMifareClassicTag) {
	nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
	return;
}
try {
	nfc.SetMessage("読取中...");
	var key = new ByteArray(0,1,2,3,4,5);
	/* 0番目のセクタに対しKeyAで認証を行う*/
	nfc.Mifare_AuthenticateSectorWithKeyA(0,NfcTagConnection.MIFARE_KEY_USER,key);
	/* 0番目のブロックからデータを取得*/
	var blockData = nfc.Mifare_ReadBlock(0);
	var blockDataStr = "";
	var len = blockData.length;
	for (var i = 0; i < len; i++) {
		var b = blockData.ByteAt(i);
		blockDataStr += b.ToString(16) + str(" ");
	}
	/* NFCとの通信を終了 */
	nfc.Close(true, "ブロックデータ : " + blockDataStr);
} catch(e) {
	nfc.Close(false, "読取エラー");
}

 

関連項目

Mifare_AuthenticateSectorWithKeyBメソッド

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る