On 03/05/2014 01:21 AM, Raad Bahmani wrote:
> Hello Robert,
>
> thank your for your answer !
>
> --------------------------------------------------------------------------------------------------------
>>> 3) Which algorithm is used for login with SSL ?
>> I'm not sure what you mean by 'login with SSL'. Do you mean create an
>> SSL handshake? do you  mean client auth? do you mean login to the token
>> to use SSL?
> you are right, my question is vaguely formulated !
> I guess it would be: "client authentication"
>
> This is the scenario:
>
> 1) A user opens a web-page where he can log in using his SSL certificate.
> 2) He clicks on a link which says: "Log-In with SSL Certificate".
> 3) Firefox handles this request by calling functions of my PKCS#11 module.
>
> Where do I find the code which calls the functions of my module?

You don't need to implement the SSL key exchange algorithms for this,
you simply need to implement signing.

Your best bet is: https://developer.mozilla.org/en-US/docs/PKCS11_Implement
Your token profile is 'Signing tokens'

When you see requests for attributes or objects that aren't part of the
PKCS #11 spec, you should respond as the PKCS #11 spec directs for
unknown attributes and objects. NOTE: if you have a list of mixed
attributes, PKCS #11 requires you to fill in all the attributes you do
understand and mark the ones you don't with length of -1.

These additional attributes are not necessary to be able to create
client auth connections.
>
>
>
> --------------------------------------------------------------------------------------------------------
>>> C_FindObjects with:
>>> session-handle: 100
>>> ulMaxObjectCount: 1
>> What did you return here? This is a very basic Find object call looking
>> for an object that you probably don't support, You should return no
>> object here.
> As I mentioned, my module *simulates* a smart-card, so always a dummy
> ID/Handle is returned when for example a session is required to be
> created or when the  C_FindObjects  is called.
>
> If a dummy object-handle is not returned the firefox keeps calling the
> C_Find* functions as you can see bellow.

Once your token is loaded, firefox will ask it for all sorts of objects.
If you don't know the object, you should always return 'no such object'.
If you pretend to return an object you don't know about, things will not
end well...

In simulating a smart card, do you claim to be a hardware device? If so
NSS will just ask you at token insertion of a full range of objects
ahead of time and then never bother you (assuming you have only a small
number of certs/crls/etc).

What I see below is exactly what I expect (NSS asking you, do you know
this cert? do you have the CRL for this CA, etc.). You should expect to
see these calls continually if you are functioning correctly.

bob
>
>
>
>
>
> msg 29: C_GetSlotInfo
> msg 30: C_FindObjectsInit with:
> msg 31: session-handle: 100l
> msg 32: ulCount: 4l
> msg 33: template ========================
> msg 34: --------------
> msg 35: Attr0 Type L: 1l
> msg 36: Attr0 Type X: 1l
> msg 37: Attr0 Value L: 1l
> msg 38: Attr0 Value X: 1
> msg 39: Attr0 ulValueLen: 1l
> msg 40: --------------
> msg 41: Attr1 Type L: 0l
> msg 42: Attr1 Type X: 0l
> msg 43: Attr1 Value L: 1l
> msg 44: Attr1 Value X: 1
> msg 45: Attr1 ulValueLen: 8l
> msg 46: --------------
> msg 47: Attr2 Type L: 129l
> msg 48: Attr2 Type X: 129l
> msg 49: Attr2 Value L: 831291696l
> msg 50: Attr2 Value X: 318c8130
> msg 51: Attr2 ulValueLen: 143l
> msg 52: --------------
> msg 53: Attr3 Type L: 130l
> msg 54: Attr3 Type X: 130l
> msg 55: Attr3 Value L: 235733762l
> msg 56: Attr3 Value X: e0d0302
> msg 57: Attr3 ulValueLen: 5l
> msg 58: C_FindObjects with:
> msg 59: session-handle: 100l
> msg 60: ulMaxObjectCount: 1l
> msg 61: C_FindObjectsFinal (100l)
> msg 62: C_FindObjectsInit with:
> msg 63: session-handle: 100l
> msg 64: ulCount: 4l
> msg 65: template ========================
> msg 66: --------------
> msg 67: Attr0 Type L: 1l
> msg 68: Attr0 Type X: 1l
> msg 69: Attr0 Value L: 1l
> msg 70: Attr0 Value X: 1
> msg 71: Attr0 ulValueLen: 1l
> msg 72: --------------
> msg 73: Attr1 Type L: 0l
> msg 74: Attr1 Type X: 0l
> msg 75: Attr1 Value L: 1l
> msg 76: Attr1 Value X: 1
> msg 77: Attr1 ulValueLen: 8l
> msg 78: --------------
> msg 79: Attr2 Type L: 129l
> msg 80: Attr2 Type X: 129l
> msg 81: Attr2 Value L: 831291696l
> msg 82: Attr2 Value X: 318c8130
> msg 83: Attr2 ulValueLen: 143l
> msg 84: --------------
> msg 85: Attr3 Type L: 130l
> msg 86: Attr3 Type X: 130l
> msg 87: Attr3 Value L: 15470093l
> msg 88: Attr3 Value X: ec0e0d
> msg 89: Attr3 ulValueLen: 3l
> msg 90: C_FindObjects with:
> msg 91: session-handle: 100l
> msg 92: ulMaxObjectCount: 1l
> msg 93: C_FindObjectsFinal (100l)
> msg 94: C_FindObjectsInit with:
> msg 95: session-handle: 100l
> msg 96: ulCount: 4l
> msg 97: template ========================
> msg 98: --------------
> msg 99: Attr0 Type L: 1l
> msg 100: Attr0 Type X: 1l
> msg 101: Attr0 Value L: 1l
> msg 102: Attr0 Value X: 1
> msg 103: Attr0 ulValueLen: 1l
> msg 104: --------------
> msg 105: Attr1 Type L: 0l
> msg 106: Attr1 Type X: 0l
> msg 107: Attr1 Value L: 3461563219l
> msg 108: Attr1 Value X: ce534353
> msg 109: Attr1 ulValueLen: 8l
> msg 110: --------------
> msg 111: Attr2 Type L: 129l
> msg 112: Attr2 Type X: 129l
> msg 113: Attr2 Value L: 831291696l
> msg 114: Attr2 Value X: 318c8130
> msg 115: Attr2 ulValueLen: 143l
> msg 116: --------------
> msg 117: Attr3 Type L: 130l
> msg 118: Attr3 Type X: 130l
> msg 119: Attr3 Value L: 820776461l
> msg 120: Attr3 Value X: 30ec0e0d
> msg 121: Attr3 ulValueLen: 3l
> msg 122: C_FindObjects with:
> msg 123: session-handle: 100l
> msg 124: ulMaxObjectCount: 1l
> msg 125: C_FindObjectsFinal (100l)
> msg 126: C_FindObjectsInit with:
> msg 127: session-handle: 100l
> msg 128: ulCount: 4l
> msg 129: template ========================
> msg 130: --------------
> msg 131: Attr0 Type L: 1l
> msg 132: Attr0 Type X: 1l
> msg 133: Attr0 Value L: 1l
> msg 134: Attr0 Value X: 1
> msg 135: Attr0 ulValueLen: 1l
> msg 136: --------------
> msg 137: Attr1 Type L: 0l
> msg 138: Attr1 Type X: 0l
> msg 139: Attr1 Value L: 3461563219l
> msg 140: Attr1 Value X: ce534353
> msg 141: Attr1 ulValueLen: 8l
> msg 142: --------------
> msg 143: Attr2 Type L: 129l
> msg 144: Attr2 Type X: 129l
> msg 145: Attr2 Value L: 187792688l
> msg 146: Attr2 Value X: b317d30
> msg 147: Attr2 ulValueLen: 127l
> msg 148: --------------
> msg 149: Attr3 Type L: 130l
> msg 150: Attr3 Type X: 130l
> msg 151: Attr3 Value L: 1573122l
> msg 152: Attr3 Value X: 180102
> msg 153: Attr3 ulValueLen: 3l
> msg 154: C_FindObjects with:
> msg 155: session-handle: 100l
> msg 156: ulMaxObjectCount: 1l
> msg 157: C_FindObjectsFinal (100l)
> msg 158: C_FindObjectsInit with:
> msg 159: session-handle: 100l
> msg 160: ulCount: 3l
> msg 161: template ========================
> msg 162: --------------
> msg 163: Attr0 Type L: 1l
> msg 164: Attr0 Type X: 1l
> msg 165: Attr0 Value L: 1l
> msg 166: Attr0 Value X: 1
> msg 167: Attr0 ulValueLen: 1l
> msg 168: --------------
> msg 169: Attr1 Type L: 0l
> msg 170: Attr1 Type X: 0l
> msg 171: Attr1 Value L: 1l
> msg 172: Attr1 Value X: 1
> msg 173: Attr1 ulValueLen: 8l
> msg 174: --------------
> msg 175: Attr2 Type L: 257l
> msg 176: Attr2 Type X: 257l
> msg 177: Attr2 Value L: 831291696l
> msg 178: Attr2 Value X: 318c8130
> msg 179: Attr2 ulValueLen: 143l
> msg 180: C_FindObjects with:
> msg 181: session-handle: 100l
> msg 182: ulMaxObjectCount: 16l
> msg 183: C_FindObjectsFinal (100l)
> msg 184: C_FindObjectsInit with:
> msg 185: session-handle: 100l
> msg 186: ulCount: 2l
> msg 187: template ========================
> msg 188: --------------
> msg 189: Attr0 Type L: 0l
> msg 190: Attr0 Type X: 0l
> msg 191: Attr0 Value L: 3461563217l
> msg 192: Attr0 Value X: ce534351
> msg 193: Attr0 ulValueLen: 8l
> msg 194: --------------
> msg 195: Attr1 Type L: 257l
> msg 196: Attr1 Type X: 257l
> msg 197: Attr1 Value L: 831291696l
> msg 198: Attr1 Value X: 318c8130
> msg 199: Attr1 ulValueLen: 143l
> msg 200: C_FindObjects with:
> msg 201: session-handle: 100l
> msg 202: ulMaxObjectCount: 10l
> msg 203: C_FindObjectsFinal (100l)
> msg 204: C_FindObjectsInit with:
> msg 205: session-handle: 100l
> msg 206: ulCount: 3l
> msg 207: template ========================
> msg 208: --------------
> msg 209: Attr0 Type L: 1l
> msg 210: Attr0 Type X: 1l
> msg 211: Attr0 Value L: 1l
> msg 212: Attr0 Value X: 1
> msg 213: Attr0 ulValueLen: 1l
> msg 214: --------------
> msg 215: Attr1 Type L: 0l
> msg 216: Attr1 Type X: 0l
> msg 217: Attr1 Value L: 1l
> msg 218: Attr1 Value X: 1
> msg 219: Attr1 ulValueLen: 8l
> msg 220: --------------
> msg 221: Attr2 Type L: 257l
> msg 222: Attr2 Type X: 257l
> msg 223: Attr2 Value L: 187792688l
> msg 224: Attr2 Value X: b317d30
> msg 225: Attr2 ulValueLen: 127l
> msg 226: C_FindObjects with:
> msg 227: session-handle: 100l
> msg 228: ulMaxObjectCount: 16l
> msg 229: C_FindObjectsFinal (100l)
> msg 230: C_FindObjectsInit with:
> msg 231: session-handle: 100l
> msg 232: ulCount: 2l
> msg 233: template ========================
> msg 234: --------------
> msg 235: Attr0 Type L: 0l
> msg 236: Attr0 Type X: 0l
> msg 237: Attr0 Value L: 3461563217l
> msg 238: Attr0 Value X: ce534351
> msg 239: Attr0 ulValueLen: 8l
> msg 240: --------------
> msg 241: Attr1 Type L: 257l
> msg 242: Attr1 Type X: 257l
> msg 243: Attr1 Value L: 187792688l
> msg 244: Attr1 Value X: b317d30
> msg 245: Attr1 ulValueLen: 127l
> msg 246: C_FindObjects with:
> msg 247: session-handle: 100l
> msg 248: ulMaxObjectCount: 10l
> msg 249: C_FindObjectsFinal (100l)
> msg 250: C_FindObjectsInit with:
> msg 251: session-handle: 100l
> msg 252: ulCount: 3l
> msg 253: template ========================
> msg 254: --------------
> msg 255: Attr0 Type L: 1l
> msg 256: Attr0 Type X: 1l
> msg 257: Attr0 Value L: 1l
> msg 258: Attr0 Value X: 1
> msg 259: Attr0 ulValueLen: 1l
> msg 260: --------------
> msg 261: Attr1 Type L: 0l
> msg 262: Attr1 Type X: 0l
> msg 263: Attr1 Value L: 1l
> msg 264: Attr1 Value X: 1
> msg 265: Attr1 ulValueLen: 8l
> msg 266: --------------
> msg 267: Attr2 Type L: 257l
> msg 268: Attr2 Type X: 257l
> msg 269: Attr2 Value L: 831291696l
> msg 270: Attr2 Value X: 318c8130
> msg 271: Attr2 ulValueLen: 143l
> msg 272: C_FindObjects with:
> msg 273: session-handle: 100l
> msg 274: ulMaxObjectCount: 16l
> msg 275: C_FindObjectsFinal (100l)
> msg 276: C_FindObjectsInit with:
> msg 277: session-handle: 100l
> msg 278: ulCount: 3l
> msg 279: template ========================
> msg 280: --------------
> msg 281: Attr0 Type L: 1l
> msg 282: Attr0 Type X: 1l
> msg 283: Attr0 Value L: 1l
> msg 284: Attr0 Value X: 1
> msg 285: Attr0 ulValueLen: 1l
> msg 286: --------------
> msg 287: Attr1 Type L: 0l
> msg 288: Attr1 Type X: 0l
> msg 289: Attr1 Value L: 1l
> msg 290: Attr1 Value X: 1
> msg 291: Attr1 ulValueLen: 8l
> msg 292: --------------
> msg 293: Attr2 Type L: 257l
> msg 294: Attr2 Type X: 257l
> msg 295: Attr2 Value L: 831291696l
> msg 296: Attr2 Value X: 318c8130
> msg 297: Attr2 ulValueLen: 143l
> msg 298: C_FindObjects with:
> msg 299: session-handle: 100l
> msg 300: ulMaxObjectCount: 16l
> msg 301: C_FindObjectsFinal (100l)
> msg 302: C_FindObjectsInit with:
> msg 303: session-handle: 100l
> msg 304: ulCount: 4l
> msg 305: template ========================
> msg 306: --------------
> msg 307: Attr0 Type L: 1l
> msg 308: Attr0 Type X: 1l
> msg 309: Attr0 Value L: 1l
> msg 310: Attr0 Value X: 1
> msg 311: Attr0 ulValueLen: 1l
> msg 312: --------------
> msg 313: Attr1 Type L: 0l
> msg 314: Attr1 Type X: 0l
> msg 315: Attr1 Value L: 1l
> msg 316: Attr1 Value X: 1
> msg 317: Attr1 ulValueLen: 8l
> msg 318: --------------
> msg 319: Attr2 Type L: 129l
> msg 320: Attr2 Type X: 129l
> msg 321: Attr2 Value L: 831291696l
> msg 322: Attr2 Value X: 318c8130
> msg 323: Attr2 ulValueLen: 143l
> msg 324: --------------
> msg 325: Attr3 Type L: 130l
> msg 326: Attr3 Type X: 130l
> msg 327: Attr3 Value L: 3490579202l
> msg 328: Attr3 Value X: d00e0302
> msg 329: Attr3 ulValueLen: 5l
> msg 330: C_FindObjects with:
> msg 331: session-handle: 100l
> msg 332: ulMaxObjectCount: 1l
> msg 333: C_FindObjectsFinal (100l)
> msg 334: C_FindObjectsInit with:
> msg 335: session-handle: 100l
> msg 336: ulCount: 4l
> msg 337: template ========================
> msg 338: --------------
> msg 339: Attr0 Type L: 1l
> msg 340: Attr0 Type X: 1l
> msg 341: Attr0 Value L: 1l
> msg 342: Attr0 Value X: 1
> msg 343: Attr0 ulValueLen: 1l
> msg 344: --------------
> msg 345: Attr1 Type L: 0l
> msg 346: Attr1 Type X: 0l
> msg 347: Attr1 Value L: 1l
> msg 348: Attr1 Value X: 1
> msg 349: Attr1 ulValueLen: 8l
> msg 350: --------------
> msg 351: Attr2 Type L: 129l
> msg 352: Attr2 Type X: 129l
> msg 353: Attr2 Value L: 831291696l
> msg 354: Attr2 Value X: 318c8130
> msg 355: Attr2 ulValueLen: 143l
> msg 356: --------------
> msg 357: Attr3 Type L: 130l
> msg 358: Attr3 Type X: 130l
> msg 359: Attr3 Value L: 21614606l
> msg 360: Attr3 Value X: 149d00e
> msg 361: Attr3 ulValueLen: 3l
> msg 362: C_FindObjects with:
> msg 363: session-handle: 100l
> msg 364: ulMaxObjectCount: 1l
> msg 365: C_FindObjectsFinal (100l)
> msg 366: C_FindObjectsInit with:
> msg 367: session-handle: 100l
> msg 368: ulCount: 4l
> msg 369: template ========================
> msg 370: --------------
> msg 371: Attr0 Type L: 1l
> msg 372: Attr0 Type X: 1l
> msg 373: Attr0 Value L: 1l
> msg 374: Attr0 Value X: 1
> msg 375: Attr0 ulValueLen: 1l
> msg 376: --------------
> msg 377: Attr1 Type L: 0l
> msg 378: Attr1 Type X: 0l
> msg 379: Attr1 Value L: 3461563219l
> msg 380: Attr1 Value X: ce534353
> msg 381: Attr1 ulValueLen: 8l
> msg 382: --------------
> msg 383: Attr2 Type L: 129l
> msg 384: Attr2 Type X: 129l
> msg 385: Attr2 Value L: 831291696l
> msg 386: Attr2 Value X: 318c8130
> msg 387: Attr2 ulValueLen: 143l
> msg 388: --------------
> msg 389: Attr3 Type L: 130l
> msg 390: Attr3 Type X: 130l
> msg 391: Attr3 Value L: 810143758l
> msg 392: Attr3 Value X: 3049d00e
> msg 393: Attr3 ulValueLen: 3l
> msg 394: C_FindObjects with:
> msg 395: session-handle: 100l
> msg 396: ulMaxObjectCount: 1l
> msg 397: C_FindObjectsFinal (100l)
> msg 398: C_FindObjectsInit with:
> msg 399: session-handle: 100l
> msg 400: ulCount: 3l
> msg 401: template ========================
> msg 402: --------------
> msg 403: Attr0 Type L: 1l
> msg 404: Attr0 Type X: 1l
> msg 405: Attr0 Value L: 1l
> msg 406: Attr0 Value X: 1
> msg 407: Attr0 ulValueLen: 1l
> msg 408: --------------
> msg 409: Attr1 Type L: 0l
> msg 410: Attr1 Type X: 0l
> msg 411: Attr1 Value L: 1l
> msg 412: Attr1 Value X: 1
> msg 413: Attr1 ulValueLen: 8l
> msg 414: --------------
> msg 415: Attr2 Type L: 257l
> msg 416: Attr2 Type X: 257l
> msg 417: Attr2 Value L: 187788848l
> msg 418: Attr2 Value X: b316e30
> msg 419: Attr2 ulValueLen: 112l
> msg 420: C_FindObjects with:
> msg 421: session-handle: 100l
> msg 422: ulMaxObjectCount: 16l
> msg 423: C_FindObjectsFinal (100l)
> msg 424: C_FindObjectsInit with:
> msg 425: session-handle: 100l
> msg 426: ulCount: 3l
> msg 427: template ========================
> msg 428: --------------
> msg 429: Attr0 Type L: 1l
> msg 430: Attr0 Type X: 1l
> msg 431: Attr0 Value L: 1l
> msg 432: Attr0 Value X: 1
> msg 433: Attr0 ulValueLen: 1l
> msg 434: --------------
> msg 435: Attr1 Type L: 0l
> msg 436: Attr1 Type X: 0l
> msg 437: Attr1 Value L: 1l
> msg 438: Attr1 Value X: 1
> msg 439: Attr1 ulValueLen: 8l
> msg 440: --------------
> msg 441: Attr2 Type L: 257l
> msg 442: Attr2 Type X: 257l
> msg 443: Attr2 Value L: 831291696l
> msg 444: Attr2 Value X: 318c8130
> msg 445: Attr2 ulValueLen: 143l
> msg 446: C_FindObjects with:
> msg 447: session-handle: 100l
> msg 448: ulMaxObjectCount: 16l
> msg 449: C_FindObjectsFinal (100l)
> msg 450: C_FindObjectsInit with:
> msg 451: session-handle: 100l
> msg 452: ulCount: 3l
> msg 453: template ========================
> msg 454: --------------
> msg 455: Attr0 Type L: 1l
> msg 456: Attr0 Type X: 1l
> msg 457: Attr0 Value L: 1l
> msg 458: Attr0 Value X: 1
> msg 459: Attr0 ulValueLen: 1l
> msg 460: --------------
> msg 461: Attr1 Type L: 0l
> msg 462: Attr1 Type X: 0l
> msg 463: Attr1 Value L: 1l
> msg 464: Attr1 Value X: 1
> msg 465: Attr1 ulValueLen: 8l
> msg 466: --------------
> msg 467: Attr2 Type L: 257l
> msg 468: Attr2 Type X: 257l
> msg 469: Attr2 Value L: 187792688l
> msg 470: Attr2 Value X: b317d30
> msg 471: Attr2 ulValueLen: 127l
> msg 472: C_FindObjects with:
> msg 473: session-handle: 100l
> msg 474: ulMaxObjectCount: 16l
> msg 475: C_FindObjectsFinal (100l)
> msg 476: C_FindObjectsInit with:
> msg 477: session-handle: 100l
> msg 478: ulCount: 3l
> msg 479: template ========================
> msg 480: --------------
> msg 481: Attr0 Type L: 1l
> msg 482: Attr0 Type X: 1l
> msg 483: Attr0 Value L: 1l
> msg 484: Attr0 Value X: 1
> msg 485: Attr0 ulValueLen: 1l
> msg 486: --------------
> msg 487: Attr1 Type L: 0l
> msg 488: Attr1 Type X: 0l
> msg 489: Attr1 Value L: 1l
> msg 490: Attr1 Value X: 1
> msg 491: Attr1 ulValueLen: 8l
> msg 492: --------------
> msg 493: Attr2 Type L: 257l
> msg 494: Attr2 Type X: 257l
> msg 495: Attr2 Value L: 831291696l
> msg 496: Attr2 Value X: 318c8130
> msg 497: Attr2 ulValueLen: 143l
> msg 498: C_FindObjects with:
> msg 499: session-handle: 100l
> msg 500: ulMaxObjectCount: 16l
> msg 501: C_FindObjectsFinal (100l)
> msg 502: C_FindObjectsInit with:
> msg 503: session-handle: 100l
> msg 504: ulCount: 3l


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to