belt-mac

Crates.iobelt-mac
lib.rsbelt-mac
version0.1.0
sourcesrc
created_at2023-03-03 07:25:13.330666
updated_at2023-04-03 22:53:00.559502
descriptionMAC specified by the BelT standard
homepage
repositoryhttps://github.com/RustCrypto/MACs
max_upload_size
id799547
size23,001
Artyom Pavlov (newpavlov)

documentation

https://docs.rs/belt-mac

README

RustCrypto: belt-mac

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

Pure Rust implementation of [belt-mac].

Example

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();

Minimum Supported Rust Version

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.

SemVer Policy

  • All on-by-default features of this library are covered by SemVer
  • MSRV is considered exempt from SemVer as noted above

License

Licensed under either of:

at your option.

Contribution

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.

Commit count: 181

cargo fmt