version 1.471, 2023/09/04 10:29:58 |
version 1.472, 2024/01/11 01:45:36 |
|
|
name = _PATH_SSH_CLIENT_ID_ED25519; |
name = _PATH_SSH_CLIENT_ID_ED25519; |
else { |
else { |
switch (sshkey_type_from_name(key_type_name)) { |
switch (sshkey_type_from_name(key_type_name)) { |
|
#ifdef WITH_DSA |
case KEY_DSA_CERT: |
case KEY_DSA_CERT: |
case KEY_DSA: |
case KEY_DSA: |
name = _PATH_SSH_CLIENT_ID_DSA; |
name = _PATH_SSH_CLIENT_ID_DSA; |
break; |
break; |
|
#endif |
case KEY_ECDSA_CERT: |
case KEY_ECDSA_CERT: |
case KEY_ECDSA: |
case KEY_ECDSA: |
name = _PATH_SSH_CLIENT_ID_ECDSA; |
name = _PATH_SSH_CLIENT_ID_ECDSA; |
|
|
if (!PEM_write_RSA_PUBKEY(stdout, k->rsa)) |
if (!PEM_write_RSA_PUBKEY(stdout, k->rsa)) |
fatal("PEM_write_RSA_PUBKEY failed"); |
fatal("PEM_write_RSA_PUBKEY failed"); |
break; |
break; |
|
#ifdef WITH_DSA |
case KEY_DSA: |
case KEY_DSA: |
if (!PEM_write_DSA_PUBKEY(stdout, k->dsa)) |
if (!PEM_write_DSA_PUBKEY(stdout, k->dsa)) |
fatal("PEM_write_DSA_PUBKEY failed"); |
fatal("PEM_write_DSA_PUBKEY failed"); |
break; |
break; |
|
#endif |
case KEY_ECDSA: |
case KEY_ECDSA: |
if (!PEM_write_EC_PUBKEY(stdout, k->ecdsa)) |
if (!PEM_write_EC_PUBKEY(stdout, k->ecdsa)) |
fatal("PEM_write_EC_PUBKEY failed"); |
fatal("PEM_write_EC_PUBKEY failed"); |
|
|
if (!PEM_write_RSAPublicKey(stdout, k->rsa)) |
if (!PEM_write_RSAPublicKey(stdout, k->rsa)) |
fatal("PEM_write_RSAPublicKey failed"); |
fatal("PEM_write_RSAPublicKey failed"); |
break; |
break; |
|
#ifdef WITH_DSA |
case KEY_DSA: |
case KEY_DSA: |
if (!PEM_write_DSA_PUBKEY(stdout, k->dsa)) |
if (!PEM_write_DSA_PUBKEY(stdout, k->dsa)) |
fatal("PEM_write_DSA_PUBKEY failed"); |
fatal("PEM_write_DSA_PUBKEY failed"); |
break; |
break; |
|
#endif |
case KEY_ECDSA: |
case KEY_ECDSA: |
if (!PEM_write_EC_PUBKEY(stdout, k->ecdsa)) |
if (!PEM_write_EC_PUBKEY(stdout, k->ecdsa)) |
fatal("PEM_write_EC_PUBKEY failed"); |
fatal("PEM_write_EC_PUBKEY failed"); |
|
|
u_int magic, i1, i2, i3, i4; |
u_int magic, i1, i2, i3, i4; |
size_t slen; |
size_t slen; |
u_long e; |
u_long e; |
|
#ifdef WITH_DSA |
BIGNUM *dsa_p = NULL, *dsa_q = NULL, *dsa_g = NULL; |
BIGNUM *dsa_p = NULL, *dsa_q = NULL, *dsa_g = NULL; |
BIGNUM *dsa_pub_key = NULL, *dsa_priv_key = NULL; |
BIGNUM *dsa_pub_key = NULL, *dsa_priv_key = NULL; |
|
#endif |
BIGNUM *rsa_n = NULL, *rsa_e = NULL, *rsa_d = NULL; |
BIGNUM *rsa_n = NULL, *rsa_e = NULL, *rsa_d = NULL; |
BIGNUM *rsa_p = NULL, *rsa_q = NULL, *rsa_iqmp = NULL; |
BIGNUM *rsa_p = NULL, *rsa_q = NULL, *rsa_iqmp = NULL; |
|
|
|
|
} |
} |
free(cipher); |
free(cipher); |
|
|
if (strstr(type, "dsa")) { |
if (strstr(type, "rsa")) { |
ktype = KEY_DSA; |
|
} else if (strstr(type, "rsa")) { |
|
ktype = KEY_RSA; |
ktype = KEY_RSA; |
|
#ifdef WITH_DSA |
|
} else if (strstr(type, "dsa")) { |
|
ktype = KEY_DSA; |
|
#endif |
} else { |
} else { |
free(type); |
free(type); |
return NULL; |
return NULL; |
|
|
free(type); |
free(type); |
|
|
switch (key->type) { |
switch (key->type) { |
|
#ifdef WITH_DSA |
case KEY_DSA: |
case KEY_DSA: |
if ((dsa_p = BN_new()) == NULL || |
if ((dsa_p = BN_new()) == NULL || |
(dsa_q = BN_new()) == NULL || |
(dsa_q = BN_new()) == NULL || |
|
|
fatal_f("DSA_set0_key failed"); |
fatal_f("DSA_set0_key failed"); |
dsa_pub_key = dsa_priv_key = NULL; /* transferred */ |
dsa_pub_key = dsa_priv_key = NULL; /* transferred */ |
break; |
break; |
|
#endif |
case KEY_RSA: |
case KEY_RSA: |
if ((r = sshbuf_get_u8(b, &e1)) != 0 || |
if ((r = sshbuf_get_u8(b, &e1)) != 0 || |
(e1 < 30 && (r = sshbuf_get_u8(b, &e2)) != 0) || |
(e1 < 30 && (r = sshbuf_get_u8(b, &e2)) != 0) || |
|
|
(*k)->type = KEY_RSA; |
(*k)->type = KEY_RSA; |
(*k)->rsa = EVP_PKEY_get1_RSA(pubkey); |
(*k)->rsa = EVP_PKEY_get1_RSA(pubkey); |
break; |
break; |
|
#ifdef WITH_DSA |
case EVP_PKEY_DSA: |
case EVP_PKEY_DSA: |
if ((*k = sshkey_new(KEY_UNSPEC)) == NULL) |
if ((*k = sshkey_new(KEY_UNSPEC)) == NULL) |
fatal("sshkey_new failed"); |
fatal("sshkey_new failed"); |
(*k)->type = KEY_DSA; |
(*k)->type = KEY_DSA; |
(*k)->dsa = EVP_PKEY_get1_DSA(pubkey); |
(*k)->dsa = EVP_PKEY_get1_DSA(pubkey); |
break; |
break; |
|
#endif |
case EVP_PKEY_EC: |
case EVP_PKEY_EC: |
if ((*k = sshkey_new(KEY_UNSPEC)) == NULL) |
if ((*k = sshkey_new(KEY_UNSPEC)) == NULL) |
fatal("sshkey_new failed"); |
fatal("sshkey_new failed"); |
|
|
fprintf(stdout, "\n"); |
fprintf(stdout, "\n"); |
} else { |
} else { |
switch (k->type) { |
switch (k->type) { |
|
#ifdef WITH_DSA |
case KEY_DSA: |
case KEY_DSA: |
ok = PEM_write_DSAPrivateKey(stdout, k->dsa, NULL, |
ok = PEM_write_DSAPrivateKey(stdout, k->dsa, NULL, |
NULL, 0, NULL, NULL); |
NULL, 0, NULL, NULL); |
break; |
break; |
|
#endif |
case KEY_ECDSA: |
case KEY_ECDSA: |
ok = PEM_write_ECPrivateKey(stdout, k->ecdsa, NULL, |
ok = PEM_write_ECPrivateKey(stdout, k->ecdsa, NULL, |
NULL, 0, NULL, NULL); |
NULL, 0, NULL, NULL); |
|
|
n += do_print_resource_record(pw, |
n += do_print_resource_record(pw, |
_PATH_HOST_RSA_KEY_FILE, rr_hostname, |
_PATH_HOST_RSA_KEY_FILE, rr_hostname, |
print_generic, opts, nopts); |
print_generic, opts, nopts); |
|
#ifdef WITH_DSA |
n += do_print_resource_record(pw, |
n += do_print_resource_record(pw, |
_PATH_HOST_DSA_KEY_FILE, rr_hostname, |
_PATH_HOST_DSA_KEY_FILE, rr_hostname, |
print_generic, opts, nopts); |
print_generic, opts, nopts); |
|
#endif |
n += do_print_resource_record(pw, |
n += do_print_resource_record(pw, |
_PATH_HOST_ECDSA_KEY_FILE, rr_hostname, |
_PATH_HOST_ECDSA_KEY_FILE, rr_hostname, |
print_generic, opts, nopts); |
print_generic, opts, nopts); |