Skip to content

Commit 2d0d266

Browse files
committed
upstream: Support writing ED25519 keys in PKCS8 format. GHPR570 from
Josh Brobst OpenBSD-Commit-ID: 4f36019a38074b2929335fbe9cb8d9801e3177af
1 parent c23122c commit 2d0d266

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

sshkey.c

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $OpenBSD: sshkey.c,v 1.157 2025/11/07 06:29:45 tb Exp $ */
1+
/* $OpenBSD: sshkey.c,v 1.158 2025/11/25 01:08:35 djm Exp $ */
22
/*
33
* Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
44
* Copyright (c) 2008 Alexander von Gernler. All rights reserved.
@@ -3311,6 +3311,19 @@ sshkey_private_to_blob_pem_pkcs8(struct sshkey *key, struct sshbuf *buf,
33113311
success = 1;
33123312
}
33133313
break;
3314+
#ifdef OPENSSL_HAS_ED25519
3315+
case KEY_ED25519:
3316+
if (format == SSHKEY_PRIVATE_PEM) {
3317+
r = SSH_ERR_INVALID_FORMAT;
3318+
goto out;
3319+
} else {
3320+
pkey = EVP_PKEY_new_raw_private_key(EVP_PKEY_ED25519,
3321+
NULL, key->ed25519_sk,
3322+
ED25519_SK_SZ - ED25519_PK_SZ);
3323+
success = pkey != NULL;
3324+
}
3325+
break;
3326+
#endif
33143327
default:
33153328
success = 0;
33163329
break;
@@ -3356,9 +3369,11 @@ sshkey_private_to_fileblob(struct sshkey *key, struct sshbuf *blob,
33563369
#ifdef WITH_OPENSSL
33573370
case KEY_ECDSA:
33583371
case KEY_RSA:
3372+
case KEY_ED25519:
33593373
break; /* see below */
3360-
#endif /* WITH_OPENSSL */
3374+
#else /* WITH_OPENSSL */
33613375
case KEY_ED25519:
3376+
#endif /* WITH_OPENSSL */
33623377
case KEY_ED25519_SK:
33633378
#ifdef WITH_OPENSSL
33643379
case KEY_ECDSA_SK:

0 commit comments

Comments
 (0)