List Info

Thread: Re: new pre release for 0.11.2 available




Re: new pre release for 0.11.2 available
country flaguser name
France
2007-03-07 07:04:48
Douglas E. Engert a écrit :
>
>
> Tarasov Viktor wrote:
>> Andreas Jellinghaus a écrit :
>>> It would be good to have opensc 0.11.2 soon, so
I made another
>>> pre-release with current trunk available:
>>>
>>> h
ttp://www.opensc-project.org/files/opensc/testing/
>>> http://www.opensc-project.org/files/
opensc/testing/opensc-0.11.2-pre4.tar.gz
>>>
>>>
>>> Please test this and give feedback.
>>> I'm sorry, currently I find next to no time for
opensc.   
>> There is a little patch for Oberthur card:
>> - some ACLs forgotten;
>> - in compute_signature() limit the Le to 256
bytes.
>
> Are you sure that is an error?
> It is possible for a card to return data with 61XX
indicating there
> is more data. The PIV cards can and some of our test
cards are Oberthur
> but don't use this code.
The reason is in APDU validity checking by sc_check_apdu()
(libopensc/apdu.c +270) .
APDU is invalid, if it's Le value is greater then 256.
As far as I see, now, it concerns incrypto34, cardos,
openpgp, ...

>
> The original olen is also used in line 1157:
>   apdu.resplen = olen;
>
> The fix would be somethiung like line 1154:
>   apdu.le = olen > 256 ? 256 : olen;
OK,
in this particular case it doesn't matter,
but I agree, your style will be cleaner.

I've committed to trunk a new version.


Kind wishes,
Viktor.


>
>
>
>>
>> By the way,
>> for some libopensc card drivers, in
compute_signature() procedure,
>> the output length is assigned to Le of the Compute
Signature APDU.
>> So, when the length of the reserved output buffer
is more then 256 bytes
>> (that's the case of tools/pkcs15-crypt),
>> the APDU is considered as invalid (libopensc/apdu.c
+270)
>>
>> I've tested crypto regression tests -- for me it's
OK.
>>
>>
>>> Regards, Andreas
>>>   
>> Kind wishes,
>> Viktor.
>>
>>>  
_______________________________________________
>>> opensc-devel mailing list
>>> opensc-devellists.opensc-project.org
>>> http://www.opensc-project.org/mailman/listinfo/opensc
-devel
>>>
>>>   
>>
>>
>>
------------------------------------------------------------
------------
>>
>> --- src/libopensc/card-oberthur.c       (revision
3120)
>> +++ src/libopensc/card-oberthur.c       (working
copy)
>>  -890,6 +890,10 
>>                 ops[4] = SC_AC_OP_PIN_SET;  /*
SC_AC_OP_SET_REFERENCE */
>>                 ops[5] = SC_AC_OP_PIN_CHANGE;  /*
>> SC_AC_OP_CHANGE_REFERENCE */
>>                 ops[6] = SC_AC_OP_PIN_RESET;  /*
>> SC_AC_OP_RESET_COUNTER */
>> +#else
>> +               ops[4] = SC_AC_OP_LIST_FILES;  /*
>> SC_AC_OP_SET_REFERENCE */
>> +               ops[5] = SC_AC_OP_LIST_FILES;  /*
>> SC_AC_OP_CHANGE_REFERENCE */
>> +               ops[6] = SC_AC_OP_LIST_FILES;  /*
>> SC_AC_OP_RESET_COUNTER */
>>  #endif
>>         }         else if (file->type ==
SC_FILE_TYPE_WORKING_EF)   {
>>  -1148,6 +1152,11 
>>                 SC_TEST_RET(card->ctx,
SC_ERROR_INVALID_ARGUMENTS,
>> "Illegal input length");
>>         }
>>  
>> +       if (olen > 256)   {
>> +               sc_debug(card->ctx, "Output
length reduced to 256
>> bytes");
>> +               olen = 256;
>> +       }
>> +
>>         sc_format_apdu(card, &apdu,
SC_APDU_CASE_4_SHORT, 0x2A, 0x9E,
>> 0x9A);
>>         apdu.datalen = ilen;
>>         apdu.data = in;
>>
>>
>>
------------------------------------------------------------
------------
>>
>> _______________________________________________
>> opensc-devel mailing list
>> opensc-devellists.opensc-project.org
>> http://www.opensc-project.org/mailman/listinfo/opensc
-devel
>

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

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )