Hello,

I discovered that I cannot use an ISO Latin1 character in the tokenUid
name returned by OpenSCToken::probe(SecTokendProbeFlags flags, char
tokenUid[TOKEND_MAX_UID]). The token is not displayed in the KeyChain
application.

Since this tokenUid value is not displayed I just replaced the
offending character by '?'. Maybe UTF-8 characters would be accepted.
The patch is attached.

Comments?

--
Dr. Ludovic Rousseau
Index: OpenSCToken.cpp
===================================================================
--- OpenSCToken.cpp     (revision 91)
+++ OpenSCToken.cpp     (working copy)
@@ -296,6 +296,16 @@ uint32 OpenSCToken::probe(SecTokendProbe
                                                strncpy(tokenUid + 
strlen(tokenUid), mScP15Card->serial_number,
                                                        TOKEND_MAX_UID - 
strlen(tokenUid) - 1);
 
+                                       {
+                                               /* replace non ASCII chars by 
'?' */
+                                               int i;
+                                               unsigned char *c = (unsigned 
char *)tokenUid;
+
+                                               for (i=0; tokenUid[i]; i++)
+                                                       if (c[i] > 127)
+                                                               tokenUid[i] = 
'?';
+                                       }
+
                                        otdLog("    score = %d, tokenUid = 
\"%s\"\n", score, tokenUid);
                                }
                        }
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to