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

Diff for /src/usr.bin/ssh/ssh-ed25519-sk.c between version 1.2 and 1.3

version 1.2, 2019/11/12 19:34:40 version 1.3, 2019/11/25 00:51:37
Line 33 
Line 33 
 int  int
 ssh_ed25519_sk_verify(const struct sshkey *key,  ssh_ed25519_sk_verify(const struct sshkey *key,
     const u_char *signature, size_t signaturelen,      const u_char *signature, size_t signaturelen,
     const u_char *data, size_t datalen, u_int compat)      const u_char *data, size_t datalen, u_int compat,
       struct sshkey_sig_details **detailsp)
 {  {
         struct sshbuf *b = NULL;          struct sshbuf *b = NULL;
         struct sshbuf *encoded = NULL;          struct sshbuf *encoded = NULL;
Line 49 
Line 50 
         unsigned long long smlen = 0, mlen = 0;          unsigned long long smlen = 0, mlen = 0;
         int r = SSH_ERR_INTERNAL_ERROR;          int r = SSH_ERR_INTERNAL_ERROR;
         int ret;          int ret;
           struct sshkey_sig_details *details = NULL;
   
           if (detailsp != NULL)
                   *detailsp = NULL;
   
         if (key == NULL ||          if (key == NULL ||
             sshkey_type_plain(key->type) != KEY_ED25519_SK ||              sshkey_type_plain(key->type) != KEY_ED25519_SK ||
             key->ed25519_pk == NULL ||              key->ed25519_pk == NULL ||
Line 84 
Line 89 
                 r = SSH_ERR_INVALID_ARGUMENT;                  r = SSH_ERR_INVALID_ARGUMENT;
                 goto out;                  goto out;
         }          }
           if ((details = calloc(1, sizeof(*details))) == NULL) {
                   r = SSH_ERR_ALLOC_FAIL;
                   goto out;
           }
           details->sk_counter = sig_counter;
           details->sk_flags = sig_flags;
         if ((encoded = sshbuf_new()) == NULL) {          if ((encoded = sshbuf_new()) == NULL) {
                 r = SSH_ERR_ALLOC_FAIL;                  r = SSH_ERR_ALLOC_FAIL;
                 goto out;                  goto out;
Line 115 
Line 126 
         /* XXX compare 'm' and 'sm + len' ? */          /* XXX compare 'm' and 'sm + len' ? */
         /* success */          /* success */
         r = 0;          r = 0;
           if (detailsp != NULL) {
                   *detailsp = details;
                   details = NULL;
           }
  out:   out:
         if (m != NULL) {          if (m != NULL) {
                 explicit_bzero(m, smlen); /* NB mlen may be invalid if r != 0 */                  explicit_bzero(m, smlen); /* NB mlen may be invalid if r != 0 */
                 free(m);                  free(m);
         }          }
           sshkey_sig_details_free(details);
         sshbuf_free(b);          sshbuf_free(b);
         sshbuf_free(encoded);          sshbuf_free(encoded);
         free(ktype);          free(ktype);

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3