Implement PyNaCl backend for Ed25519 keys (part of RFC 8037) - #100
Conversation
d011c89 to
dd87583CompareCodecov Report
@@ Coverage Diff @@## master #100 +/- ##
==========================================
- Coverage 96.54% 94.68% -1.86%
==========================================
Files 14 14 Lines 1071 1092 +21 ==========================================
Hits 1034 1034 - Misses 37 58 +21
Continue to review full report at Codecov.
|
blag
commented
Jul 7, 2018
Oh, and I forgot to mention: all of the code that I added has 100% test coverage. 👍 |
pohutukawa
commented
Jul 16, 2018
I'd really like to see this land in |
mpdavis
commented
Aug 6, 2018
First, my apologies for taking so long to take a look at this. The only issue I see with this PR is that it introduces a C-based python dependency, which breaks the compatibility with Google App Engine. That said, GAE support has proven to be enough of a pain that I am likely to drop support for it entirely to avoid these complications trying to support further extensions of the JOSE framework. I would like to officially drop support for GAE compatibility before merging this PR. I will see about getting that done. |
mpdavis
commented
Aug 30, 2018
@blag I have successfully talked myself about worrying too much about getting a pure-python route for now. If we get these merge conflicts resolved, I can get this merged and simply cut a |
zejn
commented
Aug 30, 2018
I think that with a few small changes pure-Python can still be usable. And not having to install software you're not using is always a bonus. First the Ed25519Key imports need to be made so they pass on ImportError both in jose/backends/init.py and jose/jwk.py. |
zejn
left a comment
There was a problem hiding this comment.
If you can change this then pynacl will not be a hard requirement.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
pohutukawa
commented
Nov 27, 2018
Are there any insights on whether this branch (after fixing the conflicts of course) will get merged? |
blag
commented
Nov 27, 2018
Sorry, I lost track of this since my last comment. I'll try to implement the suggested changes and fix the merge conflicts once my life calms down a bit, which should be this or next week. |
blag
commented
Nov 27, 2018
I rebased this on This is ready for review. |
pohutukawa
commented
Jan 2, 2019
@mpdavis, there's been a lot of work recently gone into sorting out crypto backend implementation details. Does this PR stand a chance of getting merged somewhere soonish? |
blag
commented
Jan 4, 2019
Mischala
commented
Mar 3, 2019
Any idea when this is likely to go in? |
blag
commented
Mar 29, 2019
mpdavis
commented
Mar 31, 2019
I think it is valid to be frustrated with my level of attention. It makes sense to me to simply accept the offer of help instead of continuing trying to find free time to work on it, only to continue pushing it off. I have sent invites to both @zejn and @blag to collaborate on the project. I do appreciate the offers of help, and I apologize for the frustrating lack of communication on my part. |
pohutukawa
commented
Apr 1, 2019
It would be awesome if development could pick up (again) for this. Especially as it's called |
zejn
commented
Apr 2, 2019
This looks ok to me. |
blag
commented
Apr 3, 2019
In light of pyca/pynacl#507, I'm going to remove our dependence on encoders. I'll push a few more commits to this PR, get somebody to review the additional commits, then merge it. |
d386b77 to
867f8fbCompareblag
commented
Apr 3, 2019
blag
commented
Apr 6, 2019
@mpdavis Thank you for adding me as a collaborator, I very much appreciate it. I've had to make the call to stop maintaining other Python packages, so I understand how weighty of a decision it can be. @zejn Sorry to string you along, but do you mind reviewing this one last time? I removed the reliance on PyNaCl's decoders since they are being removed in pyca/pynacl#507. |
Uh oh!
There was an error while loading. Please reload this page.
blag
commented
Dec 5, 2019
As per this conversation, I'm closing this PR. |
RFC8037 is an extension to JOSE that includes Ed25519 and Ed448 keys.
This PR adds support for Ed25519 keys in a new
naclbackend using the wonderfulPyNaClpackage, and integrates it into the JWK portion of this project.Unfortunately, while Ed448 keys are part of RFC8037, there are no good Python libraries for those keys yet, so support for them was left out. Implementation of that is a good candidate for future work, but will not be considered part of this PR.
This PR should be good to go (assuming it passes CI tests). 😃