Skip to content

Commit bee48a7

Browse files
committed
Add hardcoded tests for compatibility with haskell implementation.
1 parent 8a43590 commit bee48a7

File tree

1 file changed

+30
-0
lines changed
  • mithril-common/src/crypto_helper/cardano

1 file changed

+30
-0
lines changed

mithril-common/src/crypto_helper/cardano/codec.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,33 @@ impl SerDeShelleyFileFormat for Sum6Kes {
8787
const TYPE: &'static str = "KesSigningKey_ed25519_kes_2^6";
8888
const DESCRIPTION: &'static str = "KES Signing Key";
8989
}
90+
91+
#[cfg(all(test))]
92+
mod test {
93+
use super::*;
94+
95+
#[test]
96+
fn compat_with_shelly_format() {
97+
let temp_dir = std::env::temp_dir().join("testing");
98+
fs::create_dir_all(&temp_dir).expect("temp dir creation should not fail");
99+
let sk_dir = temp_dir.join("dummy.skey");
100+
let cbor_string = "590260fe77acdfa56281e4b05198f5136018057a65f425411f0990cac4aca0f2917aa00a3d51e191f6f425d870aca3c6a2a41833621f5729d7bc0e3dfc3ae77d057e5e1253b71def7a54157b9f98973ca3c49edd9f311e5f4b23ac268b56a6ac040c14c6d2217925492e42f00dc89a2a01ff363571df0ca0db5ba37001cee56790cc01cd69c6aa760fca55a65a110305ea3c11da0a27be345a589329a584ebfc499c43c55e8c6db5d9c0b014692533ee78abd7ac1e79f7ec9335c7551d31668369b4d5111db78072f010043e35e5ca7f11acc3c05b26b9c7fe56f02aa41544f00cb7685e87f34c73b617260ade3c7b8d8c4df46693694998f85ad80d2cbab0b575b6ccd65d90574e84368169578bff57f751bc94f7eec5c0d7055ec88891a69545eedbfbd3c5f1b1c1fe09c14099f6b052aa215efdc5cb6cdc84aa810db41dbe8cb7d28f7c4beb75cc53915d3ac75fc9d0bf1c734a46e401e15150c147d013a938b7e07cc4f25a582b914e94783d15896530409b8acbe31ef471de8a1988ac78dfb7510729eff008084885f07df870b65e4f382ca15908e1dcda77384b5c724350de90cec22b1dcbb1cdaed88da08bb4772a82266ec154f5887f89860d0920dba705c45957ef6d93e42f6c9509c966277d368dd0eefa67c8147aa15d40a222f7953a4f34616500b310d00aa1b5b73eb237dc4f76c0c16813d321b2fc5ac97039be25b22509d1201d61f4ccc11cd4ff40fffe39f0e937b4722074d8e073a775d7283b715d46f79ce128e3f1362f35615fa72364d20b6db841193d96e58d9d8e86b516bbd1f05e45b39823a93f6e9f29d9e01acf2c12c072d1c64e0afbbabf6903ef542e".to_string();
101+
102+
let file_format = ShelleyFileFormat {
103+
file_type: Sum6Kes::TYPE.to_string(),
104+
description: Sum6Kes::DESCRIPTION.to_string(),
105+
cbor_hex: cbor_string,
106+
};
107+
108+
let mut file =
109+
fs::File::create(sk_dir.clone()).expect("Unexpected error with file creation.");
110+
let json_str =
111+
serde_json::to_string(&file_format).expect("Unexpected error with serialisation.");
112+
113+
write!(file, "{}", json_str).expect("Unexpected error writing to file.");
114+
115+
let kes_sk = Sum6Kes::from_file(&sk_dir);
116+
117+
assert!(kes_sk.is_ok(), "Failure parsing Shelley file format.");
118+
}
119+
}

0 commit comments

Comments
 (0)