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:
parent
0b45c5a994
commit
1524a942b6
3 changed files with 37 additions and 4 deletions
12
g10/export.c
12
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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue