junobuild-auth 0.4.1

Authentication toolkit for Juno.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
use crate::state::types::state::Salt;
use base64::engine::general_purpose::URL_SAFE_NO_PAD;
use base64::Engine as _;
use junobuild_shared::ic::api::caller;
use sha2::{Digest, Sha256};

pub fn build_nonce(salt: &Salt) -> String {
    let mut hasher = Sha256::new();
    hasher.update(salt);
    hasher.update(caller().as_slice());
    let hash: [u8; 32] = hasher.finalize().into();
    URL_SAFE_NO_PAD.encode(hash)
}