autoendpoint/
auth.rs

1use openssl::error::ErrorStack;
2use openssl::hash::MessageDigest;
3use openssl::pkey::PKey;
4use openssl::sign::Signer;
5
6/// Sign some data with a key and return the hex representation
7pub fn sign_with_key(key: &[u8], data: &[u8]) -> Result<String, ErrorStack> {
8    let key = PKey::hmac(key)?;
9    let mut signer = Signer::new(MessageDigest::sha256(), &key)?;
10
11    signer.update(data)?;
12    Ok(hex::encode(signer.sign_to_vec()?))
13}