Skip to content

Commit 7a72da0

Browse files
authored
chore(crypto): CRP-2789 Use a fixed length domain separator for IBE message mask (#5028)
1 parent 547a5d7 commit 7a72da0

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

packages/ic-vetkd-utils/src/lib.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,13 @@ impl IBEDomainSep {
369369
match self {
370370
Self::HashToMask => "ic-vetkd-bls12-381-ibe-hash-to-mask".to_owned(),
371371
Self::MaskSeed => "ic-vetkd-bls12-381-ibe-mask-seed".to_owned(),
372-
Self::MaskMsg(len) => format!("ic-vetkd-bls12-381-ibe-mask-msg-{}", len),
372+
// Zero prefix the length up to 20 digits, which is sufficient to be fixed
373+
// length for any 64-bit length. This ensures all of the MaskMsg domain
374+
// separators are of equal length. With how we use the domain separators, this
375+
// padding isn't required - we only need uniquness - but having variable
376+
// length domain separators is generally not considered a good practice and is
377+
// easily avoidable here.
378+
Self::MaskMsg(len) => format!("ic-vetkd-bls12-381-ibe-mask-msg-{:020}", len),
373379
}
374380
}
375381
}

packages/ic-vetkd-utils/tests/tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ fn protocol_flow_with_fixed_rng_has_expected_outputs() {
143143
let ctext_bytes = ctext.serialize();
144144

145145
assert_eq!(hex::encode(&ctext_bytes),
146-
"4943204942450001a9937528bda5826cf5c7da77a5f5e46719a9748f4ea0aa491c8fba92081e5d55457ab36ec4f6335954c6d87987d0b28301bd8da166493bb537c842d20396da5a68cc9e9672fadedf1e311e0057fc906dfd37d1077ca027954c45336405e66e5e4b346b0f24bfd358a09de701654c1e0791741e4826396588440eee021df9b2398f143c");
146+
"4943204942450001a9937528bda5826cf5c7da77a5f5e46719a9748f4ea0aa491c8fba92081e5d55457ab36ec4f6335954c6d87987d0b28301bd8da166493bb537c842d20396da5a68cc9e9672fadedf1e311e0057fc906dfd37d1077ca027954c45336405e66e5e4b346b0f24bfd358a09de701654c1e0791741e4826396588440eee021df9b2399f7f98");
147147

148148
assert_eq!(
149149
ctext,

0 commit comments

Comments
 (0)