-
Notifications
You must be signed in to change notification settings - Fork 35
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
srp: alternate implementation, based on @brndnmtthws changes #81
base: master
Are you sure you want to change the base?
Conversation
This is a backward-incompatible change. For details, refer to: - https://tools.ietf.org/html/rfc2945 - https://tools.ietf.org/html/rfc5054 - http://srp.stanford.edu/design.html - RustCrypto#20 This resolves issue RustCrypto#20.
This implementation removes the use of unsigned integers (which is not anywhere in the spec) and a bunch of un-specified mod operations.
BREAKING CHANGE: Replaces all BigUInt with BigInt and removes the modulo N from each operation. Based on @brndnmtthws changes. Refs: RustCrypto#27 RustCrypto#28 RustCrypto#29
Thanks! I'll try to review this soon. |
As for the mod n, I'm pretty sure this is modular reduction, which is a mathematical shortcut (from what I understand). It's not needed however it speeds up operations, which is why removing it didn't cause issues, just likely slowed down the computations. Other SRP libraries seem to do the same thing, see 1Password/srp#6.
|
|
Therefore, I think it's reasonable for this library to support both implementations. In #79 this would be as simple as adding two methods for computing m1 in https://github.com/jbis9051/PAKEs/blob/master/srp/src/utils.rs. |
Yes, makes sense. I'll see if I can integrate the proof into #79. |
FYI, #79 has been merged, so this needs to be rebased |
This is the continuation of #27 #28 and #29 from @brndnmtthws.
All changes have been rebased on
master
.