use crate::models::{Identifier, PurposeKeyAttestation, PurposeKeyAttestationData};
use ockam_vault::{SigningSecretKeyHandle, VerifyingPublicKey};
#[derive(Clone, Debug)]
pub struct CredentialPurposeKey {
subject: Identifier,
key: SigningSecretKeyHandle,
public_key: VerifyingPublicKey,
data: PurposeKeyAttestationData,
attestation: PurposeKeyAttestation,
}
impl CredentialPurposeKey {
pub fn new(
subject: Identifier,
key: SigningSecretKeyHandle,
public_key: VerifyingPublicKey,
data: PurposeKeyAttestationData,
attestation: PurposeKeyAttestation,
) -> Self {
Self {
subject,
key,
public_key,
data,
attestation,
}
}
pub fn subject(&self) -> &Identifier {
&self.subject
}
pub fn key(&self) -> &SigningSecretKeyHandle {
&self.key
}
pub fn public_key(&self) -> &VerifyingPublicKey {
&self.public_key
}
pub fn attestation(&self) -> &PurposeKeyAttestation {
&self.attestation
}
pub fn data(&self) -> &PurposeKeyAttestationData {
&self.data
}
}