Joost Rijneveld
342dc1c50c
Clean up xmss_core header file
2017-10-26 12:10:17 +02:00
Joost Rijneveld
94a92ed2b1
Make XMSS sign/open functions instances of XMSSMT
...
This removes a lot of code duplication.
2017-10-26 12:07:57 +02:00
Joost Rijneveld
7c6354f762
Rename parameters for readability and consistency
2017-10-24 17:51:56 +02:00
Joost Rijneveld
bbbb95e869
Fix erroneous index length for XMSSMT
...
This produced repeated indices when reaching 2^32 signatures.
This was introduced in 9b35b00d98
with the re-introduction of runtime parameters. Compile-time parameters
did not contain this error.
2017-10-24 17:40:21 +02:00
Joost Rijneveld
4111393912
Abstract address types into macro constants
2017-10-24 16:23:57 +02:00
Joost Rijneveld
ae49c04807
Clean up signing functions
...
As a result, performs various refactors that also impact the verification
function, since cleaner signing functions exposed more overlap.
2017-10-24 16:23:51 +02:00
Joost Rijneveld
d794ae30ee
Deduplicate XMSS/XMSSMT key generation
2017-10-24 12:02:42 +02:00
Joost Rijneveld
d9a9723125
Combine auth path and keygen root functions
...
This greatly reduces the memory comsumption of the auth path
computation, since it now also uses treehash. It prevents
duplicate code by re-using the treehash function.
A downside is that it does also pick out the authentication path
during key generation (while it is not used), but this cost is
negligible.
2017-10-24 11:53:45 +02:00
Joost Rijneveld
9ac634762f
Also fix underflow for XMSSMT
...
This is the same fix as 998137622a
2017-10-24 09:37:57 +02:00
Joost Rijneveld
a9fe0e43fe
Clean up key generation
2017-10-24 09:37:49 +02:00
Joost Rijneveld
270e6cd753
Reorder ull_to_bytes parameters to group output
2017-10-23 16:19:16 +02:00
Joost Rijneveld
cd8e621dac
Refactor and deduplicate WOTS
2017-10-23 15:54:14 +02:00
Joost Rijneveld
c4d4e93bbd
Add test to check deterministic signatures
...
Wrote this to find what turned out to be an external error when
using the interfacing programs, but felt like it might as well be added.
Under the same key and message, the signature is expected to be identical.
However, as the index changes, this case will not happen in real use.
2017-10-23 14:52:33 +02:00
Joost Rijneveld
305bd614bb
Perform various reformatting / renaming
2017-10-23 14:10:39 +02:00
Joost Rijneveld
998137622a
Fix integer underflow when writing updated sk
...
This caused secret key files to become close to MAXINT bytes, as
the unsigned int that is the private key size would be subtracted
from MAXINT when its negative was used as offset.
2017-10-23 13:25:01 +02:00
Joost Rijneveld
8970c4933c
Document and simplify library usage
2017-10-23 13:03:44 +02:00
Joost Rijneveld
138a380a26
Remove unnecessary endianness difference
...
The current code results in the same output regardless of endianness.
Verified using a QEMU VM to emulate MIPS.
2017-10-19 18:11:52 +02:00
Joost Rijneveld
2a89ca2874
Resolve comparison warnings
2017-10-19 17:38:34 +02:00
Joost Rijneveld
f3bad4a272
Simplify licensing using LICENSE file
2017-10-19 17:38:34 +02:00
Joost Rijneveld
dce1a1acda
Clean up includes
2017-10-19 17:38:26 +02:00
Joost Rijneveld
c803860cf8
Fix file IO ambiguity for UI scripts
...
The variable sm should contain the signature and the message,
not the message and the signature (i.e. the order is crucial).
2017-10-19 16:08:50 +02:00
Joost Rijneveld
2c976d5268
Unify header guards
...
By prefixing with XMSS_, we hopefully prevent conflicts
2017-10-19 16:04:42 +02:00
Joost Rijneveld
b8eb8c44a1
Add UI test files to create sample signatures
...
This makes it easier to mix and match with other implementations
for compatibility testing.
2017-10-17 17:11:18 +02:00
Joost Rijneveld
a926fce0bd
Clean up stray params.h generator
2017-10-16 15:29:17 +02:00
Joost Rijneveld
1a7df37f59
Add accidentally omitted params.h
...
Previously this was generated and thus gitignored
2017-10-16 15:17:35 +02:00
Joost Rijneveld
6a8571d880
Revert to using runtime-only parameter struct
...
Using global defines for parameters (as seems to be typical in
academic crypto code) does not play nice with multithreading at all.
2017-10-16 12:09:07 +02:00
Joost Rijneveld
2f87bf5a1f
Simplify runtime parameter globals
2017-08-24 14:59:14 +02:00
Joost Rijneveld
9d5884e120
Refactor for more consistent style and readability
2017-08-03 17:39:37 +02:00
Joost Rijneveld
1076b37321
Remove stray zerobytes
2017-08-01 16:48:47 +02:00
Joost Rijneveld
3134fafd91
Merge branch 'master' into defined-parameters
...
The defined-parameters branch should be the new leading branch,
as it supersedes master. This merge is performed using --strategy ours
as there are numerous conflicting changes regarding the different ways
in which SHA3 was added. The master branch is considered to not contain
anything of value that is not contained in the defined-parameters branch.
Prior to merging, the defined-parameters branch was rebased to prevent
the cherry-picked commits from showing up twice.
2017-08-01 16:45:08 +02:00
Joost Rijneveld
7fbd28a78b
Clarify status of run-time parameter selection
2017-08-01 16:18:09 +02:00
Joost Rijneveld
9b35b00d98
Add wrapper that allows for runtime parameters
2017-08-01 16:18:09 +02:00
Joost Rijneveld
65ee8202d8
Refactor to prepare for runtime parameters
2017-08-01 16:18:09 +02:00
Joost Rijneveld
1e041f25d5
Simplify hash family parameter definition
2017-08-01 16:18:09 +02:00
Joost Rijneveld
073e093ce0
Remove unused leafaddr structures
2017-08-01 16:18:09 +02:00
Joost Rijneveld
3ea7e8ace3
Mention branch-specific purpose on README
2017-08-01 16:18:09 +02:00
Joost Rijneveld
b8ec30fc2c
Clarify compile-time parameters in README
2017-08-01 16:17:58 +02:00
Joost Rijneveld
0986ceb2b7
Add README file mentioning XDR
2017-07-22 16:41:37 +02:00
Joost Rijneveld
3c0f6668ef
Add parameter for hash alg family, support SHAKE
2017-07-22 16:27:45 +02:00
Joost Rijneveld
880cfaa2d3
Remove stray local kdev config files
2017-07-22 15:33:31 +02:00
Andreas
dd067bd23e
some old changes
2017-07-22 15:13:58 +02:00
Joost Rijneveld
8befb0d550
Add SHAKE128 and SHAKE256
...
This also performs numerous consistency fixes
2017-06-02 17:29:14 +02:00
Joost Rijneveld
5122ac6f73
Reduce code duplication
...
A large number of functions was repeated in xmss_fast; these are now
shared between the two implementations via the xmss_commons file.
Notably, we ensure compatability by sharing the verification functions.
2017-06-02 14:46:30 +02:00
Joost Rijneveld
1e00c92c18
Refactor to use compile-time parameter sets
...
This starts a cleanup / refactor, but there is still some low-hanging fruit.
2017-06-02 14:10:24 +02:00
Joost Rijneveld
d4bc8656e3
Fix bug in addressing during fast xmssmt key gen
2017-05-31 16:43:12 +02:00
Andreas
9f512fa8dc
v06
2016-09-22 16:31:41 +02:00
Andreas
ddddfd9739
handle that most machines are little endian but addresses here are big endian...
2016-07-12 16:19:42 +02:00
Andreas
2c290d39be
upgraded to draft-06
2016-07-11 11:15:16 +02:00
Andreas
2b73688b7c
fixed endianess for toByte and base_w
2016-02-16 19:24:12 +01:00
Andreas
c37b9dcfca
SWITCH from v01 to v03
...
Versions are incompatible due to different address formats and differing message compression!
2016-02-16 16:31:18 +01:00