Sabtu, 24 Desember 2011

Comand comand ISO 7816 - 4

Hallo hari ini mau melanjutkan postingan mengenai ISO 7816 - 4. Sekarang kita bahas command apa saja yang didukung oleh ISO 7816 - 4.
Ada banyak command yang mendukung ISO 7816 - 4 :
  1. Read Binary Command
  2. Write Binary Command
  3. Update Binary Command
  4. Erase Binary Command
  5. Read Record(S) Command
  6. Write Record Command
  7. Append Record Command
  8. Update Record Command
  9. Get Data Command
  10. Put Data Command
  11. Select File Command
  12. Verify Command
  13. Internal Authenticate Command
  14. External Authenticate Command
  15. Get Challenge Command
  16. Manage Chanel Command

Pada masing - masing command diatas menggunakan command APDU, jika belum familiar mengenai format command APDU bisa dilihat di sini.

Read Binary Command

1. Request message

Struktur dari request :

CLA        :
CMD       : 'B0'
P1 - P2    : see text below
Lc field    : empty
Data field : empty
Le field    : Numbers of byte to be reads

Jika bit8 = 1 di P1, lalu bit 7 - 6 diset 0. bit 3-1 dari P1 adalah pengenalan short EF (Elementary File) dan P2 adalah offset dari byte pertama yg akan dibaca dalam unit data dari awal file.

Jika bit8 = 0 di P1, lalu P1 || P2 adalah offset dari byte pertama yang akan dibaca dari awal file

2. Response Message


Jika Le field berisi kosong, lalu di dalam limit 256 untuk ukuran pendek atau 65536 untuk ukuran lebih, semua byte byte hingga akhir dari file harus dibaca.

Struktur dari repons :

| Data field  | Data Read |

Data field  : SW1 - SW2
Data read  : Status byte

Kondisi status

a. Warning :

SW1 = '62' dan SW2 =
- '81' = return data korupt
- '82' = akhir dari file komplit sebelum membaca Le byte

b. Error :

SW1='67' with SW2 =
-  '00' =  panjangnya salah (wrong Le field)

SW1 = '69' dan SW2 =
-  '81' = komand tidak cocok dengan struktur file
-  '82' = status keamanan tidak memenuhi
-  '86' = komand tidak diijinkan (not current EF)

SW1='6A' with SW2=
- '81' = fungsi tidak disuport
- '82' =  file tidak ada

SW1='6B' with SW2=
- '00' = paramater salah (offset outside the EF)

SW1='6C' with SW2=
- 'XX' = panjang salah (wrong Le field: 'XX' indicates the exact length).

Kalau kurang jelas mengenai read binary command bisa lihat di sini.

Write Binary Command

1. Penjelasan dan cakupannya

Write Binary command initiate penulisan binary ke EF (Elementary File).
Tergantung dari atribute filenya, komand memungkinkan pengeoperasian :
  • Logical OR dari bit yang ada dalam kartu dengan bit-bit  yang diberikan dari dalam komand APDU (logical erased state of the bits of the file is 0)
  • Logical AND dari bit yang ada dalam kartu dengan bit-bit yang diberikan dari dalam komand APDU (logical erased state of the bits of the file is 1)
  • Satu kali menulis di kartu dijalankan dalam komand APDU
Ketika tidak ada indikasi yang diberikan dalam byte koding data, maka logical OR dijalankan.

2. Penggunaan kondisi dan keamanan

Ketika komand yang berisi valid short EF identifier, ini diset sebagai current EF.

Komand kemudian diproses pada EF yang dipilih. Komand dapat diproses hanya jika status keamanan memenuhi atribut keamanan untuk fungsi yang ditulis.

Sekali Write Binary dijalankan pada unit data dalam sekali menulis EF, lebih jauh operasi penulisan merujuk pada unit data ini akan dibatalkan jika isi dari unit data atau logical erased state indicator (jika ada) dilampirkan ke data unit ini adalah berbeda dari logical erased state.

Komand akan gagal jika dijalankan pada EF tanpa struktur yang jelas .

0 komentar:

Posting Komentar