Sånt jag gör

Yay, jag har krypterat en liten buffer med data i! :) Det kan tyckas trivialt, men de sätt som används i exempelkod är inte alltid anpassade till JCOP-kort, så jag fick ändra och testa lite olika saker. Lagom till 10-fikat bjuder jag på en liten kodsnutt. Den gör DES-kryptering av ett APDU-paket och ska ligga i process-metoden. Glöm inte felhanteringen! :)

byte[] buf = apdu.getBuffer(); //Här lagras APDU:n som man skickar till kortet
//Längden på datat som ska krypteras räknas ut
short Lc = (short) (buf[ISO7816.OFFSET_LC] & 0x00FF);
//Kryptofunktionen initieras, tdesKey är en 16-bitars bytearray
desCipher.init(tdesKey, Cipher.MODE_ENCRYPT);
try {
//transientBuffer är en bytearray för utdatat, deklarerad högst upp i klassen
Lc = desCipher.doFinal(buf,(short)ISO7816.OFFSET_CDATA,Lc,transientBuffer,(short)0x00);
apdu.setOutgoing(); //Nu ska här skickas utdata!
apdu.setOutgoingLength(Lc); //Det ska vara Lc långt
//Varsågod, här kommer det krypterade datat!
apdu.sendBytesLong(transientBuffer,(short)0x00,Lc);
} //Här kommer det felhantering sen, det ska man alltid ha. :)

Kommentarer
Postat av: Elisabeth

Alles klar. ;)


Kommentera inlägget här:

Namn:
Kom ihåg mig?

E-postadress:

URL:

Kommentar:

Trackback