diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2014-12-31 10:00:11 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2014-12-31 10:00:11 +0200 |
commit | 99e2539b2707cc760a796193f99355f116b31733 (patch) | |
tree | f71596a035ee1c761377734d592ef82f0328a965 /src | |
parent | f46b12dba883960c2b51909f362243ccb56fccec (diff) | |
download | gnutls-99e2539b2707cc760a796193f99355f116b31733.tar.gz |
certtool: --pubkey-info will load a public key from stdin
Diffstat (limited to 'src')
-rw-r--r-- | src/certtool.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/certtool.c b/src/certtool.c index e0f47192b5..ce1e11deb8 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -3389,7 +3389,31 @@ void pubkey_info(gnutls_x509_crt_t crt, common_info_st * cinfo) } } else { gnutls_pubkey_deinit(pubkey); - pubkey = load_pubkey(1, cinfo); + pubkey = load_pubkey(0, cinfo); + + if (pubkey == NULL) { /* load from stdin */ + gnutls_datum_t pem; + + pem.data = (void *) fread_file(infile, &size); + pem.size = size; + + ret = gnutls_pubkey_init(&pubkey); + if (ret < 0) { + fprintf(stderr, + "pubkey_init: %s\n", + gnutls_strerror(ret)); + exit(1); + } + + ret = gnutls_pubkey_import(pubkey, &pem, GNUTLS_X509_FMT_PEM); + if (ret < 0) { + fprintf(stderr, + "pubkey_import: %s\n", + gnutls_strerror(ret)); + exit(1); + } + } + } } |