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

Diff for /src/usr.bin/ssh/ssh-pkcs11.c between version 1.29 and 1.30

version 1.29, 2019/01/20 23:00:12 version 1.30, 2019/01/20 23:01:59
Line 569 
Line 569 
         CK_SESSION_HANDLE        session;          CK_SESSION_HANDLE        session;
         CK_FUNCTION_LIST        *f = NULL;          CK_FUNCTION_LIST        *f = NULL;
         CK_RV                    rv;          CK_RV                    rv;
           ASN1_OCTET_STRING       *octet = NULL;
         EC_KEY                  *ec = NULL;          EC_KEY                  *ec = NULL;
         EC_GROUP                *group = NULL;          EC_GROUP                *group = NULL;
         struct sshkey           *key = NULL;          struct sshkey           *key = NULL;
Line 637 
Line 638 
                 goto fail;                  goto fail;
         }          }
   
         attrp = (const unsigned char *)key_attr[1].pValue;          attrp = key_attr[1].pValue;
         if (o2i_ECPublicKey(&ec, &attrp, key_attr[1].ulValueLen) == NULL) {          octet = d2i_ASN1_OCTET_STRING(NULL, &attrp, key_attr[1].ulValueLen);
                 /* try to skip DER header (octet string type and length byte) */          if (octet == NULL) {
                 attrp = (const unsigned char *)key_attr[1].pValue + 2;                  ossl_error("d2i_ASN1_OCTET_STRING failed");
                 if (o2i_ECPublicKey(&ec, &attrp, key_attr[1].ulValueLen - 2)                  goto fail;
                     == NULL) {  
                         ossl_error("o2i_ECPublicKey failed");  
                         goto fail;  
                 }  
         }          }
           attrp = octet->data;
           if (o2i_ECPublicKey(&ec, &attrp, octet->length) == NULL) {
                   ossl_error("o2i_ECPublicKey failed");
                   goto fail;
           }
   
         nid = sshkey_ecdsa_key_to_nid(ec);          nid = sshkey_ecdsa_key_to_nid(ec);
         if (nid < 0) {          if (nid < 0) {
Line 676 
Line 678 
                 EC_KEY_free(ec);                  EC_KEY_free(ec);
         if (group)          if (group)
                 EC_GROUP_free(group);                  EC_GROUP_free(group);
           if (octet)
                   ASN1_OCTET_STRING_free(octet);
   
         return (key);          return (key);
 }  }

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30