[![ring-badge]][ring] [![cat-cryptography-badge]][cat-cryptography]
使用ring::hmac
创建一个hmac::Signature
,然后验证签名是否正确。
extern crate ring;
use ring::{digest, hmac, rand};
use ring::rand::SecureRandom;
use ring::error::Unspecified;
fn main() -> Result<(), Unspecified> {
let mut key_value = [0u8; 48];
let rng = rand::SystemRandom::new();
rng.fill(&mut key_value)?;
let key = hmac::SigningKey::new(&digest::SHA256, &key_value);
let message = "Legitimate and important message.";
let signature = hmac::sign(&key, message.as_bytes());
hmac::verify_with_own_key(&key, message.as_bytes(), signature.as_ref())?;
Ok(())
}