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}