starfish-sdk 1.0.0

海星SDK
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use anyhow::Result;
use base64::prelude::*;
use ring::hmac;

pub fn hmac_sha256_to_base64<T: AsRef<[u8]>>(key: T, msg: T) -> String {
	let key = hmac::Key::new(hmac::HMAC_SHA256, key.as_ref());
	let signature = hmac::sign(&key, msg.as_ref());
	BASE64_STANDARD.encode(signature.as_ref())
}

pub fn base64_encode<T: AsRef<[u8]>>(msg: T) -> String {
	BASE64_STANDARD.encode(msg)
}

pub fn base64_decode<T: AsRef<[u8]>>(msg: T) -> Result<Vec<u8>> {
	let result = BASE64_STANDARD.decode(msg)?;
	Ok(result)
}