Hi,
     
     I m using the external authentication command after a get challenge 
     and the create file works in this case with the Multiflex card . I 
     have never tried a create file using the cryptogram.
     
     Hope it's help
     
     Jerome
     
     


______________________________ Reply Separator _________________________________
Subject: [OCF]  create file on a multiflex
Author:  eelco ([EMAIL PROTECTED]) at internet
Date:    12/12/01 6:32 AM


Hi,
     
can anyone tell me what's wrong with this piece of code? 
The access condition for the create file command in the root file is 
0x04, which means "you must know a cryptographic key". I'm using the 3k 
Multiflex card from Schlumberger which comes with the book "Smart Card 
Developer's Kit".
     
********************************************************
 // command to ask card for a challenge
 byte[] chall = { (byte) 0xC0, (byte) 0x84, (byte) 0x00, (byte) 0x00,
(byte) 0x08};
     
 // first bytes for creating a file
 byte[] CREATE_FILE = { (byte) 0xF0, (byte) 0xE0, (byte) 0x00};  
     
 String sfilename = "EF_TEST_CHD";
 byte[] bfilename = sfilename.getBytes();
     
 // 0x05 is number of records, 0x11 is sum of length of following 2
fields   
 byte[] temp = { (byte) 0x05, (byte) 0x11 }; 
 try {
    CommandAPDU capdu = new CommandAPDU(5); 
    capdu.append(chall);
    ResponseAPDU rapdu = terminal.sendAPDU(currentSlot,capdu); 
    byte sw1 = rapdu.sw1();
    byte sw2 = rapdu.sw2();      
    byte[] data = rapdu.data();
    if ((sw1 == (byte) 0x90) && (sw2 == (byte) 0x00)) {
         System.out.print("Encrypting challenge...\n"); 
         byte[] crypt = new byte[8];
         // the DES_KEY is the key that is provided with the book 
         DESKey deskey = new DESKey(DES_KEY); 
         deskey.encrypt(data,0,crypt,0);
         System.out.print("Encrypted data: " + HexString.hexify(crypt) +
"\n");                           
     
         CommandAPDU capdufile = new CommandAPDU(30); 
         capdufile.append(CREATE_FILE);
         capdufile.append(temp);
         capdufile.append(bfilename);
         int i;
         byte[] auth = new byte[6];
     
         // the create file command needs the first 6 bytes of the
encryption as a last parameter           
         for (i=0;i<6;i++) {
           auth[i] = crypt[i];  
         }
         capdufile.append(auth);
     
         System.out.print("APDU: " +
HexString.hexify(capdufile.getBytes()) + "\n");                      
     
         ResponseAPDU rapdufile =
terminal.sendAPDU(currentSlot,capdufile);
         byte swfile1 = rapdufile.sw1();
         byte swfile2 = rapdufile.sw2();         
         byte[] datafile = rapdufile.data(); 
         System.out.print("SW1: " + HexString.hexify(swfile1) +
"\n");             
         System.out.print("SW2: " + HexString.hexify(swfile2) + "\n");          
     
           }
         }
         catch (Exception e) {
     
         }
     
********************************************************************************
***
Thanks,
     
-- 
Eelco Daams
Internet Developer
     
BuyWays, de bouwers van www.surfze.nl
     
______________________________________________________ 
BuyWays Internet Strategie & Technologie
Damsterdiep 31a/b
9711 SG GRONINGEN
tel. 050-3118123
fax 050-3118124
gsm 06-10090866
http://www.buyways.nl
_______________________________________________________ 
Op al onze diensten zijn onze algemene voorwaarden
voor dienstverlening van toepassing, zoals gedeponeerd 
bij de Kamer van Koophandel te Groningen, onder
nummer 3057.
     
     
---
> Visit the OpenCard web site at http://www.opencard.org/ for more 
> information on OpenCard---binaries, source code, documents.
> This list is being archived at http://www.opencard.org/archive/opencard/
     
! To unsubscribe from the [EMAIL PROTECTED] mailing list send an email 
! to
!                           [EMAIL PROTECTED] 
! containing the word
!                           unsubscribe 
! in the body.
     


---
> Visit the OpenCard web site at http://www.opencard.org/ for more
> information on OpenCard---binaries, source code, documents.
> This list is being archived at http://www.opencard.org/archive/opencard/

! To unsubscribe from the [EMAIL PROTECTED] mailing list send an email
! to
!                           [EMAIL PROTECTED]
! containing the word
!                           unsubscribe 
! in the body.

Reply via email to