-
Notifications
You must be signed in to change notification settings - Fork 115
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
Add support for ephemeral keys in key manager #4888
Conversation
8146848
to
84d35ac
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some early comments on the current draft.
84d35ac
to
f90aa5f
Compare
Codecov Report
@@ Coverage Diff @@
## master #4888 +/- ##
==========================================
- Coverage 66.60% 66.34% -0.27%
==========================================
Files 464 464
Lines 50977 50977
==========================================
- Hits 33954 33820 -134
- Misses 12833 12955 +122
- Partials 4190 4202 +12
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
5c952ac
to
af18566
Compare
go/oasis-test-runner/scenario/e2e/runtime/keymanager_key_generation.go
Outdated
Show resolved
Hide resolved
a50d16b
to
7a6194e
Compare
Given that #4806 has been merged, please rebase on master. |
7a6194e
to
c8713bf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My inner tinfoil hat says that the master secret used to derive ephemeral keys should be distinct and have nothing to do with the master secret used to derive the long term keys.
(And yes, I am aware that the current way of doing things is fine as long as KMAC is.)
c8713bf
to
24c061d
Compare
Should we generate test vectors for the KDF so we don't inadvertently break it? (Since it's deterministic this should be possible) |
Yeah that's a good idea. They should probably be added as Rust unit tests for the KDF. |
6c710da
to
f4cfbf3
Compare
2e028e0
to
d80f77d
Compare
d80f77d
to
4102e8e
Compare
Add API methods like the following:
get_ephemeral_key(epoch, key_pair_id)
get_public_ephemeral_key(epoch, key_pair_id)
Those would derive special ephemeral X25519 key pairs separate from the other runtime keys and where the epoch number is used as part of the derivation, but would only derive them if the epoch was not too far back in the past based on consensus layer state as seen by the key manager. Initially the epoch check may rely on untrusted consensus state provided by the key manager host node.