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 JWE support #113

Closed
lhazlewood opened this issue Apr 13, 2016 · 13 comments
Closed

Initial JWE support #113

lhazlewood opened this issue Apr 13, 2016 · 13 comments
Assignees
Labels
rfc-compliance Required for RFC/spec compliance
Milestone

Comments

@lhazlewood
Copy link
Contributor

Shared key ( dir ) encryption first, more complicated next.

@jaschenk
Copy link

Any timeframe for full JWE support?

Many Thanks,
Jeff

@lhazlewood
Copy link
Contributor Author

Hi Jeff!

That work is being done in the jwe branch. Most of it has been done actually - the current delay is that many of the JWE test vectors are defined in the spec in JWK format, which means.... now we have to support JWK first ;)

So, progress has been good, but we still need to wrap up the JWK and test support to guarantee correct/exact results. If you check out the branch and try it out, feedback is welcome!

Cheers!

@lhazlewood
Copy link
Contributor Author

lhazlewood commented Oct 8, 2016

Test vectors to verify the implementation are here: https://tools.ietf.org/html/rfc7520

@lhazlewood lhazlewood self-assigned this Oct 8, 2016
@Bragolgirith
Copy link

The last commit in the JWE branch seems to have been about a year ago - is it still alive?

@vicente-valls
Copy link

why readme says jwk is supported if it isnt actually ?
JJWT is a Java implementation based on the JWT, JWS, JWE, JWK and JWA RFC specifications.

@lhazlewood
Copy link
Contributor Author

@vicente-valls it says "based on" - it didn't say fully implemented. If you read the README, you'd see that we explicitly indicate that JWE is not yet fully supported:

https://github.com/jwtk/jjwt#currently-unsupported-features

That said, most of the jwe branch is finished, but we still need to fully support JWKs, and this is the only reason why JWE support isn't released. We're working on it, but because this isn't our full-time jobs, it's impossible for us to give a timeline. It'll be done when we can find time between work obligations, family obligations, illnesses, vacations, etc. But it will be completed.

@vicente-valls
Copy link

vicente-valls commented Nov 15, 2017

@lhazlewood tbh, I dont understand whats the meaning of based on something not implemented. Anyway, it is fine, any open source project takes time as most of times it is done on our free time. FYI I use https://github.com/auth0/jwks-rsa-java/tree/9a3edf250e982a64a6fb2f5a6c8cf35eecc1e780

@lhazlewood
Copy link
Contributor Author

lhazlewood commented Nov 15, 2017

@vicente-valls "based on" means that we use those RFCs (and only those RFCs) to build JJWT - we don't use any other sources. But it does not mean that we've fully implemented the entire specification yet.

This is why we have a "currently unsupported features" section in the README to indicate that we don't yet support 100% of the features. We will eventually support them all - it just takes time.

@lhazlewood lhazlewood added the rfc-compliance Required for RFC/spec compliance label Aug 16, 2018
lhazlewood added a commit that referenced this issue Aug 16, 2018
@dbadia
Copy link

dbadia commented Jan 29, 2019

Does 90ade64 provide full JWE support, or is this still a work in progress? Any estimate for a release with JWE support?

@lhazlewood
Copy link
Contributor Author

@dbadia it's still a work in progress - I'd say it's about 90% complete. Unfortunately we can't give time estimates since we're volunteers and work on it when our employment isn't consuming all of our time. :)

@dbadia
Copy link

dbadia commented Jan 30, 2019

@lhazlewood Understood, thanks for the quick reply

lhazlewood added a commit that referenced this issue Jul 13, 2019
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
lhazlewood added a commit that referenced this issue Jul 13, 2019
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
@Mithrandir21
Copy link

Amazing to see progress on this issue. ❤️
Just wanted to show appreciation for the hard work on this! 🙏

@dirkbolte
Copy link

Is there something we can support you with? Any stories/tasks/tests you can delegate?

lhazlewood added a commit that referenced this issue Feb 6, 2020
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
lhazlewood added a commit that referenced this issue Feb 6, 2020
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
lhazlewood added a commit that referenced this issue Feb 6, 2020
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
lhazlewood added a commit that referenced this issue Mar 13, 2020
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
lhazlewood added a commit that referenced this issue Jun 8, 2020
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
lhazlewood added a commit that referenced this issue Jun 12, 2020
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
lhazlewood added a commit that referenced this issue Jul 11, 2020
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
lhazlewood added a commit that referenced this issue Jul 17, 2020
impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
lhazlewood added a commit that referenced this issue Aug 18, 2020
- impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
- KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
- Added JWE EncryptionAlgorithm and supporting interfaces/implementations, and refactored SignatureAlgorithm to be an interface instead of an enum to enable custom algorithms
- NoneSignatureAlgorithm cleanup. Added UnsupportedKeyExceptionTest.
- testing additions, cleanup cont'd
lhazlewood added a commit that referenced this issue Feb 17, 2021
- impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
- KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
- Added JWE EncryptionAlgorithm and supporting interfaces/implementations, and refactored SignatureAlgorithm to be an interface instead of an enum to enable custom algorithms
- NoneSignatureAlgorithm cleanup. Added UnsupportedKeyExceptionTest.
- testing additions, cleanup cont'd
lhazlewood added a commit that referenced this issue Mar 1, 2021
- impl checkpoint: adjusted @SInCE version, added KeyManagementMode concept w/ supporting interfaces
- KeyManagementMode interfaces and implementations are dummy implementations to enable compiling.  Design still needs to be vetted.
- Added JWE EncryptionAlgorithm and supporting interfaces/implementations, and refactored SignatureAlgorithm to be an interface instead of an enum to enable custom algorithms
- NoneSignatureAlgorithm cleanup. Added UnsupportedKeyExceptionTest.
- testing additions, cleanup cont'd
lhazlewood added a commit that referenced this issue Oct 13, 2021
- Added JWE AeadAlgorithm and KeyAlgorithm and supporting interfaces/implementations, and refactored SignatureAlgorithm to be an interface instead of an enum to enable custom algorithms
- NoneSignatureAlgorithm cleanup. Added UnsupportedKeyExceptionTest.
- Added JWK support!
@lhazlewood lhazlewood added this to the 0.12.0 milestone Sep 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rfc-compliance Required for RFC/spec compliance
Projects
None yet
Development

No branches or pull requests

7 participants