Skip to content

Implement Passkeys#356

Draft
jejb wants to merge 25 commits intonextcloud:masterfrom
jejb:passkeys-based-on-346
Draft

Implement Passkeys#356
jejb wants to merge 25 commits intonextcloud:masterfrom
jejb:passkeys-based-on-346

Conversation

@jejb
Copy link

@jejb jejb commented Jul 22, 2025

Draft placeholder showing how passkeys can be added to passman using the 1password rust implementation
compiled to webassembly. Currently tested with these sites

https://passkeys-demo.appspot.com/
https://www.passkeys.io/

and as a live site smoke test

https://amazon.com

Due to problems with database modifications for backend support, the passkey is currently stored in the (encrypted) custom fields under a bogus field name. In order to build (for those who would like to try it), this is based of the buildable base of pull #346 so only the top two commits contain passkey code (separated into website and backend)

NiklasSchmitt and others added 25 commits May 1, 2023 16:41
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Removed unexpected property from manifest.json.
Added label for username in search-result.
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Fixed variables & descriptions in translations.
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org>
use the existing wasm passkey implementation from 1password
(passkey-rs) compiled by proton to webassembly as the basis for adding
passkeys to the extension.  This commit adds all the mechanics of
passkeys but no backend storage.  Note that the overriding of
nagivator.credentials.get and .create only works on Firefox.  To get
it to work on Chrome, the manifest version will have to be updated to
v3 so the injector can use world: main to hijack the methods.  When
this happens, the injector will have to have a main and isolated
component that communicate using window events due to the new
restriction on main scripts not being able to use backend APIs.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Since the database theoretically needs expanding for additional
primary fields (which causes versioning issues) just shovel the
passkey into a hidden custom field.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants