id_to_fp: Support reading from stdin

svn:r8751
This commit is contained in:
Peter Palfrader 2006-10-19 12:52:53 +00:00
parent 3c459a7397
commit e8dae74ccb

View File

@ -13,6 +13,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#define die(s) do { fprintf(stderr, "%s\n", s); goto err; } while (0) #define die(s) do { fprintf(stderr, "%s\n", s); goto err; } while (0)
@ -26,11 +27,24 @@ main(int argc, char **argv)
unsigned char digest[20]; unsigned char digest[20];
int status = 1; int status = 1;
if (argc != 2) if (argc < 2) {
die("I want a filename"); fprintf(stderr, "Reading key from stdin...\n");
if (!(b = BIO_new_fp(stdin, BIO_NOCLOSE)))
die("couldn't read from stdin");
} else if (argc == 2) {
if (strcmp(argv[1], "-h") == 0 ||
strcmp(argv[1], "--help") == 0) {
fprintf(stdout, "Usage: %s [keyfile]\n", argv[0]);
status = 0;
goto err;
} else {
if (!(b = BIO_new_file(argv[1], "r"))) if (!(b = BIO_new_file(argv[1], "r")))
die("couldn't open file"); die("couldn't open file");
}
} else {
fprintf(stderr, "Usage: %s [keyfile]\n", argv[0]);
goto err;
}
if (!(key = PEM_read_bio_RSAPrivateKey(b, NULL, NULL, NULL))) if (!(key = PEM_read_bio_RSAPrivateKey(b, NULL, NULL, NULL)))
die("couldn't parse key"); die("couldn't parse key");