Crates.io | belt-mac |
lib.rs | belt-mac |
version | 0.1.0 |
source | src |
created_at | 2023-03-03 07:25:13.330666 |
updated_at | 2023-04-03 22:53:00.559502 |
description | MAC specified by the BelT standard |
homepage | |
repository | https://github.com/RustCrypto/MACs |
max_upload_size | |
id | 799547 |
size | 23,001 |
Pure Rust implementation of [belt-mac
].
use belt_mac::{BeltMac, Mac};
use hex_literal::hex;
let key = [0x42; 32];
let msg = b"input message";
let expected_tag = hex!("9f5c9623b4eff8802195e81bcd841959");
// To get the authentication code:
let mut mac: BeltMac = BeltMac::new_from_slice(&key).unwrap();
mac.update(msg);
let tag = mac.finalize();
let tag_bytes = tag.into_bytes();
assert_eq!(&tag_bytes[..], &expected_tag[..]);
// To verify the message:
let mut mac: BeltMac = BeltMac::new_from_slice(&key).unwrap();
mac.update(b"input message");
mac.verify(&tag_bytes).unwrap();
Rust 1.57 or higher.
Minimum supported Rust version can be changed in the future, but it will be done with a minor version bump.
Licensed under either of:
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.