version 1.19, 2000/04/26 20:56:29 |
version 1.25, 2000/05/08 18:23:07 |
|
|
{ |
{ |
char buf[1024]; |
char buf[1024]; |
snprintf(identity_file, sizeof(identity_file), "%s/%s", |
snprintf(identity_file, sizeof(identity_file), "%s/%s", |
pw->pw_dir, SSH_CLIENT_IDENTITY); |
pw->pw_dir, |
|
dsa_mode ? SSH_CLIENT_ID_DSA: SSH_CLIENT_IDENTITY); |
printf("%s (%s): ", prompt, identity_file); |
printf("%s (%s): ", prompt, identity_file); |
fflush(stdout); |
fflush(stdout); |
if (fgets(buf, sizeof(buf), stdin) == NULL) |
if (fgets(buf, sizeof(buf), stdin) == NULL) |
|
|
dump_base64(stdout, blob, len); |
dump_base64(stdout, blob, len); |
fprintf(stdout, SSH_COM_MAGIC_END "\n"); |
fprintf(stdout, SSH_COM_MAGIC_END "\n"); |
key_free(k); |
key_free(k); |
|
xfree(blob); |
exit(0); |
exit(0); |
} |
} |
|
|
|
|
char blob[8096]; |
char blob[8096]; |
char encoded[8096]; |
char encoded[8096]; |
struct stat st; |
struct stat st; |
|
int escaped = 0; |
FILE *fp; |
FILE *fp; |
|
|
if (!have_identity) |
if (!have_identity) |
|
|
} |
} |
encoded[0] = '\0'; |
encoded[0] = '\0'; |
while (fgets(line, sizeof(line), fp)) { |
while (fgets(line, sizeof(line), fp)) { |
|
if (!(p = strchr(line, '\n'))) { |
|
fprintf(stderr, "input line too long.\n"); |
|
exit(1); |
|
} |
|
if (p > line && p[-1] == '\\') |
|
escaped++; |
if (strncmp(line, "----", 4) == 0 || |
if (strncmp(line, "----", 4) == 0 || |
strstr(line, ": ") != NULL) { |
strstr(line, ": ") != NULL) { |
fprintf(stderr, "ignore: %s", line); |
fprintf(stderr, "ignore: %s", line); |
continue; |
continue; |
} |
} |
if (!(p = strchr(line, '\n'))) { |
if (escaped) { |
fprintf(stderr, "input line too long.\n"); |
escaped--; |
exit(1); |
fprintf(stderr, "escaped: %s", line); |
|
continue; |
} |
} |
*p = '\0'; |
*p = '\0'; |
strlcat(encoded, line, sizeof(encoded)); |
strlcat(encoded, line, sizeof(encoded)); |
|
|
if (!key_write(k, stdout)) |
if (!key_write(k, stdout)) |
fprintf(stderr, "key_write failed"); |
fprintf(stderr, "key_write failed"); |
key_free(k); |
key_free(k); |
|
xfree(blob); |
fprintf(stdout, "\n"); |
fprintf(stdout, "\n"); |
exit(0); |
exit(0); |
} |
} |
|
|
void |
void |
usage(void) |
usage(void) |
{ |
{ |
printf("ssh-keygen version %s\n", SSH_VERSION); |
printf("Usage: %s [-lpqxXydc] [-b bits] [-f file] [-C comment] [-N new-pass] [-P pass]\n", __progname); |
printf("Usage: %s [-b bits] [-p] [-c] [-l] [-x] [-X] [-y] [-f file] [-P pass] [-N new-pass] [-C comment]\n", __progname); |
|
exit(1); |
exit(1); |
} |
} |
|
|
|
|
exit(1); |
exit(1); |
} |
} |
|
|
while ((opt = getopt(ac, av, "dqpclxXyb:f:P:N:C:")) != EOF) { |
while ((opt = getopt(ac, av, "dqpclRxXyb:f:P:N:C:")) != EOF) { |
switch (opt) { |
switch (opt) { |
case 'b': |
case 'b': |
bits = atoi(optarg); |
bits = atoi(optarg); |
|
|
|
|
case 'q': |
case 'q': |
quiet = 1; |
quiet = 1; |
|
break; |
|
|
|
case 'R': |
|
if (rsa_alive() == 0) |
|
exit(1); |
|
else |
|
exit(0); |
break; |
break; |
|
|
case 'x': |
case 'x': |