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)
APDUの内容全体(ヘッダーと本体)を含むバイト配列からCommandAPDUを構築します。
|
CommandAPDU(byte[] apdu, int apduOffset, int apduLength)
APDUの内容全体(ヘッダーと本体)を含むバイト配列からCommandAPDUを構築します。
|
CommandAPDU(ByteBuffer apdu)
APDUの内容全体(ヘッダーと本体)を含む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, 2018, Oracle and/or its affiliates. All rights reserved.