Xoxa: normalising XML

The Xoxa library, and application, implements an alternative digital
signature mechanism for XML.

The library exists in both a Java and a C version, and in each
case there is a command-line tool which can demonstrate the library in
action. These are maintained together but are otherwise independent
of each other.

Still rather preliminary (ie, regard it as a beta; some aspects of the
behaviour might change).

The source is at Bitbucket;
the project page is at https://nxg.me.uk/dist/xoxa/;
the algorithm is discussed at greater length in a paper on arXiv:

The Java implementation

To build, you need Maven and Java:

% cd java
% mvn clean compile assembly:single
% java -jar target/xoxa-???-jar-with-dependencies.jar --help

To test,

% mvn test

(you may need to set -Dgpg.binary=.../bin/gpg2, if the gpg binary
isn't in the path, or isn't called 'gpg')

There is a Makefile, but this is for convenience, and simply calls mvn
to do the actual build. The commands make and make check will
work. The distribution is done purely by the Makefile.

The source is in java/src/main/, and there are tests in test/ and in

The C implementation

Requires Expat and OpenSSL (on OS X, the build will use the system
crypto library by default, but can be required to use OpenSSL by a
configuration option).

% cd c
% ./configure
% make

You can if necessary indicate the location of the OpenSSL and Expat
libraries with --with-openssl=path and --with-expat=path,

To test,

% make check

The C version builds on OS X (llvm), OpenBSD (gcc, and with
MALLOC_OPTIONS=AFGJ), at least, and it should be more broadly portable.

Source code and licence information

The source code is available at https://bitbucket.org/nxg/xoxa.

Xoxa is Copyright 2013, 2014 Norman Gray, and is released under the
terms of the BSD 2-clause licence (see the file LICENCE for text).

The distribution includes the lcut unit-testing framework,
which is Copyright 2005–2010 Tony Bai, and released under the terms of
the Apache Licence, Version 2.0.

The name

Xoxa is a Zulu word and affix meaning to chat or discuss; it therefore
seems appropriate for a library intended to support reliable
conversations via XML. See http://isizulu.net/p11n/sounds/xoxa.mp3.

Norman Gray