junobuild-auth 0.4.2

Authentication toolkit for Juno.
Documentation
use crate::delegation::types::{DelegationTargets, SessionKey, Timestamp};
use crate::delegation::utils::targets::targets_to_bytes;
use ic_canister_sig_creation::signature_map::CanisterSigInputs;
use ic_canister_sig_creation::{delegation_signature_msg, DELEGATION_SIG_DOMAIN};

pub fn build_signature_inputs<'a>(seed: &'a [u8], message: &'a [u8]) -> CanisterSigInputs<'a> {
    CanisterSigInputs {
        domain: DELEGATION_SIG_DOMAIN,
        seed,
        message,
    }
}

pub fn build_signature_msg(
    session_key: &SessionKey,
    expiration: Timestamp,
    targets: &Option<DelegationTargets>,
) -> Vec<u8> {
    delegation_signature_msg(session_key, expiration, targets_to_bytes(targets).as_ref())
}