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 java/src/test/.
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
% 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.