version 1.88, 2013/11/02 21:59:15 |
version 1.89, 2013/12/06 13:39:49 |
|
|
#define KT_DSA 2 |
#define KT_DSA 2 |
#define KT_RSA 4 |
#define KT_RSA 4 |
#define KT_ECDSA 8 |
#define KT_ECDSA 8 |
|
#define KT_ED25519 16 |
|
|
int get_keytypes = KT_RSA|KT_ECDSA;/* Get RSA and ECDSA keys by default */ |
int get_keytypes = KT_RSA|KT_ECDSA;/* Get RSA and ECDSA keys by default */ |
|
|
|
|
|
|
packet_set_connection(c->c_fd, c->c_fd); |
packet_set_connection(c->c_fd, c->c_fd); |
enable_compat20(); |
enable_compat20(); |
myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = c->c_keytype == KT_DSA? |
myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = |
"ssh-dss" : (c->c_keytype == KT_RSA ? "ssh-rsa" : |
c->c_keytype == KT_DSA ? "ssh-dss" : |
"ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521"); |
(c->c_keytype == KT_RSA ? "ssh-rsa" : |
|
(c->c_keytype == KT_ED25519 ? "ssh-ed25519" : |
|
"ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521")); |
c->c_kex = kex_setup(myproposal); |
c->c_kex = kex_setup(myproposal); |
c->c_kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; |
c->c_kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; |
c->c_kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; |
c->c_kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; |
|
|
|
|
if (name == NULL) |
if (name == NULL) |
return; |
return; |
for (j = KT_RSA1; j <= KT_ECDSA; j *= 2) { |
for (j = KT_RSA1; j <= KT_ED25519; j *= 2) { |
if (get_keytypes & j) { |
if (get_keytypes & j) { |
while (ncon >= MAXCON) |
while (ncon >= MAXCON) |
conloop(); |
conloop(); |
|
|
break; |
break; |
case KEY_RSA: |
case KEY_RSA: |
get_keytypes |= KT_RSA; |
get_keytypes |= KT_RSA; |
|
break; |
|
case KEY_ED25519: |
|
get_keytypes |= KT_ED25519; |
break; |
break; |
case KEY_UNSPEC: |
case KEY_UNSPEC: |
fatal("unknown key type %s", tname); |
fatal("unknown key type %s", tname); |