Hi,

this is my first message, so first and foremost I want to tell you that I am 
very pleased to develop in OpenSC.


I am currently working on the Oberthur's Cosmo One card (V7.0.1-n) support, 
for an important project. I have access to Oberthur ressources, and they are 
ready to help. Basically, my wish is to contribute with Viktor Tarasov to the 
IASECC support (my card is compliant).

Sadly, I encounter a problem when I try to create or delete an object (or even 
generate a key pair), whereas finding and reading objects seem to work 
perfectly. It doesn't work at all because each time a bad "select" APDU refers 
to a non existing file (always the same).

Let's talk APDU !  :)

Each time it fails and whatever the object is, I have something like:

99999999 APDU: 00 A4 04 00 10 A0 00 00 00 77 01 08 00 07 00 00 FE 00 00 01 00 
00
00035159 SW: 90 00
00000163 APDU: 00 A4 09 04 04 50 15 49 46 00
00014831 SW: 6A 82

The second select (A4) fails, and it stops here (so basically, it only sends 
two commands). I do not understand where the reference for this (wrong) EF 
comes from. According to the source code, this path is directly given to the 
concerned function (e.g. iasecc_delete_file) by opensc library core. How can 
read work and delete fail ? Is there a wrong object reference in the driver 
source code for my card ?


As I possess the official Oberthur PKCS#11 implementation, I have done a 
deletion test (on the certificate public key, first object to appear), to 
compare APDUs:

40314681 APDU: 00 A4 04 0C 0D E8 28 BD 08 0F F2 50 4F 54 20 41 57 50
00013590 SW: 90 00
00000596 APDU: 00 A4 01 04 02 34 02
00015407 SW: 62 18 80 02 03 0A 82 01 01 83 02 34 02 88 00 A1 06 8C 04 43 00 00 
00 8A 01 05 90 00
// this is the deletion
00000764 APDU: 00 E4 00 00 00
00203285 SW: 90 00
// then it selects again and update the EF several times with a "FF FF..." 
sequence


I have noticed that the first APDU sequence is already used when I enter the 
PIN code (which is padded, I have already patched Viktor's source code to do 
so, I will submit my patch later):

00005619 APDU: 00 A4 04 0C 10 A0 00 00 00 77 01 08 00 07 00 00 FE 00 00 01 00 
00034375 SW: 90 00                                                            
00000502 APDU: 00 A4 04 0C 0D E8 28 BD 08 0F F2 50 4F 54 20 41 57 50          
00012737 SW: 90 00                                                            
00004576 APDU: 00 20 00 01 40 39 39 39 39 FF FF FF FF FF FF FF FF FF FF FF FF 
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF               
                                              
00041243 SW: 90 00

I don't know if it can help...

I must confess that I do not understand well the process to find EFs 
addresses, but it seems that I have a bug on it. I am sure that this is a 
piece of cake for you, isn't it ?  :)


Thank you for your help ! If you want more logs (maybe the initialization 
sequence ?), I can naturally provide you so.


Kind Regards,
-- 
Gilles Blanc - gbl...@linagora.com
Ingénieur expert informatique embarquée
Représentant du personnel - Secrétaire du CE
Groupe LINAGORA - http://www.linagora.com
Tél.: +33(0)1 46 96 63 39 - Fax : +33(0)1 46 96 63 64
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to