Skip to content

Commit c105931

Browse files
committed
add from_secret_keys for Secret generation for ledger support
1 parent ddfbe11 commit c105931

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/participant.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use core::cell::OnceCell;
88
use core::cmp;
99
use core::hash::Hash;
1010
use core::hash::Hasher;
11+
use ed25519_dalek::SecretKey;
1112
use ed25519_dalek::Signer;
1213
use ed25519_dalek::SigningKey;
1314
use ed25519_dalek::Verifier;
@@ -80,6 +81,15 @@ impl Secret {
8081
}
8182
}
8283

84+
#[must_use]
85+
pub fn from_secret_keys(secret_key_1: &SecretKey, secret_key_2: &SecretKey) -> Self {
86+
Self {
87+
signing_key: SigningKey::from_bytes(secret_key_1),
88+
decryption_key: StaticSecret::from(*secret_key_2),
89+
identity: OnceCell::new(),
90+
}
91+
}
92+
8393
#[inline]
8494
#[must_use]
8595
pub fn signing_key(&self) -> &SigningKey {
@@ -330,6 +340,18 @@ mod tests {
330340
id.verify().expect("verification failed");
331341
}
332342

343+
#[test]
344+
fn from_secret_keys() {
345+
let secret_key_1 = Secret::random(thread_rng());
346+
let secret_key_2 = Secret::random(thread_rng());
347+
let id = Secret::from_secret_keys(
348+
secret_key_1.signing_key().as_bytes(),
349+
secret_key_2.signing_key().as_bytes(),
350+
)
351+
.to_identity();
352+
id.verify().expect("verification failed");
353+
}
354+
333355
#[test]
334356
fn secret_deserialization() {
335357
let secret = Secret::random(thread_rng());

0 commit comments

Comments
 (0)