# Netscape Security Services for Java

Netscape Security Services for Java (JSS) is an interface allowing Java applications to use the Secure Sockets Layer protocol. The interface is implemented with the FIPS-validated Netscape Security Services library. It consists of a system-dependent dynamic library (`libjss.so` on UNIX, `jss.dll` on Windows) and a ZIP file (`jss.zip`) containing system-independent Java classes. These classes are compatible with JDK 1.1 or later using the native thread implementation (not green threads).

## Building Applications with JSS

To construct Java applications that use JSS, you must:

- Call the JSS classes from your application.
- When compiling your application, put `jss.zip` in your `CLASSPATH`.
- When running your application, put `libjss.so` in your `LD_LIBRARY_PATH` (on UNIX) or `jss.dll` in your `PATH` (on Windows), and put `jss.zip` in your `CLASSPATH`.

## Programming with JSS

Before the SSL classes can be used, `NSSInit.initialize` must be called to open the security databases and initialize the random number generator. `NSSInit.setPasswordCallback` may be called to change the password callback; the default is to prompt for passwords on the command line.

The files in the `examples` directory illustrate the use of JSS in an application:

SSLClient.java
  An example of an SSL client application.
SSLServer.java
  An example of an SSL server application. To run, it requires certificate and key databases that contain a certificate called "SSLServer". The sample `cert7.db` and `key3.db` files, also in the `examples` directory, can be used for this purpose. When `SSLServer` is run, it will ask for a password for the "Internal Key Storage Token", which is the key database. The password for the example `key3.db` file is "netscape".

These classes are in the `org.mozilla.jss.ssl` package. The `.class` files must be put in the subdirectory `org/mozilla/jss/ssl` of a `CLASSPATH` entry in order to be located by the Java virtual machine.

## Javadoc for the JSS Classes