Wadjet Libraries 5.3.0

What is Wadjet

Wadjet-Libs is set of utilities intended to be used to solve many of the common programming problems that are regularly encountered and to increase your productivity by supplying flexible, usable, well documented and tested solutions as Open Source.

The different parts are split into multiple jar files whose inter-dependencies are defined in the jar manifest class path and with maven pom files. Wadjet-Libs is delivered with the source code, maven2 pom files and JUnit tests and is made available under the GNU GPL licence.

Wadjet-Libs is composed of the following modules which are documented separately:


Back to top

Who is Wadjet (Ouadjet)

Wadjet is the Goddess of Lower Egypt, papyrus and the protector of Pharaoh. She was represented as a cobra or as a lioness, often with a rearing cobra on her head. She was also represented as the Ureus (cobra) on the crown of Lower Egypt:

The goddess Wadjet comes to you in the form of the living Uraeus to anoint your head with her flames. (The Book of the Dead ).

She became a goddess of fire which enhanced her role as a protector goddess. Along with her link to this power, she became connected with the Wedjat (the Eye of Ra).


Back to top

Download

Wadjet Libraries 5.3.0 is distributed under the Open Public License, version 1.0.8 .

You can download the installation package from one of these links:

Wadjet-Libs-5.3.0-bin.zip

Wadjet-Libs-5.3.0-bin.tar.gz


Back to top

Installation

Once you have downloaded the image file, choose a location to unpack them and extract the contents with the relevant tool (tar.gz or zip).

Wadjet-Libs will unpack to a set of directories:

  • The bin directory contains the scripts for running the keytool (kstool) for initialising the UUID generator (uuidinit), the secure delete utility (rmsec) and a utility for encrypting and decrypting files (encfile).
  • The config directory contains the default services definitions and a configuration xml for log4j .
  • The lib directory contains the all the jar files for Wadjet-Libs along with the dependencies.
  • The src directory contains the source code separated by module name.

Before you can use any of the utility programs, you have to set the PATH and the WJ_HOME environment variables.

WJ_HOME must be set to the installation directory:

    export WJ_HOME=/path/to/installation    (UNIX)
    set WJ_HOME=C:\path\to\installation (Windows)

The PATH should include the bin directory:

    export PATH=$PATH:$WJ_HOME/bin  (UNIX)
    path=%path%;%WJ_HOME%\bin   (Windows)

Back to top

Installing JCE Providers

Many of the security enabled classes in the wadjet-Libraries use the BouncyCastle JCE provider classes. To be able to use these you will need to install the JCE provider otherwise the JCE layer of Java will throw unusual exceptions that don't really tell you that the provider is invalid but inform you that the key length is invalid or some such obfuscation (amateur style security that is always easily worked around).

To install the providers BouncyCastle and Isis you will need follow these steps:

  1. Download and install the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files:
    1. Jdk 1.5 download page
    2. Jdk 1.6 download page

    and install them in the JRE-HOME /lib/security directory.

  2. copy the Isis-Provider-2.1.jar and the releveant bcprov-jdkxx-136.jar to the extensions directory JRE-HOME /lib/ext
  3. Modify the java.security file in the JRE security directory (jre/lib/security) from for Java 1.5:
    ....
    #
    # List of providers and their preference orders:
    #
    security.provider.1=sun.security.provider.Sun
    security.provider.2=sun.security.rsa.SunRsaSign
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.sun.crypto.provider.SunJCE
    security.provider.5=sun.security.jgss.SunProvider
    security.provider.6=com.sun.security.sasl.Provider
    ....
    #
    # Default keystore type.
    #
    keystore.type=jks
    

    to

    ....
    #
    # List of providers and their preference orders:
    #
    security.provider.1=sun.security.provider.Sun
    security.provider.2=sun.security.rsa.SunRsaSign
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.addc.security.provider.IsisProvider
    security.provider.5=org.bouncycastle.jce.provider.BouncyCastleProvider
    security.provider.6=com.sun.crypto.provider.SunJCE
    security.provider.7=sun.security.jgss.SunProvider
    security.provider.8=com.sun.security.sasl.Provider
    ....
    #
    # Default keystore type.
    #
    keystore.type=BouncyCastle
    

    and for Java 1.6 from

    #
    # List of providers and their preference orders:
    #
    security.provider.1=sun.security.provider.Sun
    security.provider.2=sun.security.rsa.SunRsaSign
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.sun.crypto.provider.SunJCE
    security.provider.5=sun.security.jgss.SunProvider
    security.provider.6=com.sun.security.sasl.Provider
    security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    security.provider.8=sun.security.smartcardio.SunPCSC
    security.provider.9=sun.security.mscapi.SunMSCAPI
    ...
    #
    # Default keystore type.
    #
    keystore.type=jks
    

    to

    #
    # List of providers and their preference orders:
    #
    security.provider.1=sun.security.provider.Sun
    security.provider.2=sun.security.rsa.SunRsaSign
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.addc.security.provider.IsisProvider
    security.provider.5=org.bouncycastle.jce.provider.BouncyCastleProvider
    security.provider.6=com.sun.crypto.provider.SunJCE
    security.provider.7=sun.security.jgss.SunProvider
    security.provider.8=com.sun.security.sasl.Provider
    security.provider.9=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    security.provider.10=sun.security.smartcardio.SunPCSC
    security.provider.11=sun.security.mscapi.SunMSCAPI
    ...
    #
    # Default keystore type.
    #
    keystore.type=BouncyCastle
    

    You can also set the keystore.type=Isis if you have the Isis Keystore Server > installed on your network.

For more infrmation on installing JCE providers }see Installing Providers in the Sun Java documentation.


Back to top

Initialising the UUID Generator

For the UUID generator to produce correct UUIDs it should be initialised with the Media Access Control (MAC) Address for one of the network cards on the host where it is running.

Unfortunately, there is no generic way of getting the MAC Address using Java and so you will have to get this manually before initialising the generator (see below).

The MAC information is stored in a properties file that is read by the generator, the default location for this file is in the config directory of the installation. Once you have the MAC you simply need to run the utility script:

    inituuid –mac 00:60:08:C4:99:AA

Obviously you must change the MAC address to the correct one for the machine.


Back to top

Getting the MAC Address on Solaris

On Solaris and SunOS systems, the ethernet device is typically called le0 or ie0. In order to find the MAC address of the ethernet device, you must first become root, through the use of su. Then, type ifconfig -a and look up the relevant info. For example:

    # ifconfig -a
    le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
         inet 131.225.80.209 netmask fffff800 broadcast 131.225.87.255
         ether 8:0:20:10:d2:ae

Note: Solaris and SunOS strip off the leading 0 commonly included in the MAC address. In the case of this machine, the MAC address is 08:00:20:10:d2:ae


Back to top

Getting the MAC Address on Linux

On Linux systems, the ethernet device is typically called eth0. In order to find the MAC address of the ethernet device, you must first become root, through the use of su. Then, type ifconfig -a and look up the relevant info. For example:

    # ifconfig -a
    eth0  Link encap:Ethernet  HWaddr 00:60:08:C4:99:AA
          inet addr:131.225.84.67  Bcast:131.225.87.255  Mask:255.255.248.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15647904 errors:0 dropped:0 overruns:0
          TX packets:69559 errors:0 dropped:0 overruns:0
          Interrupt:10 Base address:0x300

The MAC address is the HWaddr listed on the first line. In the case of this machine, it is 00:60:08:C4:99:AA.


Back to top

Getting the MAC Address on Windows

On Windows systems run ipconfig /all from a command prompt:

    C:\>ipconfig /all

    Windows 2000 IP Configuration

        Host Name . . . . . . . . . . . . : eagle
        Primary DNS Suffix  . . . . . . . :
        Node Type . . . . . . . . . . . . : Broadcast
        IP Routing Enabled. . . . . . . . : No
        WINS Proxy Enabled. . . . . . . . : No
        DNS Suffix Search List. . . . . . : corbasol.ch

    Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . : corbasol.ch
        Description . . . . . . . . . . . : D-Link DFE-530TX PCI …
        Physical Address. . . . . . . . . : 00-05-5D-78-39-29
        DHCP Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.7.6
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.7.1
        DNS Servers . . . . . . . . . . . : 192.168.8.2

The MAC address here is the Physical Address in the second block which is 00:05:5D:78:39:29. As usual Microsoft don’t follow the standard so you have to change the “-“ for “:”.


Back to top

Getting the MAC Address on other OSs

Many UNIX variants will give you the MAC Address using the ifconfig program as root.

  • On a FreeBSD machine the command dmesg will display the MAC address, among other things.
  • On HP systems, the Ethernet device is typically called lan0. Type lanscan and look up the relevant info.
  • MAC Address information can also be found on MacOS through the relevant Appletalk or TCP utilities.

Back to top