1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

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 <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2021-03-22 16:57:18 +09:00
parent 0b45c5a994
commit 1524a942b6
3 changed files with 37 additions and 4 deletions

View file

@ -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: