From Dogtag
Jump to: navigation, search

Return tool the CoolKey page.



You will need the following packages installed (or equivalent for your OS):

  • pcsc-lite-devel
  • zlib-devel
  • glibc
  • gcc
  • autoconf


In the root directory run the following commands:


If you need to modify the Makefiles, automake 1.9.6 was used. is included in the source.


In the root directory run:

make install


make install DEST=/my/destination/tree

Mac OS X

CoolKey can be compiled as a universal binary on the Mac.


  • Intel or PPC Mac
  • OS X Tiger
  • Version 2.59 of autoconf
  • XCode 2.2 and later
  • Make sure the framework "/Developer/SDKs/MacOSX10.4u.sdk" is present


  1. checkout coolkey source
  2. proceed to the coolkey directory
  3. Type the following:
./configure --disable-dependency-tracking

If the autoconf step fails, an outdated version of autoconf may be installed. Perform "autoconf --version" to make sure 2.59 is the version present.

As of right now, the above will build CoolKey dynamic libraries as only the native binary of the build machine. For instance, performing this build on an Intel Mac will build universal object files but leave the dynamic libraries as Intel only. Until this problem can be resolved, the following can be done to complete an actual universal binary build of everything.

After the configure step and prior to the actual Make, do the following:

  1. edit the file "libtool". Be sure to back up the original copy.
  2. search for lines with instances of the strings "archive_cmds" and "module_expsym_cmds".
  3. Between the strings "\$deplibs" and "\$compiler_flags", place the following:
-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386


#Commands used to build and install a shared archive.
archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs 
-isysroot /Developer/SDKs/MacOSX10.4u.sdk  -arch ppc -arch i386 
\$compiler_flags -install_name \$rpath/\$soname \$verstring"

  • At this point, performing a "make" will result in universal binary versions of each dynamic library associated with CoolKey.

It is also possible to build the utility "pk11install" on the Mac. This utility can be used to automatically install CoolKey into Mozilla browsers on the user's system.

  • Building "pk11install" will requre the configure script to be launched with the following two environment variables:
  • NSS_CFLAGS has to be set to the include paths of NSS and NSPR currently installed on the system.
  • NSS_LIBS has to be set to the search path of the NSS and NSPR shared libraries.
  • Example invocation:
./configure --disable-dependency-tracking NSS_CFLAGS="-I /usr/local/include/nspr
-I /usr/local/include/nss" NSS_LIBS="-L/usr/local/lib/nss"
 cd src/install


  • After a successful build of CoolKey, the Makefile can be used to perform a simple install of the software on the system if desired.
  1. Within the build directory perform the following:
make  install
  • By default, everything will be placed in "/usr/local/lib" and "/usr/local/lib/pkcs11".
  • An alternate prefix directory, instead of "/usr/local" can be selected at configure time as demonstrated below:
./configure --prefix=/usr/local/CoolKey --disable-dependency-tracking
  • In the above example the install will result in everything being located in "/usr/local/CoolKey/lib" and "/usr/local/CoolKey/lib/pkcs11".
  • If desired the following example demonstartes how to install everything in an alternate base location:
make DESTDIR=/build/staging-area install
  • The above will install the previous example in "/build/staging/usr/local/CoolKey".

Pre Built Binary

  • The following package can be used to test CoolKey on the Mac.
  • Extracting the zip file places everything under the tree /usr/local/CoolKey as in the above example.
  • To actually test CoolKey the egate driver will need to be installed. This will go under the /usr/libexec tree.
  • The package contains CoolKey, libusb needed by CoolKey, and pk11install.

Get it here.



  • Microsoft Visual C++ and Platform SDK: Install as normal. Make sure INCLUDE and LIB are set appropriately. These are available at (
  • Cygwin: Install as normal. You'll need base, the shell, autoconf-2.5x, make, cvs*... This can be downloaded at (

* This may not be a full list. If you discover additional packages which are needed please let us know, or update the wiki.

  • ZLib Download ZLib source an binaries from here (
    1. Unzip into a known directory (like c:/zlib)
    2. Set ZLIB_INCLUDE to the location of the include files (e.g. c:/zlib/include)
    3. Set ZLIB_LIB to the location of the export libraries (e.g. c:/zlib/lib)


Once everything is installed, start a cygwin shell.

  1. checkout the coolkey source
  2. Make sure the environment variables INCLUDE, LIB, ZLIB_INCLUDE, and ZLIB_LIB are defined as described above in Prerequisites.
  3. Make sure the Visual C++ tools are in your path.
  4. In the root directory type:


To build a distribution:

make install DESTDIR=C:/build/staging-area libdir=/libraries prefix=/sdk

To install on your local machine:

make install

Pre Built Binary

  • Below is a pre-built binary of the Windows CoolKey.
    • The package consists of the files needed for CoolKey on Windows.
    • To test it out, simply extract the zip file into your Windows system32 directory.
    • Also make sure the egate driver is installed on your system.

Get it here.