public final class CommandAPDU extends Object implements Serializable
レスポンス APDU の予想される長さがコンストラクタに指定されているときは、実際の長さ (Ne) は指定する必要がありますが、そのエンコードされた形式 (Le) を指定する必要はありません。同様に、getNe() は実際の値 Ne を返します。つまり、値 0 は「最大長」ではなく「レスポンス APDU 内にデータがない」ことを意味します。
このクラスは、Ne および Nc に対する短形式と拡張形式の両方の長さのエンコードをサポートします。ただし、すべての端末とスマートカードが、拡張形式を使用する APDU の受け入れが可能なわけではありません。
ヘッダーバイト CLA、INS、P1、および P2 の場合、Java の型 int
を使用して 8 ビット符号なしの値を表します。コンストラクタでは、アプリケーションで指定された int
値の 8 つの最下位ビットだけに意味があります。このアクセス用メソッドは、常に 0 から 255 の間の符号なしの値としてバイトを返します。
このクラスのインスタンスは不変です。データがバイト配列を介して受け渡しされる場所では、保護されたクローニングが行われます。
ResponseAPDU
, CardChannel.transmit
, 直列化された形式コンストラクタと説明 |
---|
CommandAPDU(byte[] apdu)
ADPU の内容全体 (ヘッダーと本体) を含むバイト配列から CommandAPDU を構築します。
|
CommandAPDU(byte[] apdu, int apduOffset, int apduLength)
ADPU の内容全体 (ヘッダーと本体) を含むバイト配列から CommandAPDU を構築します。
|
CommandAPDU(ByteBuffer apdu)
ADPU の内容全体 (ヘッダーと本体) を含む ByteBuffer から CommandAPDU を作成します。
|
CommandAPDU(int cla, int ins, int p1, int p2)
4 つのヘッダーバイトから CommandAPDU を構築します。
|
CommandAPDU(int cla, int ins, int p1, int p2, byte[] data)
4 つのヘッダーバイトとコマンドデータから CommandAPDU を構築します。
|
CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int ne)
4 つのヘッダーバイト、コマンドデータ、および予想される応答データ長から CommandAPDU を構築します。
|
CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength)
4 つのヘッダーバイトとコマンドデータから CommandAPDU を構築します。
|
CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength, int ne)
4 つのヘッダーバイト、コマンドデータ、および予想される応答データ長から CommandAPDU を構築します。
|
CommandAPDU(int cla, int ins, int p1, int p2, int ne)
4 つのヘッダーバイトと予想される応答データ長から CommandAPDU を構築します。
|
修飾子と型 | メソッドと説明 |
---|---|
boolean |
equals(Object obj)
指定されたオブジェクトがこのコマンド APDU と同じかどうかを比較します。
|
byte[] |
getBytes()
この APDU のバイトのコピーを返します。
|
int |
getCLA()
クラスバイト CLA の値を返します。
|
byte[] |
getData()
コマンド本体のデータバイトのコピーを返します。
|
int |
getINS()
命令バイト INS の値を返します。
|
int |
getNc()
コマンド本体 (Nc) のデータバイト数を返します。この APDU に本体がない場合は 0 を返します。
|
int |
getNe()
レスポンス APDU (Ne) 内の予想される最大データバイト数を返します。
|
int |
getP1()
パラメータバイト P1 の値を返します。
|
int |
getP2()
パラメータバイト P2 の値を返します。
|
int |
hashCode()
このコマンド APDU のハッシュコード値を返します。
|
String |
toString()
このコマンド APDU の文字列表現を返します。
|
public CommandAPDU(byte[] apdu)
以後の変更から保護するために、apdu バイトはコピーされます。
apdu
- コマンド APDU 全体NullPointerException
- apdu が null の場合IllegalArgumentException
- apdu に有効なコマンド APDU が含まれない場合public CommandAPDU(byte[] apdu, int apduOffset, int apduLength)
apduOffset
から始まり、長さは apduLength
バイトです。
以後の変更から保護するために、apdu バイトはコピーされます。
apdu
- コマンド APDU 全体apduOffset
- apdu データの開始位置でのバイト配列内のオフセットapduLength
- APDU の長さNullPointerException
- apdu が null の場合IllegalArgumentException
- apduOffset または apduLength が負の場合、または apduOffset + apduLength が apdu.length より大きい場合、または指定されたバイトが有効な APDU ではない場合public CommandAPDU(ByteBuffer apdu)
position
は APDU の開始位置、その limit
は APDU の終了位置に設定する必要があります。終了時に、バッファーの position
は limit に等しくなりますが、limit は変更されません。
以後の変更から保護するために、ByteBuffer 内のデータはコピーされます。
apdu
- APDU 全体を含む ByteBufferNullPointerException
- apdu が null の場合IllegalArgumentException
- apdu に有効なコマンド APDU が含まれない場合public CommandAPDU(int cla, int ins, int p1, int p2)
cla
- クラスバイト CLAins
- 命令バイト INSp1
- パラメータバイト P1p2
- パラメータバイト P2public CommandAPDU(int cla, int ins, int p1, int p2, int ne)
cla
- クラスバイト CLAins
- 命令バイト INSp1
- パラメータバイト P1p2
- パラメータバイト P2ne
- レスポンス APDU 内の予想される最大データバイト数IllegalArgumentException
- Ne が負または 65536 より大きい場合public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data)
data
が null かその長さが 0 の場合、APDU は ISO 7816 ケース 1 としてエンコードされます。
以後の変更から保護するために、データバイトはコピーされます。
cla
- クラスバイト CLAins
- 命令バイト INSp1
- パラメータバイト P1p2
- パラメータバイト P2data
- コマンド本体のデータバイトを含むバイト配列IllegalArgumentException
- data.length が 65535 より大きい場合public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength)
dataLength
が 0 の場合、APDU は ISO 7816 ケース 1 としてエンコードされます。
以後の変更から保護するために、データバイトはコピーされます。
cla
- クラスバイト CLAins
- 命令バイト INSp1
- パラメータバイト P1p2
- パラメータバイト P2data
- コマンド本体のデータバイトを含むバイト配列dataOffset
- コマンド本体のデータバイトの開始位置にあるバイト配列内のオフセットdataLength
- コマンド本体のデータバイト数NullPointerException
- データが null であり、かつ dataLength が 0 でない場合IllegalArgumentException
- dataOffset または dataLength が負の場合、または dataOffset + dataLength が data.length より大きい場合、または dataLength が 65535 より大きい場合public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int ne)
data
が null 以外の場合は data.length とみなされ、そうでない場合は 0 とみなされます。Ne または Nc がゼロの場合、APDU は ISO 7816 に従ってケース 1、2、または 3 としてエンコードされます。
以後の変更から保護するために、データバイトはコピーされます。
cla
- クラスバイト CLAins
- 命令バイト INSp1
- パラメータバイト P1p2
- パラメータバイト P2data
- コマンド本体のデータバイトを含むバイト配列ne
- レスポンス APDU 内の予想される最大データバイト数IllegalArgumentException
- data.length が 65535 より大きい場合、または Ne が負であるか 65536 より大きい場合public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength, int ne)
dataLength
とみなされます。Ne または Nc がゼロの場合、APDU は ISO 7816 に従ってケース 1、2、または 3 としてエンコードされます。
以後の変更から保護するために、データバイトはコピーされます。
cla
- クラスバイト CLAins
- 命令バイト INSp1
- パラメータバイト P1p2
- パラメータバイト P2data
- コマンド本体のデータバイトを含むバイト配列dataOffset
- コマンド本体のデータバイトの開始位置にあるバイト配列内のオフセットdataLength
- コマンド本体のデータバイト数ne
- レスポンス APDU 内の予想される最大データバイト数NullPointerException
- データが null であり、かつ dataLength が 0 でない場合IllegalArgumentException
- dataOffset または dataLength が負の場合、または dataOffset + dataLength が data.length より大きい場合、または Ne が負であるか 65536 より大きい場合、または dataLength が 65535 より大きい場合public int getCLA()
public int getINS()
public int getP1()
public int getP2()
public int getNc()
getData().length
と同等です。public byte[] getData()
public int getNe()
public byte[] getBytes()
public String toString()
public boolean equals(Object obj)
equals
、クラス: Object
obj
- このコマンド APDU と等しいかどうかを比較するオブジェクトObject.hashCode()
, HashMap
public int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
Copyright © 2005, 2013, Oracle and/or its affiliates. All rights reserved.