BAB 3 JAVA CARD (BAGIAN 2)

JAVA CARD RUNTIME ENVIRONMENT (JCRE)

JCRE terdiri dari komponen sistem Java Card yang berjalan dalam smart card. JCRE bertanggung jawab untuk menejemen resource kartu, komunikasi jaringan, eksekusi applet, sistem on-card, dan keamanan applet. Sehingga, pada dasarnya JCRE melayani seperti sistem operasi pada smart card.

JCRE berada di atas hardware smart card dan sistem native (sistem smart card yang asli). JCRE terdiri dari JCVM, kelas framework aplikasi Java Card (APIs), ekstensi industri tertentu, kelas sistem JCRE. JCRE memisahkan applet dari teknologi vendor smart card tertentu serta menyediakan standar sistem dan interface API untuk applet. Hasilnya, applet lebih mudah ditulis dan portabel untuk berbagai arsitektur smart card.


Layer JCRE paling bawah berisi JCVM dan metode native. JCVM mengeksekusi byte, mengontrol alokasi memori, mengatur objek, dan mengusahakan keamanan saat runtime, seperti yang telah disebutkan sebelumnya. Metode native menyediakan dukungan pada JCVM dan kelas sistem layer berikutnya. JCVM dan metode native bertanggung jawab menangani protokol komunikasi pada level rendah, menejemen memori, dukungan kriptografi dan sebagainya.

Kelas sistem berperan sebagai eksekutif JCRE. Kelas sistem analog dengan inti sistem operasi. Kelas sistem berperan dalam menejemen transaksi, menejemen komunikasi antara aplikasi host dan applet, serta mengontrol pembuatan, pemilihan, dan deselection applet. Untuk menyelesaikan tugasnya, kelas sistem biasanya memanggil metode native.

Framework aplikasi Java Card merupakan interface pemrograman aplikasi. Framework terdiri dari 4 inti dan ekstensi paket API. Kelas API dipadatkan dan disesuaikan untuk pembuatan applet smart card. Keuntungan utama dari framework ini yaitu kemudahan pembuatan applet. Pembuat applet dapat lebih fokus pada detail applet dibanding detail dari infrastruktur sistem smart card. Applet mengakses layanan JCRE melalui kelas API.

Industri atau bisnis tertentu dapat menyediakan “add-on libraries” untuk layanan tambahan atau model keamanan dan model sistem tertentu. Contohnya, Open Platform memperluas layanan JCRE agar cocok dengan industri keuangan, sehingga keamanan adalah fitur yang sangat dibutuhkan. Dengan banyaknya fitur add-on, penerbit dapat melakukan personalisasi pada kartu dengan menspesifikkan perintah.

Installer memungkinkan download software dan applet yang aman ke dalam kartu setelah kartu dibuat dan ditebitkan. Installer bekerjasama dengan program instalasi off-card untuk menyelesaikan tugas me-load isi file CAP. Installer adalah komponen opsional pada JCRE. Tanpa installer, semua software kartu, termasuk applet, harus ditulis dalam memori kartu selama proses produksi kartu.

Applet Java Card adalah aplikasi user pada platform Java Card. Applet ditulis dengan subset bahasa pemrograman Java serta dikendalikan dan diatur oleh JCRE. Applet dapat di-download. Applet dapat ditambahkan ke smart card Java setelah kartu diproduksi.

JCRE lifetime

Dalam PC atau workstation, JCVM berlaku sebagai proses sistem operasi. Data dan objek dibuat di RAM. Ketika proses OS dihentikan, aplikasi Java dan objeknya secara otomatis dihapuskan.

Dalam smart card Java, JCVM berjalan dalam JCRE. JCRE diinisialisasi waktu inisialisasi kartu. Inisialisasi JCRE dilakukan hanya satu kali seumur hidup kartu. Selama proses inisialisasi, JCRE menginisialisasi JCVM serta membuat objek untuk menyediakan layanan JCRE dan menejemen applet. Setelah applet diinstal, JCRE membuat applet instance dan applet membuat objek untuk menyimpan data.

Banyak informasi pada kartu yang harus dijaga walaupun daya dihilangkan dari kartu. Teknologi memori persisten (EEPROM) digunakan untuk mencapainya. Data dan objek dibuat dalam memori persisten. Masa hidup JCRE sama dengan masa hidup kartu. Ketika daya dihilangkan, JCVM hanya tertunda. Keadaan JCRE dan objek yang dibuat terjaga.

Lalu, setelah kartu diberi daya, JCRE me-restart eksekusi JCVM dengan me-load data dari memori persisten (tambahan: JCRE juga memberikan Answer to Reset (ATR) ke host yang menunjukkan kartu dapat berkomunikasi). JCRE tidak melanjutkan operasi JCVM pada titik dimana daya hilang. JCVM di-reset dan melakukan eksekusi dari awal main loop. Reset JCRE berbeda dengan inisialisasinya, karena reset JCRE menjaga applet dan objek yang dibuat applet tetap ada. Selama reset, jika ada transaksi yang tidak selesai sebelumnya, JCRE melakukan beberapa cleanup yang perlu agar keaddan JCRE konsisten.

Apa yang JCRE lakukan selama sesi CAD

Waktu semenjak kartu dimasukkan ke CAD sampai kartu diambil dari CAD disebut sesi CAD. Selama sesi CAD, JCRE bertindak sebagai smart card, yaitu mendukung komunikasi I/O APDU dengan aplikasi host. Application Protocol Data Units (APDUs) adalah paket data yang dipertukarkan antara applet dan aplikasi host. APDU bisa berisi perintah dari host ke applet saja atau respon dari applet ke host saja.


Setelah JCRE reset, JCRE masuk ke dalam sebuah putaran (loop), menunggu C-APDU dari host. Host mengirim C-APDU ke platform Java Card menggunakan interface komunikasi serial melalui titik kontak I/O kartu.

Ketika perintah datang, JCRE bisa memilih sebuah applet untuk menjalankan instruksi dalam perintah atau meneruskan perintah ke applet yang telah dipilih. Applet yang telah dipilih kemudian mengambil kendali dan memproses C-APDU. Setelah selesai, applet mengirim sebuah respon ke aplikasi host dan penyerahan kendali ke JCRE. Proses ini berulang ketika perintah berikutnya dating. Bagaimana applet memproses APDU dijelaskan pada bab 7 dan 8.

Fitur JCRE

Disamping mendukung model runtime bahsa pemrograman Java, JCRE mendukung 3 fitur runtime tambahan:

  • Objek persisten dan transien – Default dari obejk Java Card adalah persisten dan dibuat dalam memori persisten. Ruang dan data dari objek tersebut ada saat sesi CAD. Untuk alasan keamanan dan performansi, applet dapat membuat objek dalam RAM. Objek tersebut disebut objek transien. Objek transien berisi data bertempo yang tidak persisten setelah sesi CAD berakhir.
  • Operasi dan transaksi yang atomik – JCVM menjamin operasi menulis ke satu field dalam sebuah objek/kelas menjadi atomik. Field yang diubah bisa memperoleh nilai baru atau dikembalikan ke nilai sebelumnya. Disamping itu, JCRE menyediakan APIs transaksi. Sebuah pplet dapat memiliki beberapa operasi menulis dalam sebuah transaksi. Bisa jadi semua perubahan dalam sebuah transaksi selesai atau (jika kegagalan terjadi di tengah-tengah transaksi) tidak ada perubahan yang dihasilkan.
  • Firewall applet dan mekanisme sharing – Firewall applet mengisolasi applet. Masing-masing applet berjalan pada ruang yang telah didesain. Keberadaan dan operasi satu applet tidak berpengaruh pada applet yang lain pada kartu. Firewall applet dilakukan oleh JCVM sambil JCVM mengeksekusi byte. Di situasi dimana applet perlu membagi data atau mengakses layanan JCRE, JCVM membolehkan fungsi tersebut dengan melalui mekanisme berbagi yang aman.

APIs PADA JAVA CARD

APIs Java Card terdiri dari sekumpulan kelas yang telah disesuaikan untuk pemrograman aplikasi smart card berdasarkan model ISO 7816. APIs berisi 3 paket inti dan 1 paket ekstensi. 3 paket inti adalah java.lang, javacard.framework, dan javacard.security. Paket ekstensi adalah javacardx.crypto.

Developer yang familiar dengan platform Java akan melihat banyak kelas pada platform Java yang tidak didukung dalam APIs Java Card. Contohnya, kelas untuk interface GUI, I/O jaringan, I/O sistem file desktop. Alasannya adalah smart card tidak mempunyai display, serta menggunakan protokol jaringan dan struktur sistem file yang berbeda. Banyak utilitas kelas pada platform Java tidak ada karena memori yang sangat terbatas.

Kelas dalam APIs Java Card padat dan ringkas. API berisi kelas yang diadaptasi dari platform Java sehingga dapat menyediakan dukungan bahasa Java dan layanan kriptografi. API juga berisi kelas yang dibuat secara khusus untuk memenuhi standar ISO 7816.

Paket java.lang

Paket java.lang adalah subset dari paket java.lang pada platform Java. Kelas-kelas dari subset yang dipakai adalah Object, Throwable, dan beberapa kelas exception yang berhubungan dengan virtual machine. Banyak metode Java tidak tersedia untuk kelas-kelas tersebut. Contohnya, kelas Object hanya berupa konstruktor yang default dan metode equal.

Peket java.lang menyediakan dukungan bahasa pemrograman Java yang dasar. Kelas Object merupakan root untuk hierarki kelas. Kelas Throwable menyediakan ancestor untuk semua eksepsi. Kelas exception yang didukung Java card menjamin konsistensi dari semantik ketika terjadi error yang disebabkan pelanggaran terhadap bahasa Java. Contohnya, JVM dan JCVM melempar sebuah NullPointerException saat sebuah referensi yang kosong (null) diakses.

Object

Throwable

Exception

RuntimeException

ArithmeticException

ArrayIndexOutOfBoundsException

ArrayStoreException

ClassCastException

IndexOutOfBoundsException

NullPointerException

SecurityException

NegativeArraySizeException

Paket javacard.framework

javacard.framework adalah paket utama. “javacard.framework” menyediakan kelas dan interface untuk fungsionalitas inti dari applet. Yang terpenting adalah javacard.framework mempunyai kelas Applet (javacard.framework.Applet), yang menyediakan framework untuk eksekusi applet dan interaksi dengan JCRE selama masa hidup applet. Perannya yang mematuhi JCRE adalah sama dengan kelas Applet Java untuk hosting browser. Kelas applet user harus ekstend dari kelas Applet dan meng-override metode dalam kelas Applet untuk menerapkan fungsionalitas applet.

Kelas penting lainnya dalam paket javacard.framework adalah kelas APDU. APDUs dibawa oleh protokol transpor. Dua protokol transpor standar adalah T=0 dan T=1. Kelas APDU didesain agar tidak tergantung pada protokol transpor tertentu. Dengan kata lain, kelas APDU didesain sehingga kerumitan dan perbedaan antara T=0 dan T=1 disembunyikan dari developer applet. Developer applet dapat menangani C-APDU lebih banyak dan mudah dengan metode yang disediakan dalam kelas APDU. Applet bekerja tanpa menghiraukan protokol transmisi yang mendasarinya. Bagaimana menggunakan kelas APDU dijelaskan pada BAB 8.

Kelas pada platform Java java.lang.System tidak ada dalam platform Java Card. Platform Java Card menyediakan javacard.framework.JCSystem, yang merupakan interface untuk perilaku sistem. Kelas JCSystem mencangkup sekumpulan metode untuk mengendalikan eksekusi applet, menejemen resource, menejemen transaksi, dan sharing objek antar applet.

Kelas lain dalam paket javacard.framework adalah PIN, utility, dan exceptions. PIN kependekan dari Personal Identification Number. PIN adalah password yang digunakan dalam smart card untuk autentikasi pemegang kartu.

Paket javacard.security

Paket javacard.security menyediakan framework untuk fungsi kriptografi. Desainnya didasarkan pada paket java .security.

Paket javacard.security mendefinisikan sebuah kelas keyBuilder (pabrik kunci) dan berbagai interface yang merupakan kunci kriptografi yang digunakan dalam algoritma simetrik (DES) atau asimetrik (DSA dan RSA). Disamping itu, paket ini juga mempunyai kelas abstrak, yaitu RandomData, Signature, dan MessageDigest, yang digunakan untuk membuat data random serta untuk menghitung message digest dan signature.

Paket javacardx.crypto

Paket javacard.crypto adalah paket tambahan. Paket ini berisi kelas kriptografi dan interface berdasarkan pada kebutuhan aturan ekspor Amerika Serikat. Paket javacardx.crypto mempunyai kelas abstrak utama Cipher untuk fungsi enkripsi dan dekripsi.

Paket javacard.security dan javacardx.crypto mendefinisikan interface API yang applet panggil untuk meminta layanan kriptografi. Akan tetapi, mereka tidak menyediakan beberapa implementasi. Provider JCRE perlu menyediakan kelas yang menerapkan interface kunci dan ekstensi dari kelas abstrak RandomData, Signature, MessageDigest, dan Chiper. Biasanya coprocessor terpisah berada pada smart card untuk melakukan komputasi kriptografi. BAB 10 menjelaskan bagaimana mendukung fungsi kriptografi dalam applet menggunakan kelas dalam paket javacard.security dan javacardx.crypto.

APPLET PADA JAVA CARD

Tidak perlu bingung antara applet Java Card dan applet Java karena dinamai sama. Applet Java Card adalah program Java yang mengalami beberapa perubahan dan bisa berjalan dalam JCRE. Applet Java Card tidak ditujukan untuk berjalan dalam browser. Alasan penamaan applet dipilih untuk Java Card adalah applet Java Card dapat di-load ke JCRE setelah kartu selesai diproduksi. Tidak seperti aplikasi dalam banyak sistem embedded, applet tidak perlu di-burn ke dalam ROM saat produksi. Bahkan, applet dapat di-download secara dinamis ke dalam kartu kapanpun.

Kelas applet harus menerapkan kelas javacard.framework.Applet. Kelas Applet adalah superclass untuk semua applet yang berada di Java Card. Kelas applet adalah blueprint yang mendefinisikan variabel dan metode applet. Applet yang berjalan pada kartu adalah instance applet, yaitu objek dari kelas applet. Seperti beberapa objek persisten, setelah dibuat, applet berada pada kartu selamanya.

JCRE mendukung lingkungan multiaplikasi. Applet yang multipel dapat bersama-sama berada pada satu Java smart card, dan applet dapat mempunyai instance yang multipel. Contohnya, satu instance applet wallet dapat dibuat untuk mendukung dolar US dan instance lainnya dapat dibuat untuk pound Inggris.

KETENTUAN PENAMAAN APPLET DAN PAKET

Paket dan program yang familiar pada platform Java mempunyai identitas unik menggunakan string Unicode dan skema penamaan berdasarkan nama domain Internet. Dalam platform Java Card, masing-masing instance applet mempunyai identitas unik berupa Application Identifier (AID) agar mudah dipilih. Paketnya juga ditandai dengan AID. Ketika di-load ke kartu, paket kemudian dihubungkan dengan paket lain pada kartu lewat AIDnya.

ISO 7816 menspesifikkan AID untuk digunakan sebagai identitas unik pada aplikasi kartu dan jenis tertentu file dalam sistem file kartu. AID adalah array of bytes yang mempunyai 2 bagian yang berbeda. Bagian yang pertama mempunyai panjang 5 byte, disebut Resource Identifier (RID). Bagian ke-2 mempunyai panjang yang berubah-ubah, disebut Proprietary Identifier Extension (PIX). Panjang PIX antara 0 sampai 11 byte. Maka dari itu panjang AID adalah antara 5 sampai 16 byte.


ISO mengendalikan perusahaan dalam penamaan RID, karena masing-masing perusahaan harus RID berbeda. Perusahaan dapat mengubah-ubah penamaan PIX dalam AID. Bab ini menyediakan penjelasan singkat tentang AID. Untuk lebih lengkapnya, baca ISO 7816-5 tentang AID Registration Category D format.

Pada platform Java Card, AID untuk paket dibangun dengan menggabungkan RID milik perusahaan dan PIX milik applet. AID untuk applet dibangun sama dengan AID untuk paket. AID untuk applet adalah penggabungan dari RID milik provider applet dan PIX milik applet sendiri. AID untuk applet tidak boleh bernilai sama dengan AID untuk paket atau AID untuk applet lainnya. Akan tetapi, karena RID dalam AID menunjukkan provider applet, AID untuk paket dan AID untuk applet-applet dalam paket tersebut harus mempunyai RID yang sama.

AID untuk paket dan AID default untuk applet yang berada pada paket dispesifikasikan dalam file CAP. Mereka diberikan ke konverter saat file CAP dibuat.

PROCESS PEMBUATAN APPLET

Pembuatan applet Java Card itu seperti program Java lainnya, yaitu developer menulis satu atau lebih kelas Java dan meng-compile source code dengan Java compiler sehingga menghasilkan satu atau lebih file kelas.


Berikutnya, applet dijalankan, diuji, dan di-debug dalam lingkungan simulasi. Simulator mensimulasikan JCRE pada PC atau workstation. Pada lingkungan simulasi, applet berjalan pada JVM. Simulator dapat memanfaatkan banyak alat pembuat program Java (JVM, debugger dan lain-lain) dan membuat developer dapat menguji perilaku applet dan melihat dengan cepat hasil dari me-running applet tanpa melalui proses konversi. Saat langkah ini, seluruh aspek fungsional applet dapat diuji. Akan tetapi, beberapa fitur JCVM, seperti firewall applet serta perilaku objek transien dan persisten, tidak dapat di uji coba.

Kemudian, file kelas applet yang berada pada sebuah paket Java dikonversi menjadi file CAP menggunakan konverter Java Card. Input untuk konverter Java Card tidak hanya file kelas yang dikonversi, tapi juga satu atau lebih file export untuk paket-paket yang berhubungan. File CAP atau file export merupakan satu paket Java. Jika sebuah applet terdiri dari beberapa paket, sebuah file CAP dan sebuah file export dibuat untuk masing-masing paket.

Langkah berikutnya, file CAP yang nantinya merupakan applet di-load dan diuji dalam lingkungan emulasi. Emulator juga mensimulasikan JCRE pada PC atau workstation. Akan tetapi, emulator adalah alat pengujian yang lebih canggih. Emulator memiliki emplementasi JCVM. Perilaku eksekusi applet dalam emulator sama dengan perilakunya saat berjalan dalam kartu yang sebenarnya. Dalam langkah ini, tidak hanya applet yang diuji lebih lanjut, tapi juga perilaku runtime applet dapat diukur.

Banyak simulator dan emulator Java Card hadir dengan debugger. Debugger membolehkan developer untuk menyeting breakpoints atau program single-step, yang melihat perubahan keadaan eksekusi applet dalam simulasi atau emulasi JCRE.

Terakhir, saat applet diuji dan siap di-download ke dalam kartu yang sebenarnya, applet yang merupakan satu atau beberapa file CAP, di-load dan diinstal dalam Java smart card.

INSTALASI APPLET

Ketika Java smart card diproduksi, sistem smart card dari vendor tertentu dan JCRE di-burn ke dalam ROM. Proses menulis komponen permanen ke dalam memori nonmutable pada chip ini disebut masking. Teknologi untuk melakukan masking adalah teknologi pada smart card yang dimiliki vendor tertentu dan tidak dibahas dalam artikel ini.

Applet ROM

Kelas applet dapat di-mask dalam ROM bersama dengan JCRE dan komponen sistem lain selama proses produksi kartu. Instance applet diinisiasikan dalam EEPROM oleh JCRE selama inisialisasi JCRE atau pada langkah selanjutnya. Applet tersebut disebut applet ROM.

Applet ROM adalah applet default yang datang bersama kartu dan disediakan oleh penerbit kartu. Karena isi applet ROM dikendalikan oleh penerbit, teknologi Java Card mengizinkan applet ROM untuk mendeklarasikan metode native yang implementasinya ditulis dalam bahasa pemrograman lain, seperti C atau kode assembly. Metode native tidak ditujukan oleh JCVM untuk mengecek keamanan.

Applet preissuance dan postissuance

Kelas applet dan kelas library yang berhubungan dapat di-download dan ditulis ke dalam memori mutable (misalnya EEPROM) pada Java smart card setelah kartu diproduksi. Applet tersebut dapat dikategorisasikan lebih lanjut menjadi applet preissuance dan postissuance. Istilah preissuance dan postissuance berasal dari fakta bahwa applet dapat di-download sebelum atau setelah kartu diterbitkan. Applet preissuance diperlakukan sama seperti applet ROM, keduanya dikendalikan penerbit.

Tidak seperti applet ROM atau applet preissuance, applet postissuance tidak diboleh mendeklarasikan metode native. Sehingga JCRE tidak bisa mengendalikan isi applet. Mengizinkan applet yang di-download berisi kode native dapat membahayakan keamanan pada Java Card. Pembahasan selanjutnya difokuskan pada instalasi applet postissuance. Biasanya, applet preissuance di-load menggunakan mekanisme sama seperti applet postissuance.

Instalasi Applet postissuance

Instalasi applet merupakan proses me-load kelas applet yang telah dikonversi menjadi file CAP, menyatukannya dengan keadaan eksekusi JCRE, dan membuat applet instance.

Pada platform Java Card, unit yang di-load dan diinstal adalah file CAP. Sebuah file CAP terdiri dari kelas-kelas yang membangun sebuah paket Java. Applet minimal berasal dari sebuah paket dengan satu kelas yang berasal dari kelas javacard.framework.Applet. Applet yang lebih kompleks dengan sejumlah kelas dapat diatur ke dalam satu paket atau sekumpulan paket.

Untuk me-load sebuah applet, instaler off-card mengambil file CAP dan merubahnya menjadi serangkaian command APDU (C-APDU), yang merupakan isi file CAP. Dengan mempertukarkan C-APDU dengan program instalasi off-card, instaler on-card menulis isi file CAP ke dalam memori persisten kartu dan menghubungkan kelas-kelas dalam file CAP dengan kelas lain yang berada pada kartu. Instaler on-card juga membuat dan menginisialisasi beberapa data yang digunakan secara internal oleh JCRE untuk mendukung berjalannya applet. Jika applet membutuhkan beberapa paket untuk berjalan, masing-masing file CAP di-load pada kartu.

Pada langkah terakhir instalasi applet, instaler membuat sebuah instance applet dan mendaftarkan instance dengan JCRE (Pada penerapan JCRE, operasi untuk membuat sebuah instance applet dapat dilakukan pada langkah selanjutnya setelah instalasi applet). Untuk melakukannya, instaler memanggil metode install:

public static void install (byte[] bArray, short offset, byte length)

Metode install adalah metode entri point pada applet, sama halnya dengan metode main dalam aplikasi Java. Applet harus menerapkan metode install. Dalam metode install, dipanggil konstruktor applet lalu diinisialisasi instance applet. Parameter bArray menyediakan parameter instalasi untuk inisialisasi applet. Parameter instalasi dikirim ke kartu bersamaan dengan file CAP. Developer applet mendefinisikan format dan isi dari parameter instalasi.

Setelah applet diinisialisasi dan diregistrasikan pada JCRE, applet dapat dipilih dan dijalankan. JCRE mengidentifikasi applet (instance applet) yang sedang berjalan, menggunakan AID. Applet, dapat mendaftarkan dirinya sendiri dengan JCRE dengan menggunakan AID default yang ditemukan dalam file CAP, atau applet dapat memilih AID yang berbeda. Parameter instalasi dapat digunakan untuk menyediakan sebuah alternatif AID.

Metode install dapat dipanggil lebih dari satu kali untuk membuat instance applet yang banyak. Masing-masing instance applet diidentifikasi oleh AID yang unik.

Dalam lingkungan Java Card, sebuah applet dapat ditulis dan dieksekusi tanpa mengetahui bagaimana kelasnya di-load. Satu-satunya tanggung jawab applet selama instalasi adalah mengimplementasikan metode install.

Errror recovery selama instalasi applet

Proses instalasi adalah transaksi. Dikarenakan ada error, seperti kesalahan pemrograman, memori yang tak memadai, card tear, atau error lain, instaler membuang beberapa file CAP dan beberapa applet yang sudah dibuat selama instalasi serta mengembalikan ruang dan keadaan sebelumnya pada JCRE.

Batasan instalasi

Pembaca harus tahu bahwa instalasi applet berbeda dengan loading kelas secara dinamik pada runtime, yang didukung JVM pada lingkungan desktop. Instalasi applet Java Card secara sederhana adalah men-download kelas-kelas yang telah melalui proses instalasi ke dalam kartu setelah kartu dibuat.

Oleh karena itu, instalasi applet Java Card mempunyai 2 poin utama. Pertama,applet berjalan pada kartu hanya boleh berhubungan dengan kelas yang sudah berada di kartu, dikarenakan tidak akan bisa untuk men-download kelas selama applet berjalan.

Kedua, loading harus menjamin bahwa masing-masing paket yang baru saja di-load hanya berhubungan dengan paket yang sudah di kartu. Contohnya, untuk menginstal sebuah applet, paket javacard.framework harus ada kartu, karena semua kelas applet harus berasal dari javacard.framework.Applet. Instalasi akan gagal jika ada sirkulasi seperti paket A dan paket B saling berhubungan satu sama lain.

Sumber: from book Java card Technology for Smart Card, Architecture and Programmer’s Guide

This entry was posted in Java Card. Bookmark the permalink.