Next: , Previous: , Up: Internals   [Contents][Index]


7.2 Developing Scute

Scute is single-threaded. There is a global lock that is taken in all entry points of Scute, except for C_Initialize, C_Finalize, C_GetFunctionList, and stubs.

Here are a couple of hints on how to develop PKCS #11 modules for Mozilla:

libopensc2 ships with a pkcs11-spy library that can be loaded as a wrapper around the PKCS #11 library you want to use to log all functions invoked by Mozilla. Here is how to use it:

Set the PKCS11SPY_OUTPUT environment variable to a filename. pkcs11-spy appends its log messages at the end of this file. Set the PKCS11SPY environment variable to the filename of the PKCS #11 module you actually want to use. Start Mozilla within this environment.

There is a different, probably more powerful way to debug Mozilla PKCS #11 libraries. However, to be able to use it, you need to configure and compile the Mozilla NSS sources with --enable-debug. Instructions can be found at: http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn2.html

Here are a couple of links to more information about implementing a PKCS #11 module for Mozilla:

http://docs.sun.com/source/816-6150-10/index.htm
http://docs.sun.com/source/816-6150-10/pkcs.htm

Implementing PKCS #11 for the Netscape Security Library (Caution: The content may be out of date)

http://www.mozilla.org/projects/security/pki/pkcs11/netscape/problems.html

Common PKCS #11 Implementation Problems

http://www.mozilla.org/projects/security/pki/pkcs11/

PKCS #11 Conformance Testing

http://www.mozilla.org/projects/security/pki/nss/

The Mozilla NSS web page