use auths_core::crypto::said::compute_next_commitment;
use auths_verifier::core::{Attestation, Ed25519PublicKey, Ed25519Signature, ResourceId};
use auths_verifier::types::CanonicalDid;
use ring::rand::SystemRandom;
use ring::signature::{Ed25519KeyPair, KeyPair};
use crate::keri::event::{CesrKey, Event, IcpEvent, KeriSequence, Threshold, VersionString};
use crate::keri::finalize_icp_event;
use crate::keri::types::{Prefix, Said};
pub fn test_inception_event(key_seed: &str) -> Event {
let _ = key_seed;
let rng = SystemRandom::new();
let pkcs8 = Ed25519KeyPair::generate_pkcs8(&rng).unwrap();
let keypair = Ed25519KeyPair::from_pkcs8(pkcs8.as_ref()).unwrap();
let key_encoded = auths_keri::KeriPublicKey::ed25519(keypair.public_key().as_ref())
.expect("ed25519 verkey is 32 bytes")
.to_qb64()
.expect("cesride verkey encode is infallible");
let next_pkcs8 = Ed25519KeyPair::generate_pkcs8(&rng).unwrap();
let next_keypair = Ed25519KeyPair::from_pkcs8(next_pkcs8.as_ref()).unwrap();
let next_commitment = compute_next_commitment(
&auths_keri::KeriPublicKey::ed25519(next_keypair.public_key().as_ref())
.expect("ed25519 verkey is 32 bytes"),
);
let icp = IcpEvent {
v: VersionString::placeholder(),
d: Said::default(),
i: Prefix::default(),
s: KeriSequence::new(0),
kt: Threshold::Simple(1),
k: vec![CesrKey::new_unchecked(key_encoded)],
nt: Threshold::Simple(1),
n: vec![next_commitment],
bt: Threshold::Simple(0),
b: vec![],
c: vec![],
a: vec![],
};
let finalized = finalize_icp_event(icp).expect("fixture event must finalize");
let _ = keypair; Event::Icp(finalized)
}
pub fn test_attestation(device_did: &CanonicalDid, issuer: &str) -> Attestation {
#[allow(clippy::disallowed_methods)] let issuer = CanonicalDid::new_unchecked(issuer);
Attestation {
version: 1,
rid: ResourceId::new("test-rid"),
issuer,
subject: device_did.clone(),
device_public_key: Ed25519PublicKey::from_bytes([0u8; 32]).into(),
identity_signature: Ed25519Signature::empty(),
device_signature: Ed25519Signature::empty(),
revoked_at: None,
expires_at: None,
timestamp: None,
note: None,
payload: None,
commit_sha: None,
commit_message: None,
author: None,
oidc_binding: None,
delegated_by: None,
signer_type: None,
environment_claim: None,
}
}