The change #5421 introduced between 0.12.1-rc1 and 0.12.1
on 5/4/11 by vtarasov breaks the MIT Kerberos login.  A spy
output is attached.

The code calls  C_GetSlotList with tokenPresent=1 which in
the past has only returned slots with tokens.

But #5421 returns 2 slots, the 0xffffffff virtual slot which
does NOT have a token, and slot 1 which has a token.
The code then tries C_OpenSession to the virtual slot
which does not have a token and fails.

I don't understand why this change was made. If the virtual
slot does not have a token, it should not be returned
if tokenPresent=1.

--

 Douglas E. Engert  <deeng...@anl.gov>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439
 (630) 252-5444
0: C_GetFunctionList
Returned:  0 CKR_OK


1: C_Initialize
[in] pInitArgs = 0
Returned:  0 CKR_OK


2: C_GetSlotList
[in] tokenPresent = 0x1
[out] pSlotList: 
Count is 2
[out] *pulCount = 0x2
Returned:  0 CKR_OK


3: C_GetSlotList
[in] tokenPresent = 0x1
[out] pSlotList: 
Slot -1
Slot 1
[out] *pulCount = 0x2
Returned:  0 CKR_OK


4: C_OpenSession
[in] slotID = 0xffffffff
[in] flags = 0x4
pApplication=0
Notify=0
[out] *phSession = 0x0
Returned:  224 CKR_TOKEN_NOT_PRESENT


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

Reply via email to