1 unstable release
0.1.0 | Dec 29, 2022 |
---|
#15 in #cert
22KB
76 lines
MIM-RS (Minimal Identity Mozaic)
A rusty implementation.
MIM is a Hash Visualization algorithm utilising 4x4 colour matrixes. This provides a quick and easy method to compare fingerprints, e.g. SSH keys, x509 certs etc.
[ Go Implementation ] [ Rust Implementation ]
Properties
- Pre Image Resistant
- Fixed Length Output
- Collision Resistant
- Fast & Efficient
- Identical Colours Cross Platform
Output
MIM outputs coloured ANSI escape codes.
Example
use mim::{Mozaic};
use sha2::{Sha256,Digest};
use hex;
fn main() {
// create the fingerprint in the typical way
let mut hasher = Sha256::new();
hasher.update("certificate contents would typically go here");
let fingerprint = hasher.finalize();
// provide the fingerprint to MIM
let moz = Mozaic::new(&fingerprint);
// print fingerprint
println!("Fingerprint: {}", hex::encode(&fingerprint));
// print Mozaic as ASNI
println!("\n{}", &moz.ansi());
}
Dependencies
~1MB
~14K SLoC