Standard Grant: Nydia Passkey Holder. Chapter 2

June 2025 | Nydia Passkey Holder Progress Report:

Unlocked Milestone Achievements :confetti_ball:

  • Add Ed25519 support. (Chrome/Firefox, Safari)
    • Note: Chrome 137+ has added support for Curve25519 algorithms in the Web Cryptography API, namely Ed25519. So enabling the Experimental Web Platform Features flag for Ed25519 is no longer required, and Nydia now supports Ed25519 natively out of the box for Chrome, as well as for Firefox and Safari.
  • Develop Safari extension with Chrome & Firefox feature parity.
  • Deep-dive into WebAuthn specification and implement support for a broader range of websites. (Chrome/Firefox: {1, 2, 3}, Safari: {1, 2})
    • Note: This fixes the LinkedIn problem mentioned in the first grant work and adds support for Discourse.

Features :dizzy:

The passkey encryption now covers all three major browsers, including Safari :compass:
The code can be found on the secret-testpress branch โ€” merging with the main branch is scheduled for next month.

Improvements and bug fixes :hammer_and_wrench:

  • Use .passkey extension instead of .json for stored credentials in Sia. (Chrome/Firefox)
  • The redesigned injector with forced platform authenticator attachment has proven its solidity during a 2-month test drive and has been added to the Chrome and Firefox repository.
  • Universal background context detection for MV2/MV3. (Chrome/Firefox)
  • Switch from service worker to background page in Safari.
  • Add system theme support for Safari.
  • According to the WebAuthn spec, rpId can be omitted in get operations. Some relying parties leverage this and skip it. Nydia now uses origin fallback for these cases. (Chrome/Firefox, Safari)
  • Fix the nydiaOnboardingDone flag by moving it from the button click to the seed confirmation step. (Chrome/Firefox)

Cleanup :broom:

Links to repos worked on this month:

Goals for the next month:

  • Following the grant timeline, this final month will be dedicated to testing the attestation mechanisms.
  • Fix asynchronous passkey synchronization during counter updates.