This repository has been archived by the owner on Nov 6, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
svyatonik
added
A3-inprogress ⏳
Pull request is in progress. No review needed at this stage.
M4-core ⛓
Core client code / Rust.
labels
Apr 3, 2017
|
svyatonik
added
A0-pleasereview 🤓
Pull request needs code review.
and removed
A3-inprogress ⏳
Pull request is in progress. No review needed at this stage.
labels
Apr 3, 2017
svyatonik
added
A3-inprogress ⏳
Pull request is in progress. No review needed at this stage.
and removed
A0-pleasereview 🤓
Pull request needs code review.
labels
Apr 3, 2017
svyatonik
added
A0-pleasereview 🤓
Pull request needs code review.
and removed
A3-inprogress ⏳
Pull request is in progress. No review needed at this stage.
labels
Apr 3, 2017
lgtm |
svyatonik
added
A3-inprogress ⏳
Pull request is in progress. No review needed at this stage.
A0-pleasereview 🤓
Pull request needs code review.
and removed
A0-pleasereview 🤓
Pull request needs code review.
A3-inprogress ⏳
Pull request is in progress. No review needed at this stage.
labels
Apr 7, 2017
gavofyork
added
A8-looksgood 🦄
Pull request is reviewed well.
and removed
A0-pleasereview 🤓
Pull request needs code review.
labels
Apr 8, 2017
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On top of #5015
PR outline:
The idea is that every node calculates two parts of SECRET_SHARE, so that SECRET_SHARE = (SECRET_SHARE1 * SECRET_SHARE2) mod n. Then it returns SECRET_SHARE1 to master KeyServer, which uses it to compute result of above expression. SECRET_SHARE2 is encrypted with requestor public key && is also returned to master server, but its value is unknown. So at the end of decryption session, master KS returns next data to requestor:
4.1) partially decrypted secret
4.2) M SECRET_SHARE2 values, encrypted with requestor public key
4.3) COMMON_POINT
Requestor then finally decrypts secret using decrypted(SECRET_SHARE2) values as an input to the same expression as above.
In theory, we can omit calculating expression on KeyServer && just return encrypted SECRET_SHARE to requestor, but in practice expression on KeyServer is slightly different && involves more EC math actions. And I wanted to keep EC math, required on client as simple as possible.
Important note: it is not the last place where secret is revealed on KeyServer, as it is currently generated on the master KeyServer during encryption session.
Also - I have left two decryption session options for now - with revealing secret on KeyServer (as it was working before - GET request to /DOCUMENT/SIGNATURE) && without revealing (GET request of form /shadow/DOCUMENT/SIGNATURE).