forked from rpms/openssh
Correctly initialize ECDSA key structures from PKCS#11
This commit is contained in:
parent
ba99e00fe8
commit
1b0cc8ff3b
@ -124,10 +124,10 @@ diff -up openssh/ssh-pkcs11-client.c.pkcs11-ecdsa openssh/ssh-pkcs11-client.c
|
|||||||
fatal("%s: bad key: %s", __func__, ssh_err(r));
|
fatal("%s: bad key: %s", __func__, ssh_err(r));
|
||||||
- wrap_key(k->rsa);
|
- wrap_key(k->rsa);
|
||||||
+ if(k->type == KEY_RSA) {
|
+ if(k->type == KEY_RSA) {
|
||||||
+ wrap_rsa_key(k->rsa);
|
+ wrap_rsa_key(k->rsa);
|
||||||
+#ifdef ENABLE_PKCS11_ECDSA
|
+#ifdef ENABLE_PKCS11_ECDSA
|
||||||
+ } else if(k->type == KEY_ECDSA) {
|
+ } else if(k->type == KEY_ECDSA) {
|
||||||
+ wrap_ecdsa_key(k->ecdsa);
|
+ wrap_ecdsa_key(k->ecdsa);
|
||||||
+#endif /* ENABLE_PKCS11_ECDSA */
|
+#endif /* ENABLE_PKCS11_ECDSA */
|
||||||
+ } else {
|
+ } else {
|
||||||
+ /* Unsupported type */
|
+ /* Unsupported type */
|
||||||
@ -640,7 +640,7 @@ diff -up openssh/ssh-pkcs11.c.pkcs11-ecdsa openssh/ssh-pkcs11.c
|
|||||||
}
|
}
|
||||||
X509_free(x509);
|
X509_free(x509);
|
||||||
EVP_PKEY_free(evp);
|
EVP_PKEY_free(evp);
|
||||||
@@ -725,6 +1021,17 @@ pkcs11_fetch_keys_filter(struct pkcs11_p
|
@@ -725,6 +1021,18 @@ pkcs11_fetch_keys_filter(struct pkcs11_p
|
||||||
key->rsa = rsa;
|
key->rsa = rsa;
|
||||||
key->type = KEY_RSA;
|
key->type = KEY_RSA;
|
||||||
key->flags |= SSHKEY_FLAG_EXT;
|
key->flags |= SSHKEY_FLAG_EXT;
|
||||||
@ -650,6 +650,7 @@ diff -up openssh/ssh-pkcs11.c.pkcs11-ecdsa openssh/ssh-pkcs11.c
|
|||||||
+ if ((key = sshkey_new(KEY_UNSPEC)) == NULL)
|
+ if ((key = sshkey_new(KEY_UNSPEC)) == NULL)
|
||||||
+ fatal("sshkey_new failed");
|
+ fatal("sshkey_new failed");
|
||||||
+ key->ecdsa = ecdsa;
|
+ key->ecdsa = ecdsa;
|
||||||
|
+ key->ecdsa_nid = sshkey_ecdsa_key_to_nid(key->ecdsa);
|
||||||
+ key->type = KEY_ECDSA;
|
+ key->type = KEY_ECDSA;
|
||||||
+ key->flags |= SSHKEY_FLAG_EXT;
|
+ key->flags |= SSHKEY_FLAG_EXT;
|
||||||
+#endif /* ENABLE_PKCS11_ECDSA */
|
+#endif /* ENABLE_PKCS11_ECDSA */
|
||||||
|
Loading…
Reference in New Issue
Block a user