Skip to content

Latest commit

 

History

History
29 lines (21 loc) · 885 Bytes

File metadata and controls

29 lines (21 loc) · 885 Bytes

与 HMAC 码,签署并验证消息

[![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(())
}