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}