ed25519 curve on esp32 #228

Open
opened 2025-12-19 14:51:58 +08:00 by Lab-8916100448256 · 11 comments
Lab-8916100448256 commented 2025-12-19 14:51:58 +08:00 (Migrated from github.com)

I'm trying to generate an ed25519-sk key with openssh and an Esp32-S3 that I have flashed with pico-fido and I have this error :

$ ssh-keygen -t ed25519-sk -O resident -O verify-required -O application=ssh:test -O user=test -C "this is a test" -f ~/.ssh/id_ed25519-test
Generating public/private ed25519-sk key pair.
You may need to touch your authenticator to authorize key generation.
Key enrollment failed: requested feature not supported

But it is working fine with ecdsa-sk :

$ ssh-keygen -t ecdsa-sk -O resident -O verify-required -O application=ssh:test -O user=test -C "this is a test" -f ~/.ssh/id_ed25519-test
Generating public/private ecdsa-sk key pair.
You may need to touch your authenticator to authorize key generation.
Enter PIN for authenticator: 
You may need to touch your authenticator again to authorize key generation.
Enter passphrase for "/home/test/.ssh/id_ed25519-test" (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/test/.ssh/id_ed25519-test
Your public key has been saved in /home/test/.ssh/id_ed25519-test.pub
The key fingerprint is:
SHA256:XblLXgsTMd6JQv2wYxFAvc0whiTYAW36qNUsUn8qrJU this is a test
The key's randomart image is:
+-[ECDSA-SK 256]--+
|      .=o+==+.   |
|      . +o..O* . |
|       o  ..*@o  |
|      o  . o=o+  |
|     . *S ..=..  |
|    . +.= .o = . |
|     =E. o  o .  |
|    ..o .        |
|    .. .         |
+----[SHA256]-----+

Is the ed25519 curve available on Esp32 and I'm doing something wrong?
If not, is it planned to add it in the future?

I'm trying to generate an ed25519-sk key with openssh and an Esp32-S3 that I have flashed with pico-fido and I have this error : ```console $ ssh-keygen -t ed25519-sk -O resident -O verify-required -O application=ssh:test -O user=test -C "this is a test" -f ~/.ssh/id_ed25519-test Generating public/private ed25519-sk key pair. You may need to touch your authenticator to authorize key generation. Key enrollment failed: requested feature not supported ``` But it is working fine with ecdsa-sk : ```console $ ssh-keygen -t ecdsa-sk -O resident -O verify-required -O application=ssh:test -O user=test -C "this is a test" -f ~/.ssh/id_ed25519-test Generating public/private ecdsa-sk key pair. You may need to touch your authenticator to authorize key generation. Enter PIN for authenticator: You may need to touch your authenticator again to authorize key generation. Enter passphrase for "/home/test/.ssh/id_ed25519-test" (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/test/.ssh/id_ed25519-test Your public key has been saved in /home/test/.ssh/id_ed25519-test.pub The key fingerprint is: SHA256:XblLXgsTMd6JQv2wYxFAvc0whiTYAW36qNUsUn8qrJU this is a test The key's randomart image is: +-[ECDSA-SK 256]--+ | .=o+==+. | | . +o..O* . | | o ..*@o | | o . o=o+ | | . *S ..=.. | | . +.= .o = . | | =E. o o . | | ..o . | | .. . | +----[SHA256]-----+ ``` Is the ed25519 curve available on Esp32 and I'm doing something wrong? If not, is it planned to add it in the future?
hydroakri commented 2025-12-21 20:46:34 +08:00 (Migrated from github.com)

I have same question. After updating to v7.0, ed25519 is not work on rp2350 anymore

I have same question. After updating to v7.0, ed25519 is not work on rp2350 anymore
Lab-8916100448256 commented 2025-12-21 21:10:27 +08:00 (Migrated from github.com)

I have same question. After updating to v7.0, ed25519 is not work on rp2350 anymore

For RP2350 with v7.0 I thinks it is a different issue, see #215

> I have same question. After updating to v7.0, ed25519 is not work on rp2350 anymore For RP2350 with v7.0 I thinks it is a different issue, see #215
polhenarejos commented 2025-12-21 22:51:21 +08:00 (Migrated from github.com)

By default they ar disabled. They must be explicitely enabled in build time.

By default they ar disabled. They must be explicitely enabled in build time.
wlatendresse commented 2025-12-22 00:38:12 +08:00 (Migrated from github.com)

By default they ar disabled. They must be explicitely enabled in build time.

Although I haven't been able to look at the build process yet, as I'm currently working on other things, I think it would be very useful to output such information at the end of the build process, as a summary of what is included and what is not, in a somewhat verbose manner.

This could significantly reduce the number of questions by users.

> By default they ar disabled. They must be explicitely enabled in build time. Although I haven't been able to look at the build process yet, as I'm currently working on other things, I think it would be very useful to output such information at the end of the build process, as a summary of what is included and what is not, in a somewhat verbose manner. This could significantly reduce the number of questions by users.
polhenarejos commented 2025-12-22 00:40:55 +08:00 (Migrated from github.com)

This is exactly the meaning of the output of CMake:

-- EdDSA support:		 disabled
This is exactly the meaning of the output of CMake: ``` -- EdDSA support: disabled ```
wlatendresse commented 2025-12-22 05:44:13 +08:00 (Migrated from github.com)

This is exactly the meaning of the output of CMake:

-- EdDSA support:		 disabled

In that case some people should try to read before they start to complain.

But as I mentioned before, I myself did not built yet because I am currently busy with other projects.

> This is exactly the meaning of the output of CMake: > > ``` > -- EdDSA support: disabled > ``` In that case some people should try to read before they start to complain. But as I mentioned before, I myself did not built yet because I am currently busy with other projects.
Lab-8916100448256 commented 2025-12-22 17:04:48 +08:00 (Migrated from github.com)

Where is it described how to enable ed25519 when building for ESP32?

Where is it described how to enable ed25519 when building for ESP32?
Lab-8916100448256 commented 2025-12-22 17:18:58 +08:00 (Migrated from github.com)

This is exactly the meaning of the output of CMake:

-- EdDSA support:		 disabled

That message is nowhere to be found in the CMake output when building for ESP32.
The only place where I found it is in pico-keys-sdk/pico_keys_sdk_import.cmake where it is in raspberry pico specific code :

if(NOT ESP_PLATFORM)
    set(NEED_UPDATE OFF)

    option(ENABLE_EDDSA "Enable/disable EdDSA support" OFF)
    if(ENABLE_EDDSA)
        message(STATUS "EdDSA support:\t\t enabled")
    else()
        message(STATUS "EdDSA support:\t\t disabled")
    endif(ENABLE_EDDSA)

> This is exactly the meaning of the output of CMake: > > ``` > -- EdDSA support: disabled > ``` That message is nowhere to be found in the CMake output when building for ESP32. The only place where I found it is in pico-keys-sdk/pico_keys_sdk_import.cmake where it is in raspberry pico specific code : ``` if(NOT ESP_PLATFORM) set(NEED_UPDATE OFF) option(ENABLE_EDDSA "Enable/disable EdDSA support" OFF) if(ENABLE_EDDSA) message(STATUS "EdDSA support:\t\t enabled") else() message(STATUS "EdDSA support:\t\t disabled") endif(ENABLE_EDDSA) ```
polhenarejos commented 2025-12-22 17:23:54 +08:00 (Migrated from github.com)

EdDSA cannot be supported in ESP32 as Espressif uses its own fork.

EdDSA cannot be supported in ESP32 as Espressif uses its own fork.
metabo7000 commented 2025-12-23 02:08:06 +08:00 (Migrated from github.com)

99% of people just want to use a finished product, not mess with codes, 1% understand the content of gibhub! It's not difficult to understand!

99% of people just want to use a finished product, not mess with codes, 1% understand the content of gibhub! It's not difficult to understand!
lockedmutex commented 2026-01-21 00:34:24 +08:00 (Migrated from github.com)

@Lab-8916100448256 https://github.com/librekeys/pico-fido-firmwares/releases/tag/picofido-7.2-1

Pre built firmware with eddsa support. If you need them.

@Lab-8916100448256 https://github.com/librekeys/pico-fido-firmwares/releases/tag/picofido-7.2-1 Pre built firmware with eddsa support. If you need them.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dearsky/pico-fido#228