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