Crates.io | rs-x11-hash |
lib.rs | rs-x11-hash |
version | 0.1.8 |
source | src |
created_at | 2022-12-19 18:09:35.969947 |
updated_at | 2023-07-05 12:38:39.097491 |
description | Rust bindings for x11 hashing algorithm |
homepage | |
repository | https://github.com/pankcuf/rs-x11-hash |
max_upload_size | |
id | 741444 |
size | 554,280 |
Rust bindings for x11 hash
Performs the x11 hashing algorithm used in the Dash cryptocurrency in JavaScript.
x11 hashing algorithm sequentially uses:
• BLAKE
• BLUE MIDNIGHT WISH (BMW)
• Groestl
• JH
• Keccak (An algorithm whose variant gave rise to SHA-3)
• Skein
• Luffa
• CubeHash
• SHavite-3
• SIMD
• ECHO
C-sources taken from DashSync
Install the library as a Cargo crate.
$ cargo install rs-x11-hash
or use as a dependency in Cargo.toml
[dependencies]
rs-x11-hash = "0.1.5"
Reference the library
use hex::{FromHex, ToHex};
let x11 = "020000002cc0081be5039a54b686d24d5d8747ee9770d9973ec1ace02e5c0500000000008d7139724b11c52995db4370284c998b9114154b120ad3486f1a360a1d4253d310d40e55b8f70a1be8e32300";
let x11_vec = Vec::from_hex(x11).unwrap();
let md = rs_x11_hash::get_x11_hash(x11_vec);
println!("input: {}", x11);
println!("output: {:?}", md.encode_hex::<String>());
assert_eq!(md.to_vec(), Vec::from_hex("f29c0f286fd8071669286c6987eb941181134ff5f3978bf89f34070000000000").unwrap())