Prevođenje i instalacija pametne zdravstvene iskaznice 

1. Prevođenje i instalacija appleta pametne zdravstvene iskaznice

Za prevođenje appleta pametne zdravstvene iskaznice potreban je Java SDK 1.3. (http://java.sun.com/)
Prevođenje appleta pametne zdravstvene iskaznice sastoji se od niza jednostavnih koraka:
  1. prevođenje izvornog koda, *.java datoteke, u Java Byte kod, *.class datoteke, pomoću Java prevoditelja (javac). Za prevođenje potrebna je JAR (engl. Java Archive) arhiva koja sadrži javacardx.crypto, javacard.security i javacard.framework pakete . Za potrebe razvoja pametne zdravstvene iskaznice korišten je “jc_api_212.jar” koji dolazi sa “Schlumberger Smart Card Toolkit 4.5.16”. Prevođenje se obavlja sljedećom naredbom:

javac -d bin\ -classpath "jc_api_212.jar" src\hr\fer\zemris\diplomski\pametnaZdravstvenaIskaznica\*.java

  1. Pomoću Java Card prevoditelja stvoriti CAP datoteku pogodnu za učitavanje na pametnu karticu. Za potrebe razvoja pametne zdravstvene iskaznice korišten je “Schlumbreger Java Card 2.1 Program File Generator” koji stvara IJC (engl. interoperable javacard CAP) datoteke.

  2. Snimanje CAP dototeka na pametnu karticu. Za potrebe razvoja pametne zdravstvene iskaznice korišten je “Schlumberger Access Toolkit 4.5.”.

  3. Instalacija appleta (stvaranje primjerka kartične aplikacije) na samoj pametnoj kartici. Za potrebe razvoja pametne zdravstvene iskaznice korišten je “Schlumberger Access Toolkit 4.5.”.



2. Prevođenje terminala pametne zdravstvene iskaznice

Za prevođenje terminala pametne zdravstvene iskaznice korištena je Java SDK 1.4.
Prevođenje terminala pametne zdravstvene iskaznice ne razlikuje se od prevođenja ostalih Java aplikacija. Da bi prevođenje bilo uspješno Java prevoditelj treba moći pristupiti sljedećim JAR datotekama:
  1. base-core.jar i base-opt.jar koji su dio OCF-a,

  2. javacardframework.jar koji je dio Java Card 2.2.1 Developement Kit-a,

  3. tpzi.jar koji sadrži neke razrede appleta pametne zdravstvene iskaznice (SuceljeSigurnosti i SuceljePZI).


Prevođenje se izvodi sljedećom naredbom:

javac -d bin/ -classpath "$CLASSPATH:
 $OCF_HOME/lib/base-core.jar:
 $OCF_HOME/lib/base-opt.jar:
 $JC_HOME/lib/javacardframework.jar:
                          tpzi.jar"
src/hr/fer/zemris/diplomski/terminalPZI/*.java


javac -d bin\ -classpath "%CLASSPATH%;
 %OCF_HOME%\lib\base-core.jar;
 %OCF_HOME%\lib\base-opt.jar;
 %JC_HOME%\lib\javacardframework.jar;
                          tpzi.jar"
src\hr\fer\zemris\diplomski\terminalPZI\*.java


Pokretanje pametne zdravstvene iskaznice

Pokretanje terminala pametne zdravstvene iskaznice


Za pokretanje terminala pametne zdravstvene iskaznice potrebna je Java RE 1.4.

Da bi se terminal pametne zdravstvene iskaznice mogao pokrenuti Java VM mora moći doći do sljedećih arhiva:

  1. base-core.jar i base-opt.jar koji su dio OCF-a,

  2. tpzi.jar koji sadrže neke razrede appleta pametne zdravstvene iskaznice (SuceljeSigurnosti i SuceljePZI) i sve razrede terminala pametne zdravstvene iskaznice.


Pokretanje se izvodi sljedećom naredbom:

java -classpath "$CLASSPATH:
  $OCF_HOME/lib/base-core.jar:
  $OCF_HOME/lib/base-opt.jar:
                 tpzi.jar"
hr.fer.zemris.diplomski.terminalPZI.Terminal


java -classpath "%CLASSPATH%;
  %OCF_HOME%\lib\base-core.jar;
  %OCF_HOME%\lib\base-opt.jar;
                 tpzi.jar"
hr.fer.zemris.diplomski.terminalPZI.Terminal


Da bi se terminal mogao pokretnuti potrebno je presnimit “java.policy” datoteku (može se pronaći na http://java.sun.com/products.jce.index-14.html) i instalirati davatelja kriptografskih usluga (engl. Java Cryptography Extension -JCE) koji podržava ISO7816-4 način nadopune (engl.padding) i RSA algoritam.



Generiranje X.509 digitalnih certifikata pomoću alata "openssl"


1.  Generiranje samopotpisanog digitalnog certifikata
  certifikacijskog centra (engl. Certificate Authority - CA)


openssl req -x509 -outform PEM -sha1 -nodes -days 365 -newkey rsa:1024 -keyout Kd_CA.pem -out CER_CA_CA.pem   

POZOR:
Generirani digitalni certifikat biti ce u ASN.1 DER, PKCS#10 formatu
zapisan u Base64 formatu. Generirani privatni ključ je u tradicionalnom formatu zapisan u Base64 formatu.


2. Izdavanje X.509 digitalnog certifikata korisnika od strane CA


openssl req -outform PEM -sha1 -nodes -days 365 -newkey rsa:1024 -keyout Kd_USER.pem -out CER_USER_CA_REQ.pem

openssl x509 -inform PEM -outform PEM -in CER_USER_CA_REQ.pem -out CER_USER_CA.pem -sha1 -days 365 -req -CA CER_CA_CA.pem -CAkey Kd_CA.pem -CAcreateserial

rm -f CER_USER_CA_REQ.pem

     
POZOR:
Generirani digitalni certifikat biti ce u ASN.1 DER, PKCS#10 formatu
zapisan u Base64 formatu. Generirani privatni ključ je u tradicionalnom formatu zapisan u Base64 formatu.


3. Pretvorba ranije generiranih privatnih ključeva u binarni nekriptirani PKCS#8 format


openssl pkcs8 -topk8 -inform PEM -outform DER -in Kd_X.pem -out Kd_X_PKCS8.der -nocrypt