parsec_interface/operations/
prepare_key_attestation.rs

1// Copyright 2021 Contributors to the Parsec project.
2// SPDX-License-Identifier: Apache-2.0
3//! # PrepareKeyAttestation operation
4//!
5//! Produce any parameters required for the AttestKey operation
6use derivative::Derivative;
7use zeroize::Zeroizing;
8
9/// Native operation for retrieving key attestation parameters
10#[derive(Debug)]
11#[non_exhaustive]
12pub enum Operation {
13    /// Get parameters for TPM 2.0 ActivateCredential operation
14    ActivateCredential {
15        /// Name of key to be attested
16        attested_key_name: String,
17        /// Name of key to be used for attesting
18        attesting_key_name: Option<String>,
19    },
20}
21
22/// Native result of retrieving key attestation parameters
23#[derive(Derivative)]
24#[derivative(Debug)]
25#[non_exhaustive]
26pub enum Result {
27    /// Parameters for TPM 2.0 ActivateCredential operation
28    ActivateCredential {
29        /// TPM name of key to be attested
30        #[derivative(Debug = "ignore")]
31        name: Zeroizing<Vec<u8>>,
32        /// TPM public key parameters of object to be attested
33        #[derivative(Debug = "ignore")]
34        public: Zeroizing<Vec<u8>>,
35        /// Public part of attesting key
36        #[derivative(Debug = "ignore")]
37        attesting_key_pub: Zeroizing<Vec<u8>>,
38    },
39}