Installation

SEAL is running under Linux with a C compiler, e.g., gcc, installed. If you run Chatter in GUI mode, your Linux system also needs the X Windows System for the graphical feature. To install SEAL, Gauger and Chatter in your Linux system, you may take the following procedures:

  1. Install all the pre-requsite components, including:
    We built SEAL based on Spread 3.17.0 and OpenSSL 0.9.6g. It should be problem-free if you use their newer versions, though we have not tested the compatibility issue.

  2. Extract the zipped downloaded files.

  3. Edit the variables in Makefile. These variables include:
    • OPENSSL_INC
      the directory containing the OpenSSL header files,
      e.g., OPENSSL_INC=-I/usr/include

    • OPENSSL_LIB
      the directory containing the OpenSSL libraries,
      e.g., OPENSSL_LIB=-L/usr/lib

    • SPREAD_INC
      the directory containing the Spread header files, including sp.h, sp_events.h and sp_func.h,
      e.g., SPREAD_INC=-I./spread_inc

    • SPREAD_LIB
      the directory containing the Spread library, either libspread.a for static linking or libspread.so for dynamic linking,
      e.g., SPREAD_LIB=-L./spread_lib

    • ALG_FLAG
      the interval-based distributed rekeying algorithm, either Rebuild, Batch or Queue-batch,
      e.g., ALG_FLAG=-DREBUILD, ALG_FLAG=-DBATCH or ALG_FLAG=-DQBATCH

    • SIG_FLAG
      the SIGNATURE mode, either enabled or disabled,
      e.g., SIG_FLAG=-DSIGNATURE or SIG_FLAG=

    • GUI_FLAG and GUI_LIB (both for Chatter only)
      the GUI mode, either enabled or disabled,
      e.g., GUI_FLAG=-DGUI_ENABLED `pkg-config --cflags gtk+-2.0`, or GUI_FLAG=
      e.g., GUI_LIB=`pkg-config --libs gtk+-2.0`, or GUI_LIB=

    • DEBUG_FLAG
      determining if debug messages are logged.
      e.g., DEBUG_FLAG=-DDEBUG, or DEBUG_FLAG=


  4. Compile the source codes, i.e., run make.

  5. Prepare the 1024-bit Diffie-Hellman parameters in PEM format with OpenSSL. For example,

    openssl dhparam -outform PEM -out dh1024.pem 1024

    Store the parameter file with the name "dh1024.pem"in the same working directory as your application.

    You may download the sample 1024-bit Diffie-Hellman parameters in the Downloads section.

  6. Prepare the private keys and the certificates for all possible group members with OpenSSL. For example,

    # Generate the self-signed root certificate in PEM format
    openssl req -x509 -newkey rsa -out cacert.pem -outform PEM -config self_signed_ca.conf

    # Generate the long-term private key and the certificate request
    openssl req -newkey rsa:1024 -keyout patrick_key.pem -outform PEM -out patrick_req.pem \
    -outform PEM


    # Issue a certificate
    openssl ca -in patrick_req.pem -out patrick_cert.pem -config ca.conf

    Store the private keys with the name [uid]_key.pem and the certificates with the name [uid]_cert.pem, where [uid] corresponds to the unique identifier of a member. Put the keys in "certs/my_private" and the certificates in "certs" with respect to the working directory of your application.

    You may download the sample long-term private keys, the sample certificates as well as the sample certificate configuration files in the Downloads section.

  7. Prepare the SEAL configuration file "seal.conf". Store it in the same working directory as your application. A sample, which also describes the required format of the configuration file, is given in the Downloads section.

  8. Prepare the Spread configuration file "spread.conf" for the Spread daemon. Store it in the working directory containing the executable of the Spread daemon. Details about how to configure the spread.conf should be referred to http://www.spread.org. You may obtain a sample configuration file in the Downloads section.

  9. Now, you are ready to start Gauger or Chatter. Be sure that the Spread daemon has started before executing the SEAL-based applications.

Last modified on 7 August 2003.