From e2f1cee548897854ed5bc5b5a450b77c23980074 Mon Sep 17 00:00:00 2001 From: Joost Rijneveld Date: Wed, 3 Feb 2016 14:04:45 +0100 Subject: [PATCH] Fix error for d=1 cases as introduced by 719cb46 --- xmss_fast.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xmss_fast.c b/xmss_fast.c index 9b436c9..0a28935 100644 --- a/xmss_fast.c +++ b/xmss_fast.c @@ -948,8 +948,10 @@ int xmssmt_sign(unsigned char *sk, bds_state *states, unsigned char *wots_sigs, SET_LAYER_ADDRESS(addr, 0); SET_TREE_ADDRESS(addr, (idx_tree + 1)); - // mandatory update for NEXT_0 (does not count towards h-k/2) - bds_state_update(&states[params->d], sk_seed, &(params->xmss_par), pub_seed, addr); + // mandatory update for NEXT_0 (does not count towards h-k/2) if NEXT_0 exists + if ((1 + idx_tree) * (1 << tree_h) + idx_leaf < (1UL << h)) { + bds_state_update(&states[params->d], sk_seed, &(params->xmss_par), pub_seed, addr); + } for (i = 0; i < params->d; i++) { // check if we're not at the end of a tree