Go to the first, previous, next, last section, table of contents.


Installing SDSI 2.0

To build SDSI 2.0, begin by choosing a directory and unpack the distribution into it. The distribution tar file creates a new directory for itself. In the following discussion, `/base' is understood to be the fully qualified path into the distribution - including the directory the tarfile made itself.

The next step is to to locate and unpack two other software distributions. The SDSI library doesn't (yet) have its own implementations of RSA and DES; it uses functions in the GNU MP library (see section References Granlund) and the libdes library (see section References Young) instead.

The latest version of the GNU MP library is available by anonymous ftp from `prep.ai.mit.edu'. The file name is `/pub/gnu/gmp-M.N.tar.gz'. Many sites around the world mirror `prep'; please use a mirror site near you.

The latest version of libdes is available by anonymous ftp from `ftp.psy.uq.oz.au'. The file name is `/pub/Crypto/DES/libdes-M.N.tar.gz'.

The GNU MP library must be unpacked under `/base/lib/crypto'. The GNU MP tarfile creates a directory for itself; the name is of the form `gmp-M.N'. The SDSI library build process needs to find the MP package under `/base/lib/crypto/gmp', so make `/base/lib/crypto/gmp' a symbolic link to `gmp-M.N' or rename `gmp-M.N' to `gmp'.

The libdes tarfile does not create a directory for itself. The SDSI library build process needs to find the DES package under `/base/lib/crypto/des', so create that directory and unpack the tarfile inside that directory.

Next, you configure the SDSI distribution to build for your CPU and operating system. You need a C compiler, preferably GCC, but any reasonable compiler should work. And you need a standard Unix `make' program, plus some other standard Unix utility programs.

Here are the steps needed to install the library and tools on Unix systems:

  1. In most cases, `cd /base' followed by `sh ./configure' should set things up for native compilation. Cross-compilation probably won't work, and it definitely won't work to cross-compile the library to an architecture with different type sizes or byte order. If you get error messages, your machine might not be supported by this release. (See section Reporting Bugs, for how to report bugs in the distribution.) This `configure' takes care of preparing the GNU MP and libdes packages for compilation. Many options are supported by this `configure'; use `sh ./configure --help' to see them. The options to control where different parts of the distribution will be installed are the most useful.
  2. `make' This will build everything, leaving a library archive file `lib/libsdsi.a', the header files `lib/sdsi.h' and `lib/sdsi2-useful.h', and the programs `tools/sdsi2sh', `tools/pgp-ssh-to-sdsi2', and `tools/sdsi2ui'. On some systems, during compilation of libdes, there may be preprocessor symbol redefinition warnings. These can be ignored.
  3. `make install' This will copy the files `sdsi.h' and `sdsi2-useful.h' from the `lib' directory to your system's C `include' directory, the library `lib/libsdsi.a' to your system's library directory, and the programs `sdsi2sh', `pgp-ssh-to-sdsi2', and `sdsi2ui' from the `tools' directory to your system's executables directory.

There are some other useful make targets:

Known Build Problems

I had problems building the release under IRIX 5.3 using their supplied make. This make seemed to have a hard time keeping timestamps straight when computing dependencies, and using implicit rules when it was supposed to. Most everything gets build except for sdsi2sh - either build that one by hand, or use GNU gmake to build everything.

The only other known build problems at this time are those that follow from compiling the GNU MP and libdes libraries. See their documentation.


Go to the first, previous, next, last section, table of contents.