CommandAPDU
CommandAPDU (명령 APDU)
ISO/IEC 7816-4에 정의된 구조를 따르는 명령 APDU를 나타내는 클래스입니다.
본문
명령 APDU는 4바이트 헤더와 가변 길이의 조건부 본문으로 구성됩니다. 이 클래스는 APDU가 의미론적으로 유효한 명령을 인코딩하는지 검증하지 않아요.
생성자에서 응답 APDU의 예상 길이를 지정할 때는 인코딩된 형태(Le)가 아니라 실제 길이(Ne)를 지정해야 하고, getNe()도 실제 값 Ne를 반환합니다. 즉 값 0은 "응답 APDU에 데이터 없음"을 뜻하지 "최대 길이"를 뜻하지 않아요. 이 클래스는 Ne와 Nc의 길이 인코딩에 대해 짧은 형태와 확장 형태를 모두 지원하지만, 모든 터미널과 스마트카드가 확장 형태를 사용하는 APDU를 받아들일 수 있는 것은 아닙니다.
헤더 바이트 CLA, INS, P1, P2는 Java 타입 int로 8비트 부호 없는 값을 나타냅니다. 생성자에서는 애플리케이션이 지정한 int 값의 낮은 8비트만 의미 있고, 접근자 메서드는 항상 0에서 255 사이의 부호 없는 값을 반환해요. 이 클래스의 인스턴스는 불변이고, 바이트 배열로 데이터가 들어오거나 나갈 때 방어적 복사가 수행됩니다.
public CommandAPDU(byte[] apdu)
public CommandAPDU(byte[] apdu, int apduOffset, int apduLength)
public CommandAPDU(ByteBuffer apdu)
public CommandAPDU(int cla, int ins, int p1, int p2)
public CommandAPDU(int cla, int ins, int p1, int p2, int ne)
public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data)
public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength)
public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int ne)
public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength, int ne)
public int getCLA()
public int getINS()
public int getP1()
public int getP2()
public int getNc()
public int getNe()
public byte[] getData()
public byte[] getBytes()
public String toString()