Skip to content

Commit c7d1fce

Browse files
committed
WIP
1 parent b00f52c commit c7d1fce

File tree

2 files changed

+20
-21
lines changed

2 files changed

+20
-21
lines changed

crates/mtc_api/src/subtree_cosignature.rs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ use ed25519_dalek::{
88
VerifyingKey as Ed25519VerifyingKey,
99
};
1010
use length_prefixed::WriteLengthPrefixedBytesExt;
11-
use signed_note::{compute_key_id, KeyName, NoteError, NoteSignature, NoteVerifier, SignatureType};
11+
use sha2::{Digest, Sha256};
12+
use signed_note::{KeyName, NoteError, NoteSignature, NoteVerifier};
1213
use tlog_tiles::{CheckpointSigner, CheckpointText, Hash, LeafIndex, UnixTimestamp};
1314

14-
use crate::RelativeOid;
15+
use crate::{RelativeOid, ID_RDNA_TRUSTANCHOR_ID};
1516

1617
pub type TrustAnchorID = RelativeOid;
1718

@@ -21,14 +22,9 @@ pub struct MTCSubtreeCosigner {
2122
}
2223

2324
impl MTCSubtreeCosigner {
24-
pub fn new(
25-
cosigner_id: TrustAnchorID,
26-
log_id: TrustAnchorID,
27-
name: KeyName,
28-
k: Ed25519SigningKey,
29-
) -> Self {
25+
pub fn new(cosigner_id: TrustAnchorID, log_id: TrustAnchorID, k: Ed25519SigningKey) -> Self {
3026
Self {
31-
v: MTCSubtreeNoteVerifier::new(cosigner_id, log_id, name, k.verifying_key()),
27+
v: MTCSubtreeNoteVerifier::new(cosigner_id, log_id, k.verifying_key()),
3228
k,
3329
}
3430
}
@@ -115,18 +111,24 @@ impl MTCSubtreeNoteVerifier {
115111
pub fn new(
116112
cosigner_id: TrustAnchorID,
117113
log_id: TrustAnchorID,
118-
name: KeyName,
119114
verifying_key: Ed25519VerifyingKey,
120115
) -> Self {
116+
let name = KeyName::new(format!(
117+
"oid/{}.{}",
118+
ID_RDNA_TRUSTANCHOR_ID.to_string(),
119+
cosigner_id.to_string()
120+
))
121+
.unwrap();
122+
121123
let id = {
122-
// TODO what signature algorithm to use for mtc-subtree/v1?
123-
let pubkey = [
124-
&[SignatureType::Undefined as u8],
125-
verifying_key.to_bytes().as_slice(),
126-
]
127-
.concat();
128-
compute_key_id(&name, &pubkey)
124+
let mut hasher = Sha256::new();
125+
hasher.update(name.as_str().as_bytes());
126+
hasher.update(&[0x0A, 0xFF]);
127+
hasher.update(b"mtc-subtree/v1");
128+
let result = hasher.finalize();
129+
u32::from_be_bytes(result[0..4].try_into().unwrap())
129130
};
131+
130132
Self {
131133
cosigner_id,
132134
log_id,
@@ -245,11 +247,9 @@ mod tests {
245247
let tree = TreeWithTimestamp::new(tree_size, record_hash(b"hello world"), timestamp);
246248
let signer = {
247249
let sk = Ed25519SigningKey::generate(&mut rng);
248-
let name = KeyName::new("my-signer".into()).unwrap();
249250
MTCSubtreeCosigner::new(
250251
TrustAnchorID::from_str("1.2.3").unwrap(),
251252
TrustAnchorID::from_str("4.5.6").unwrap(),
252-
name,
253253
sk,
254254
)
255255
};

crates/mtc_worker/src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,10 @@ pub(crate) fn load_ed25519_key(
6060
}
6161

6262
pub(crate) fn load_cosigner(env: &Env, name: &str) -> MTCSubtreeCosigner {
63-
let origin = load_origin(name);
6463
let log_id = TrustAnchorID::from_str(&CONFIG.logs[name].log_id).unwrap();
6564
let cosigner_id = TrustAnchorID::from_str(&CONFIG.logs[name].cosigner_id).unwrap();
6665
let signing_key = load_signing_key(env, name).unwrap().clone();
67-
MTCSubtreeCosigner::new(cosigner_id, log_id, origin.clone(), signing_key)
66+
MTCSubtreeCosigner::new(cosigner_id, log_id, signing_key)
6867
}
6968

7069
pub(crate) fn load_origin(name: &str) -> KeyName {

0 commit comments

Comments
 (0)