aboutsummaryrefslogtreecommitdiffstats
path: root/g10/export.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2021-03-22 07:57:18 +0000
committerNIIBE Yutaka <[email protected]>2021-03-22 07:57:18 +0000
commit1524a942b645d9facbedd9ed4a472e343838b6a1 (patch)
tree9d8c98f413d9da168c5bcd1b9f743f1fa2818f0f /g10/export.c
parentgpg: Fix exporting SSH key. (diff)
downloadgnupg-1524a942b645d9facbedd9ed4a472e343838b6a1.tar.gz
gnupg-1524a942b645d9facbedd9ed4a472e343838b6a1.zip
gpg: Support exporting Ed448 SSH key.
* common/openpgp-oid.c (oid_ed448, openpgp_oidbuf_is_ed448): New. (openpgp_oid_is_ed448): New. * common/util.h (openpgp_oid_is_ed448): New. * g10/export.c (export_one_ssh_key): Support Ed448 key. Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'g10/export.c')
-rw-r--r--g10/export.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/g10/export.c b/g10/export.c
index ac12ccddb..98c4623cf 100644
--- a/g10/export.c
+++ b/g10/export.c
@@ -2195,7 +2195,6 @@ export_one_ssh_key (estream_t fp, PKT_public_key *pk)
gpg_error_t err;
const char *identifier = NULL;
membuf_t mb;
- struct b64state b64_state;
void *blob;
size_t bloblen;
@@ -2245,13 +2244,18 @@ export_one_ssh_key (estream_t fp, PKT_public_key *pk)
break;
case PUBKEY_ALGO_EDDSA:
- if (!openpgp_oid_is_ed25519 (pk->pkey[0]))
- err = gpg_error (GPG_ERR_UNKNOWN_CURVE);
- else
+ if (openpgp_oid_is_ed25519 (pk->pkey[0]))
{
identifier = "ssh-ed25519";
err = key_to_sshblob (&mb, identifier, pk->pkey[1], NULL);
}
+ else if (openpgp_oid_is_ed448 (pk->pkey[0]))
+ {
+ identifier = "ssh-ed448";
+ err = key_to_sshblob (&mb, identifier, pk->pkey[1], NULL);
+ }
+ else
+ err = gpg_error (GPG_ERR_UNKNOWN_CURVE);
break;
case PUBKEY_ALGO_ELGAMAL_E: