summaryrefslogtreecommitdiff
path: root/ssh-keygen.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2010-09-10 11:39:26 +1000
committerDamien Miller <djm@mindrot.org>2010-09-10 11:39:26 +1000
commit6af914a15c0c33e8b5bab5ca61919b8562ff1db9 (patch)
treeb87546d8a88a05e6fd600cbb2b8c0b132278cb10 /ssh-keygen.c
parent041ab7c1e7d6514ed84a539a767f79ffb356e807 (diff)
- (djm) [authfd.c authfile.c bufec.c buffer.h configure.ac kex.h kexecdh.c]
[kexecdhc.c kexecdhs.c key.c key.h myproposal.h packet.c readconf.c] [ssh-agent.c ssh-ecdsa.c ssh-keygen.c ssh.c] Disable ECDH and ECDSA on platforms that don't have the requisite OpenSSL support. ok dtucker@
Diffstat (limited to 'ssh-keygen.c')
-rw-r--r--ssh-keygen.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ssh-keygen.c b/ssh-keygen.c
index 43b8c7f97..bbd434b0b 100644
--- a/ssh-keygen.c
+++ b/ssh-keygen.c
@@ -265,10 +265,12 @@ do_convert_to_pkcs8(Key *k)
265 if (!PEM_write_DSA_PUBKEY(stdout, k->dsa)) 265 if (!PEM_write_DSA_PUBKEY(stdout, k->dsa))
266 fatal("PEM_write_DSA_PUBKEY failed"); 266 fatal("PEM_write_DSA_PUBKEY failed");
267 break; 267 break;
268#ifdef OPENSSL_HAS_ECC
268 case KEY_ECDSA: 269 case KEY_ECDSA:
269 if (!PEM_write_EC_PUBKEY(stdout, k->ecdsa)) 270 if (!PEM_write_EC_PUBKEY(stdout, k->ecdsa))
270 fatal("PEM_write_EC_PUBKEY failed"); 271 fatal("PEM_write_EC_PUBKEY failed");
271 break; 272 break;
273#endif
272 default: 274 default:
273 fatal("%s: unsupported key type %s", __func__, key_type(k)); 275 fatal("%s: unsupported key type %s", __func__, key_type(k));
274 } 276 }
@@ -549,6 +551,7 @@ do_convert_from_pkcs8(Key **k, int *private)
549 (*k)->type = KEY_DSA; 551 (*k)->type = KEY_DSA;
550 (*k)->dsa = EVP_PKEY_get1_DSA(pubkey); 552 (*k)->dsa = EVP_PKEY_get1_DSA(pubkey);
551 break; 553 break;
554#ifdef OPENSSL_HAS_ECC
552 case EVP_PKEY_EC: 555 case EVP_PKEY_EC:
553 *k = key_new(KEY_UNSPEC); 556 *k = key_new(KEY_UNSPEC);
554 (*k)->type = KEY_ECDSA; 557 (*k)->type = KEY_ECDSA;
@@ -556,6 +559,7 @@ do_convert_from_pkcs8(Key **k, int *private)
556 (*k)->ecdsa_nid = key_ecdsa_group_to_nid( 559 (*k)->ecdsa_nid = key_ecdsa_group_to_nid(
557 EC_KEY_get0_group((*k)->ecdsa)); 560 EC_KEY_get0_group((*k)->ecdsa));
558 break; 561 break;
562#endif
559 default: 563 default:
560 fatal("%s: unsupported pubkey type %d", __func__, 564 fatal("%s: unsupported pubkey type %d", __func__,
561 EVP_PKEY_type(pubkey->type)); 565 EVP_PKEY_type(pubkey->type));
@@ -632,10 +636,12 @@ do_convert_from(struct passwd *pw)
632 ok = PEM_write_DSAPrivateKey(stdout, k->dsa, NULL, 636 ok = PEM_write_DSAPrivateKey(stdout, k->dsa, NULL,
633 NULL, 0, NULL, NULL); 637 NULL, 0, NULL, NULL);
634 break; 638 break;
639#ifdef OPENSSL_HAS_ECC
635 case KEY_ECDSA: 640 case KEY_ECDSA:
636 ok = PEM_write_ECPrivateKey(stdout, k->ecdsa, NULL, 641 ok = PEM_write_ECPrivateKey(stdout, k->ecdsa, NULL,
637 NULL, 0, NULL, NULL); 642 NULL, 0, NULL, NULL);
638 break; 643 break;
644#endif
639 case KEY_RSA: 645 case KEY_RSA:
640 ok = PEM_write_RSAPrivateKey(stdout, k->rsa, NULL, 646 ok = PEM_write_RSAPrivateKey(stdout, k->rsa, NULL,
641 NULL, 0, NULL, NULL); 647 NULL, 0, NULL, NULL);