diff options
author | Werner Koch <[email protected]> | 2019-03-06 11:40:45 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2019-03-06 11:40:45 +0000 |
commit | 4e1f04a4cd30859507218395e630e886801ae2b7 (patch) | |
tree | ca45115a59bd9cc752d74e9633b750b0093c266c | |
parent | card: Print the keyref also for non-initialized slots. (diff) | |
download | gnupg-4e1f04a4cd30859507218395e630e886801ae2b7.tar.gz gnupg-4e1f04a4cd30859507218395e630e886801ae2b7.zip |
card: Allow PEM encoded certificates in "writecert".
* tools/gpg-card.c (cmd_writecert): Convert from base64.
Signed-off-by: Werner Koch <[email protected]>
-rw-r--r-- | tools/gpg-card.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/gpg-card.c b/tools/gpg-card.c index c9b8380cd..e2d728dab 100644 --- a/tools/gpg-card.c +++ b/tools/gpg-card.c @@ -1647,6 +1647,20 @@ cmd_writecert (card_info_t info, char *argstr) err = get_data_from_file (argstr, &data, &datalen); if (err) goto leave; + if (ascii_memistr (data, datalen, "-----BEGIN CERTIFICATE-----") + && ascii_memistr (data, datalen, "-----END CERTIFICATE-----") + && !memchr (data, 0, datalen) && !memchr (data, 1, datalen)) + { + struct b64state b64; + + err = b64dec_start (&b64, ""); + if (!err) + err = b64dec_proc (&b64, data, datalen, &datalen); + if (!err) + err = b64dec_finish (&b64); + if (err) + goto leave; + } } else { |