Hi Viktor,

I've updated the openpgp-card.c and the select_file() now returns right
error "Data object not found".
However, in the final list, the missing pub key still be listed (see the
attached log).

Is anything wrong with the PKCS15 common part?

Thanks,

On 05/05/2012 07:29 PM, Viktor Tarasov wrote:
> Le 05/05/2012 07:14, Nguyễn Hồng Quân a écrit :
>> Thanks Viktor,
>>
>> I found the defect at the function pgp_get_blob() in card-openpgp.c. 
>> There are lines:
>>
>> if (child->id == id) {
>>                      (void) pgp_read_blob(card, child);
>>                      *ret = child;
>>                      return SC_SUCCESS;
>>
>> The problem is either:
>> 1. The child blob does not exist, but there still exists its ID.
>> 2. The result of pgp_read_blob(card, child) is not checked.
>>
>> This function is called by file_select and because it returns SUCCESS, 
>> it makes file_select SUCCESS although the blob does not exist.
>>
>> I think fixing 1 is better. What do you think? (Or the ID is 
>> pre-defined?)
>>
>> I'm new (and this driver was not written by me), so I'm grateful to 
>> receive your guidance.
> First of all,
> I do not know openpgp card and do not have this card to make the tests.
>
> Afaiu, the 'child' and it's 'ID' are the openpgp specific features that do 
> not have any relation to the 7816 standards.
> They has to be hidden from the common OpenSC library part by the openpgp 
> card's driver.
>
> The authors of openpgp driver could explain better,
> by from my point of view,
> if the blob cannot be read, pgp_select() has to return 'file-not-found' or 
> other error.
> In any case with such openpgp internal errors there is no possibility to 
> return a valid FCP/FCI and valid file length.
>
> Looking onto the code I suppose that the FCP returned by 
> pgp_select(public-key) belongs in fact to MF (or intermediate DF).
> That's for, in my previous mail, I asked you
> what are the 'type' and 'ef-structure' of the sc_file data returned by 
> 'successful' pgp_select() ?
>

-- 
Regards,
Quân

Attachment: pubkey_missing.txt.gz
Description: GNU Zip compressed data

_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to