Lines Matching refs:n

36 static void get_seed(unsigned char *seed, const unsigned char *sk_seed, int n, uint32_t addr[8])  in get_seed()  argument
45 prf(seed, bytes, sk_seed, n); in get_seed()
53 int xmss_set_params(xmss_params *params, int n, int h, int w, int k) in xmss_set_params() argument
60 params->n = n; in xmss_set_params()
63 wots_set_params(&wots_par, n, w); in xmss_set_params()
90 int xmssmt_set_params(xmssmt_params *params, int n, int h, int d, int w, int k) in xmssmt_set_params() argument
98 params->n = n; in xmssmt_set_params()
101 if (xmss_set_params(&xmss_par, n, (h/d), w, k)) { in xmssmt_set_params()
114 unsigned int n = params->n; in l_tree() local
128 hash_h(wots_pk+i*n, wots_pk+i*2*n, pub_seed, addr, n); in l_tree()
133 memcpy(wots_pk+(l>>1)*n, wots_pk+(l-1)*n, n); in l_tree()
146 memcpy(leaf, wots_pk, n); in l_tree()
154 unsigned char seed[params->n]; in gen_leaf_wots()
157 get_seed(seed, sk_seed, params->n, ots_addr); in gen_leaf_wots()
181 unsigned int n = params->n; in treehash_setup() local
198 unsigned char stack[(height+1)*n]; in treehash_setup()
215 gen_leaf_wots(stack+stackoffset*n, sk_seed, params, pub_seed, ltree_addr, ots_addr); in treehash_setup()
219 memcpy(state->treehash[0].node, stack+stackoffset*n, n); in treehash_setup()
225 memcpy(state->auth + nodeh*n, stack+(stackoffset-1)*n, n); in treehash_setup()
229 memcpy(state->treehash[nodeh].node, stack+(stackoffset-1)*n, n); in treehash_setup()
232 … ((1 << (h - 1 - nodeh)) + nodeh - h + (((i >> nodeh) - 3) >> 1)) * n, stack+(stackoffset-1)*n, n); in treehash_setup()
237 hash_h(stack+(stackoffset-2)*n, stack+(stackoffset-2)*n, pub_seed, in treehash_setup()
238 node_addr, n); in treehash_setup()
245 for (i = 0; i < n; i++) in treehash_setup()
250 int n = params->n; in treehash_update() local
267 unsigned char nodebuffer[2 * n]; in treehash_update()
271 memcpy(nodebuffer + n, nodebuffer, n); in treehash_update()
272 memcpy(nodebuffer, state->stack + (state->stackoffset-1)*n, n); in treehash_update()
275 hash_h(nodebuffer, nodebuffer, pub_seed, node_addr, n); in treehash_update()
281 memcpy(treehash->node, nodebuffer, n); in treehash_update()
285 memcpy(state->stack + state->stackoffset*n, nodebuffer, n); in treehash_update()
298 unsigned int n = params->n; in validate_authpath() local
301 unsigned char buffer[2*n]; in validate_authpath()
306 for (j = 0; j < n; j++) in validate_authpath()
307 buffer[n+j] = leaf[j]; in validate_authpath()
308 for (j = 0; j < n; j++) in validate_authpath()
312 for (j = 0; j < n; j++) in validate_authpath()
314 for (j = 0; j < n; j++) in validate_authpath()
315 buffer[n+j] = authpath[j]; in validate_authpath()
317 authpath += n; in validate_authpath()
324 hash_h(buffer+n, buffer, pub_seed, addr, n); in validate_authpath()
325 for (j = 0; j < n; j++) in validate_authpath()
329 hash_h(buffer, buffer, pub_seed, addr, n); in validate_authpath()
330 for (j = 0; j < n; j++) in validate_authpath()
331 buffer[j+n] = authpath[j]; in validate_authpath()
333 authpath += n; in validate_authpath()
338 hash_h(root, buffer, pub_seed, addr, n); in validate_authpath()
388 int n = params->n; in bds_state_update() local
410 gen_leaf_wots(state->stack+state->stackoffset*n, sk_seed, params, pub_seed, ltree_addr, ots_addr); in bds_state_update()
415 memcpy(state->treehash[0].node, state->stack+state->stackoffset*n, n); in bds_state_update()
420 memcpy(state->auth + nodeh*n, state->stack+(state->stackoffset-1)*n, n); in bds_state_update()
424 memcpy(state->treehash[nodeh].node, state->stack+(state->stackoffset-1)*n, n); in bds_state_update()
427 …- nodeh)) + nodeh - h + (((idx >> nodeh) - 3) >> 1)) * n, state->stack+(state->stackoffset-1)*n, n in bds_state_update()
432 …hash_h(state->stack+(state->stackoffset-2)*n, state->stack+(state->stackoffset-2)*n, pub_seed, nod… in bds_state_update()
449 unsigned int n = params->n; in bds_round() local
456 unsigned char buf[2 * n]; in bds_round()
478 memcpy(buf, state->auth + (tau-1) * n, n); in bds_round()
480 memcpy(buf + n, state->keep + ((tau-1) >> 1) * n, n); in bds_round()
483 memcpy(state->keep + (tau >> 1)*n, state->auth + tau*n, n); in bds_round()
493 hash_h(state->auth + tau * n, buf, pub_seed, node_addr, n); in bds_round()
496 memcpy(state->auth + i * n, state->treehash[i].node, n); in bds_round()
501 memcpy(state->auth + i * n, state->retain + (offset + rowidx) * n, n); in bds_round()
524 unsigned int n = params->n; in xmss_keypair() local
531 randombytes(sk+4, 3*n); in xmss_keypair()
533 memcpy(pk+n, sk+4+2*n, n); in xmss_keypair()
538 treehash_setup(pk, params->h, 0, state, sk+4, params, sk+4+2*n, addr); in xmss_keypair()
540 memcpy(sk+4+3*n, pk, n); in xmss_keypair()
554 unsigned int n = params->n; in xmss_sign() local
560 unsigned char sk_seed[n]; in xmss_sign()
561 memcpy(sk_seed, sk+4, n); in xmss_sign()
562 unsigned char sk_prf[n]; in xmss_sign()
563 memcpy(sk_prf, sk+4+n, n); in xmss_sign()
564 unsigned char pub_seed[n]; in xmss_sign()
565 memcpy(pub_seed, sk+4+2*n, n); in xmss_sign()
571 unsigned char hash_key[3*n]; in xmss_sign()
582 unsigned char R[n]; in xmss_sign()
583 unsigned char msg_h[n]; in xmss_sign()
584 unsigned char ots_seed[n]; in xmss_sign()
593 prf(R, idx_bytes_32, sk_prf, n); in xmss_sign()
595 memcpy(hash_key, R, n); in xmss_sign()
596 memcpy(hash_key+n, sk+4+3*n, n); in xmss_sign()
597 to_byte(hash_key+2*n, idx, n); in xmss_sign()
599 h_msg(msg_h, msg, msglen, hash_key, 3*n, n); in xmss_sign()
614 for (i = 0; i < n; i++) in xmss_sign()
617 sig_msg += n; in xmss_sign()
618 *sig_msg_len += n; in xmss_sign()
629 get_seed(ots_seed, sk_seed, n, ots_addr); in xmss_sign()
638 memcpy(sig_msg, state->auth, h*n); in xmss_sign()
647 sig_msg += params->h*n; in xmss_sign()
648 *sig_msg_len += params->h*n; in xmss_sign()
665 unsigned int n = params->n; in xmss_sign_open() local
670 unsigned char pkhash[n]; in xmss_sign_open()
671 unsigned char root[n]; in xmss_sign_open()
672 unsigned char msg_h[n]; in xmss_sign_open()
673 unsigned char hash_key[3*n]; in xmss_sign_open()
675 unsigned char pub_seed[n]; in xmss_sign_open()
676 memcpy(pub_seed, pk+n, n); in xmss_sign_open()
692 memcpy(hash_key, sig_msg+4,n); in xmss_sign_open()
693 memcpy(hash_key+n, pk, n); in xmss_sign_open()
694 to_byte(hash_key+2*n, idx, n); in xmss_sign_open()
696 sig_msg += (n+4); in xmss_sign_open()
697 sig_msg_len -= (n+4); in xmss_sign_open()
700 unsigned long long tmp_sig_len = params->wots_par.keysize+params->h*n; in xmss_sign_open()
702 h_msg(msg_h, sig_msg + tmp_sig_len, m_len, hash_key, 3*n, n); in xmss_sign_open()
723 sig_msg += params->h*n; in xmss_sign_open()
724 sig_msg_len -= params->h*n; in xmss_sign_open()
726 for (i = 0; i < n; i++) in xmss_sign_open()
752 unsigned int n = params->n; in xmssmt_keypair() local
754 unsigned char ots_seed[params->n]; in xmssmt_keypair()
760 randombytes(sk+params->index_len, 3*n); in xmssmt_keypair()
762 memcpy(pk+n, sk+params->index_len+2*n, n); in xmssmt_keypair()
770 …etup(pk, params->xmss_par.h, 0, states + i, sk+params->index_len, &(params->xmss_par), pk+n, addr); in xmssmt_keypair()
772 get_seed(ots_seed, sk+params->index_len, n, addr); in xmssmt_keypair()
773 …igs + i*params->xmss_par.wots_par.keysize, pk, ots_seed, &(params->xmss_par.wots_par), pk+n, addr); in xmssmt_keypair()
775 …etup(pk, params->xmss_par.h, 0, states + i, sk+params->index_len, &(params->xmss_par), pk+n, addr); in xmssmt_keypair()
776 memcpy(sk+params->index_len+3*n, pk, n); in xmssmt_keypair()
789 unsigned int n = params->n; in xmssmt_sign() local
801 unsigned char sk_seed[n]; in xmssmt_sign()
802 unsigned char sk_prf[n]; in xmssmt_sign()
803 unsigned char pub_seed[n]; in xmssmt_sign()
805 unsigned char R[n]; in xmssmt_sign()
806 unsigned char msg_h[n]; in xmssmt_sign()
807 unsigned char hash_key[3*n]; in xmssmt_sign()
808 unsigned char ots_seed[n]; in xmssmt_sign()
820 memcpy(sk_seed, sk+idx_len, n); in xmssmt_sign()
821 memcpy(sk_prf, sk+idx_len+n, n); in xmssmt_sign()
822 memcpy(pub_seed, sk+idx_len+2*n, n); in xmssmt_sign()
839 prf(R, idx_bytes_32, sk_prf, n); in xmssmt_sign()
841 memcpy(hash_key, R, n); in xmssmt_sign()
842 memcpy(hash_key+n, sk+idx_len+3*n, n); in xmssmt_sign()
843 to_byte(hash_key+2*n, idx, n); in xmssmt_sign()
846 h_msg(msg_h, msg, msglen, hash_key, 3*n, n); in xmssmt_sign()
860 for (i = 0; i < n; i++) in xmssmt_sign()
863 sig_msg += n; in xmssmt_sign()
864 *sig_msg_len += n; in xmssmt_sign()
881 get_seed(ots_seed, sk_seed, n, ots_addr); in xmssmt_sign()
889 memcpy(sig_msg, states[0].auth, tree_h*n); in xmssmt_sign()
890 sig_msg += tree_h*n; in xmssmt_sign()
891 *sig_msg_len += tree_h*n; in xmssmt_sign()
902 memcpy(sig_msg, states[i].auth, tree_h*n); in xmssmt_sign()
903 sig_msg += tree_h*n; in xmssmt_sign()
904 *sig_msg_len += tree_h*n; in xmssmt_sign()
944 get_seed(ots_seed, sk+params->index_len, n, ots_addr); in xmssmt_sign()
972 unsigned int n = params->n; in xmssmt_sign_open() local
982 unsigned char pkhash[n]; in xmssmt_sign_open()
983 unsigned char root[n]; in xmssmt_sign_open()
984 unsigned char msg_h[n]; in xmssmt_sign_open()
985 unsigned char hash_key[3*n]; in xmssmt_sign_open()
987 unsigned char pub_seed[n]; in xmssmt_sign_open()
988 memcpy(pub_seed, pk+n, n); in xmssmt_sign_open()
1004 memcpy(hash_key, sig_msg,n); in xmssmt_sign_open()
1005 memcpy(hash_key+n, pk, n); in xmssmt_sign_open()
1006 to_byte(hash_key+2*n, idx, n); in xmssmt_sign_open()
1008 sig_msg += n; in xmssmt_sign_open()
1009 sig_msg_len -= n; in xmssmt_sign_open()
1013 …unsigned long long tmp_sig_len = (params->d * params->xmss_par.wots_par.keysize) + (params->h * n); in xmssmt_sign_open()
1015 h_msg(msg_h, sig_msg + tmp_sig_len, m_len, hash_key, 3*n, n); in xmssmt_sign_open()
1050 sig_msg += tree_h*n; in xmssmt_sign_open()
1051 sig_msg_len -= tree_h*n; in xmssmt_sign_open()
1083 sig_msg += tree_h*n; in xmssmt_sign_open()
1084 sig_msg_len -= tree_h*n; in xmssmt_sign_open()
1088 for (i = 0; i < n; i++) in xmssmt_sign_open()