From 0b45c5a9941094bd4529c3bf5b1cb8ce2584b9a4 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Mon, 22 Mar 2021 16:55:29 +0900 Subject: [PATCH] gpg: Fix exporting SSH key. * g10/export.c (export_one_ssh_key): Finish base 64 encoder before writing out the comment string. Signed-off-by: NIIBE Yutaka --- g10/export.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/g10/export.c b/g10/export.c index d24fd16a4..ac12ccddb 100644 --- a/g10/export.c +++ b/g10/export.c @@ -2267,21 +2267,26 @@ export_one_ssh_key (estream_t fp, PKT_public_key *pk) if (err) goto leave; - err = b64enc_start_es (&b64_state, fp, ""); - if (err) - goto leave; - blob = get_membuf (&mb, &bloblen); if (blob) { + struct b64state b64_state; + es_fprintf (fp, "%s ", identifier); + err = b64enc_start_es (&b64_state, fp, ""); + if (err) + { + xfree (blob); + goto leave; + } + err = b64enc_write (&b64_state, blob, bloblen); + b64enc_finish (&b64_state); + es_fprintf (fp, " openpgp:0x%08lX\n", (ulong)keyid_from_pk (pk, NULL)); xfree (blob); } - b64enc_finish (&b64_state); - leave: xfree (get_membuf (&mb, NULL)); return err;