[BACK]Return to sshkey-xmss.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/sshkey-xmss.c between version 1.6 and 1.7

version 1.6, 2019/10/09 00:02:57 version 1.7, 2019/10/14 06:00:02
Line 742 
Line 742 
         u_int32_t i, lh, node;          u_int32_t i, lh, node;
         size_t ls, lsl, la, lk, ln, lr;          size_t ls, lsl, la, lk, ln, lr;
         char *magic;          char *magic;
         int r;          int r = SSH_ERR_INTERNAL_ERROR;
   
         if (state == NULL)          if (state == NULL)
                 return SSH_ERR_INVALID_ARGUMENT;                  return SSH_ERR_INVALID_ARGUMENT;
Line 761 
Line 761 
             (r = sshbuf_get_string(b, &state->th_nodes, &ln)) != 0 ||              (r = sshbuf_get_string(b, &state->th_nodes, &ln)) != 0 ||
             (r = sshbuf_get_string(b, &state->retain, &lr)) != 0 ||              (r = sshbuf_get_string(b, &state->retain, &lr)) != 0 ||
             (r = sshbuf_get_u32(b, &lh)) != 0)              (r = sshbuf_get_u32(b, &lh)) != 0)
                 return r;                  goto out;
         if (strcmp(magic, SSH_XMSS_K2_MAGIC) != 0)          if (strcmp(magic, SSH_XMSS_K2_MAGIC) != 0) {
                 return SSH_ERR_INVALID_ARGUMENT;                  r = SSH_ERR_INVALID_ARGUMENT;
                   goto out;
           }
         /* XXX check stackoffset */          /* XXX check stackoffset */
         if (ls != num_stack(state) ||          if (ls != num_stack(state) ||
             lsl != num_stacklevels(state) ||              lsl != num_stacklevels(state) ||
Line 771 
Line 773 
             lk != num_keep(state) ||              lk != num_keep(state) ||
             ln != num_th_nodes(state) ||              ln != num_th_nodes(state) ||
             lr != num_retain(state) ||              lr != num_retain(state) ||
             lh != num_treehash(state))              lh != num_treehash(state)) {
                 return SSH_ERR_INVALID_ARGUMENT;                  r = SSH_ERR_INVALID_ARGUMENT;
                   goto out;
           }
         for (i = 0; i < num_treehash(state); i++) {          for (i = 0; i < num_treehash(state); i++) {
                 th = &state->treehash[i];                  th = &state->treehash[i];
                 if ((r = sshbuf_get_u32(b, &th->h)) != 0 ||                  if ((r = sshbuf_get_u32(b, &th->h)) != 0 ||
Line 780 
Line 784 
                     (r = sshbuf_get_u32(b, &th->stackusage)) != 0 ||                      (r = sshbuf_get_u32(b, &th->stackusage)) != 0 ||
                     (r = sshbuf_get_u8(b, &th->completed)) != 0 ||                      (r = sshbuf_get_u8(b, &th->completed)) != 0 ||
                     (r = sshbuf_get_u32(b, &node)) != 0)                      (r = sshbuf_get_u32(b, &node)) != 0)
                         return r;                          goto out;
                 if (node < num_th_nodes(state))                  if (node < num_th_nodes(state))
                         th->node = &state->th_nodes[node];                          th->node = &state->th_nodes[node];
         }          }
Line 788 
Line 792 
         xmss_set_bds_state(&state->bds, state->stack, state->stackoffset,          xmss_set_bds_state(&state->bds, state->stack, state->stackoffset,
             state->stacklevels, state->auth, state->keep, state->treehash,              state->stacklevels, state->auth, state->keep, state->treehash,
             state->retain, 0);              state->retain, 0);
         return 0;          /* success */
           r = 0;
    out:
           free(magic);
           return r;
 }  }
   
 int  int

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7