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

EdDSA Algorithm Support #11

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

EdDSA Algorithm Support #11

wants to merge 1 commit into from

Conversation

sundbry
Copy link

@sundbry sundbry commented Oct 17, 2024

Hello @kdubb,

Thank you for maintaining this plugin! This PR adds end to end support for the EdDSA signature algorithm using the ED25519 curve, as specified in RFC 8037. To use it, specify EdDSA as the sig_alg in the config.

Use case: I wanted to use this plugin to manage service account tokens in my cluster. I had a specific requirement that the JWTs use the EdDSA signature algorithm.

Example output:

curl -i http://localhost:8200/v1/jwt/jwks
HTTP/2 200
cache-control: no-store
content-type: application/jwk-set+json
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 294
date: Thu, 17 Oct 2024 22:23:07 GMT

{"keys":[{"use":"sig","kty":"OKP","kid":"_h0PmyOGrVDz_UigcHe8OVD27_o","crv":"Ed25519","alg":"EdDSA","x":"exyyS0587hKfD7tWTZmVj4KykNMnAwGqRckevoM1xm4"},{"use":"sig","kty":"OKP","kid":"dRq7Fm6Z
l8YzIwbiJq26sjlZJis","crv":"Ed25519","alg":"EdDSA","x":"O8WwHreDBmCf7RBr3hirBciavQLUFyJ5jbwJuaf3Ewo"}]}⏎
vault write -f /helium-jwt/sign/admin
Key                Value
---                -----
lease_id           jwt/sign/admin/obise6joPAKqgGZg8HeSBS9L
lease_duration     720h
lease_renewable    false
token              eyJhbGciOiJFZERTQSIsImtpZCI6ImRScTdGbTZabDhZekl3YmlKcTI2c2psWkppcyIsInR5cCI6IkpXVCJ9....

@kdubb
Copy link
Contributor

kdubb commented Oct 18, 2024

@sundbry Thanks for the PR! Glad to have the help. Can you add tests for the new curve? Specifically, test that it can be configured (options separately if possible), that the public key makes it into the advertised public key list, and anything else you see fit.

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.

2 participants