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 available; the project page is at https://nxg.me.uk/dist/xoxa/; the algorithm is discussed at greater length in a paper on arXiv: arXiv:1505.04437.
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 java/src/test/.
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
,
respectively.
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.
The source code is available at https://code.nxg.name/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.
Norman Gray
https://nxg.me.uk