use lys_core::attestation::sign_attestation;
use lys_core::keys::Ed25519Identity;
use sha2::{Digest, Sha256};
pub fn payload(path: &str, body: &[u8], at: u64, nonce: &str) -> Vec<u8> {
let digest = hex::encode(Sha256::digest(body));
format!("lys-identity/agent-request/v1\nPOST\n{path}\n{digest}\n{at}\n{nonce}").into_bytes()
}
pub fn header(
key: &Ed25519Identity,
agent: &str,
path: &str,
body: &[u8],
at: u64,
nonce: &str,
) -> String {
let signed = sign_attestation(&payload(path, body, at, nonce), key).to_cose_bytes();
format!("{agent} {at} {nonce} {}", hex::encode(signed))
}
#[cfg(test)]
#[path = "cose_tests.rs"]
mod tests;