Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial support of FIDO2 credential creation #2814

Merged
merged 1 commit into from
Mar 11, 2024

Conversation

sylvainpelissier
Copy link
Contributor

Initial incomplete support of passkeys. The goal is to use the passkey package in gopass-jsonapi.

@sylvainpelissier sylvainpelissier force-pushed the make_passkeys branch 2 times, most recently from 8ea451a to 641d3fc Compare March 3, 2024 17:58
@dominikschulz dominikschulz self-requested a review March 9, 2024 08:08
@dominikschulz dominikschulz added the feature Enhancements and new features label Mar 9, 2024
@dominikschulz
Copy link
Member

This looks great, but I'll need a bit more time for a proper review. I have some knowledge gaps wrt. passkeys that I want to close first.

pkg/passkey/passkey.go Show resolved Hide resolved
pkg/passkey/passkey.go Show resolved Hide resolved
pkg/passkey/passkey.go Outdated Show resolved Hide resolved
pkg/passkey/passkey.go Outdated Show resolved Hide resolved
pkg/passkey/passkey.go Show resolved Hide resolved
dominikschulz
dominikschulz previously approved these changes Mar 10, 2024
Copy link
Member

@dominikschulz dominikschulz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great. Thank you!

pkg/passkey/passkey.go Outdated Show resolved Hide resolved
pkg/passkey/passkey.go Outdated Show resolved Hide resolved
pkg/passkey/passkey.go Outdated Show resolved Hide resolved
pkg/passkey/passkey.go Outdated Show resolved Hide resolved
@AnomalRoil
Copy link
Member

This is a great start!

As mentioned, I think you should tweak it a bit to satisfy Json interfaces instead of using the string type if the client responses and all are meant to be in Json.

Also this is lacking parsing / marshalling / unmarshalling logic for the Credential type, which we'll need if the Credentials are meant to be stored in secrets

pkg/passkey/passkey.go Show resolved Hide resolved
pkg/passkey/passkey.go Show resolved Hide resolved
Signed-off-by: Sylvain Pelissier <sylvain.pelissier@gmail.com>
@AnomalRoil AnomalRoil merged commit 7643fb8 into gopasspw:master Mar 11, 2024
8 checks passed
@sylvainpelissier
Copy link
Contributor Author

This looks great, but I'll need a bit more time for a proper review. I have some knowledge gaps wrt. passkeys that I want to close first.

This may help: https://research.kudelskisecurity.com/2024/03/14/passkeys-under-the-hood/

@dluciv
Copy link

dluciv commented Sep 10, 2024

So is it already available anyhow for end users?

I guess no, because browser plugin does not look to support it right now, but may be I am missing something...

@AnomalRoil
Copy link
Member

@dluciv no, this now requires quite some work still: this is the ground work to satisfy requests, but we still need to implement the CTAP2 protocol to answer browsers' requests using the code added in this PR as I understand the flow for FIDO2 authenticators.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Enhancements and new features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants