Go to file
Joost Rijneveld daa4e2d6db
Rename hash functions to tweaked hashes
Since there's a tweak being introduced, this should be reflected
in the name of the functions.
2017-11-01 15:16:17 +01:00
test Make return code of test/xmss meaningful 2017-10-31 17:24:06 +01:00
ui Support messages that exceed the stack size 2017-10-31 17:21:27 +01:00
.gitignore Clean up tests 2017-10-26 18:06:15 +02:00
.travis.yml Add TravisCI configuration 2017-10-31 17:32:05 +01:00
fips202.c Clean up includes 2017-10-19 17:38:26 +02:00
fips202.h Perform various reformatting / renaming 2017-10-23 14:10:39 +02:00
hash_address.c Rename parameters for readability and consistency 2017-10-24 17:51:56 +02:00
hash_address.h Rename parameters for readability and consistency 2017-10-24 17:51:56 +02:00
hash.c Rename hash functions to tweaked hashes 2017-11-01 15:16:17 +01:00
hash.h Rename hash functions to tweaked hashes 2017-11-01 15:16:17 +01:00
LICENSE Simplify licensing using LICENSE file 2017-10-19 17:38:34 +02:00
Makefile Move ull-byte-conversions to separate utils file 2017-11-01 14:59:33 +01:00
params.c Consistently return -1 on failure 2017-11-01 14:33:07 +01:00
params.h Consistently return -1 on failure 2017-11-01 14:33:07 +01:00
randombytes.c Refactor for more consistent style and readability 2017-08-03 17:39:37 +02:00
randombytes.h Perform various reformatting / renaming 2017-10-23 14:10:39 +02:00
README.md Add TravisCI badge 2017-10-31 17:38:20 +01:00
utils.c Move ull-byte-conversions to separate utils file 2017-11-01 14:59:33 +01:00
utils.h Move ull-byte-conversions to separate utils file 2017-11-01 14:59:33 +01:00
wots.c Rename hash functions to tweaked hashes 2017-11-01 15:16:17 +01:00
wots.h Fix typo in WOTS comments: n-byte messages, not m 2017-11-01 13:35:58 +01:00
xmss_commons.c Rename hash functions to tweaked hashes 2017-11-01 15:16:17 +01:00
xmss_commons.h Move ull-byte-conversions to separate utils file 2017-11-01 14:59:33 +01:00
xmss_core_fast.c Rename hash functions to tweaked hashes 2017-11-01 15:16:17 +01:00
xmss_core.c Rename hash functions to tweaked hashes 2017-11-01 15:16:17 +01:00
xmss_core.h Let xmss_core decide on secret key size 2017-10-26 18:06:17 +02:00
xmss.c Consistently return -1 on failure 2017-11-01 14:33:07 +01:00
xmss.h Perform various reformatting / renaming 2017-10-23 14:10:39 +02:00

XMSS reference code Build Status

This repository contains the reference implementation that accompanies the Internet Draft "XMSS: Extended Hash-Based Signatures", draft-irtf-cfrg-xmss-hash-based-signatures.

This reference implementation supports all parameter sets as defined in the Draft at run-time (specified by prefixing the public and private keys with a 32-bit oid). Implementations that want to use compile-time parameter sets can remove the struct xmss_params function parameter.

When using the current code base, please be careful, expect changes and watch this document for further documentation. In particular, xmss_core_fast.c is long due for a serious clean-up. While this will not change its public API or output, it may affect the storage format of the BDS state (i.e. part of the secret key).

Dependencies

For the SHA-2 hash functions (i.e. SHA-256 and SHA-512), we rely on OpenSSL. Make sure to install the OpenSSL development headers. On Debian-based systems, this is achieved by installing the OpenSSL development package libssl-dev.

License

This reference implementation was written by Andreas Hülsing and Joost Rijneveld. All included code is available under the CC0 1.0 Universal Public Domain Dedication.