version 1.402, 2020/03/06 18:29:14 |
version 1.403, 2020/03/13 03:12:17 |
|
|
struct sshkey **keys; |
struct sshkey **keys; |
size_t nkeys, i; |
size_t nkeys, i; |
int r, ok = -1; |
int r, ok = -1; |
char *fp, *pin, *pass = NULL, *path, *pubpath; |
char *fp, *pin = NULL, *pass = NULL, *path, *pubpath; |
const char *ext; |
const char *ext; |
|
|
if (skprovider == NULL) |
if (skprovider == NULL) |
fatal("Cannot download keys without provider"); |
fatal("Cannot download keys without provider"); |
|
|
pin = read_passphrase("Enter PIN for authenticator: ", RP_ALLOW_STDIN); |
for (i = 0; i < 2; i++) { |
if ((r = sshsk_load_resident(skprovider, device, pin, |
if (i == 1) { |
&keys, &nkeys)) != 0) { |
pin = read_passphrase("Enter PIN for authenticator: ", |
freezero(pin, strlen(pin)); |
RP_ALLOW_STDIN); |
error("Unable to load resident keys: %s", ssh_err(r)); |
} |
return -1; |
if ((r = sshsk_load_resident(skprovider, device, pin, |
|
&keys, &nkeys)) != 0) { |
|
if (i == 0 && r == SSH_ERR_KEY_WRONG_PASSPHRASE) |
|
continue; |
|
freezero(pin, strlen(pin)); |
|
error("Unable to load resident keys: %s", ssh_err(r)); |
|
return -1; |
|
} |
} |
} |
if (nkeys == 0) |
if (nkeys == 0) |
logit("No keys to download"); |
logit("No keys to download"); |