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 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
% 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 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
% cd c % ./configure % make
You can if necessary indicate the location of the OpenSSL and Expat
% 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.
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.