1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Copyright 2021 Contributors to the Parsec project.
// SPDX-License-Identifier: Apache-2.0
use crate::;
pub use PcrBank;
pub use PcrData;
/// Function that reads all the PCRs in a selection list and returns
/// the result as PCR data.
///
/// # Example
///
/// ```rust
/// # use tss_esapi::{Context, TctiNameConf};
/// # // Create context
/// # let mut context =
/// # Context::new(
/// # TctiNameConf::from_environment_variable().expect("Failed to get TCTI"),
/// # ).expect("Failed to create Context");
/// #
/// use tss_esapi::{
/// interface_types::algorithm::HashingAlgorithm,
/// structures::{PcrSelectionListBuilder, PcrSlot},
/// };
/// // Create PCR selection list with slots in a bank
/// // that is going to be read.
/// let pcr_selection_list = PcrSelectionListBuilder::new()
/// .with_selection(HashingAlgorithm::Sha256,
/// &[
/// PcrSlot::Slot0,
/// PcrSlot::Slot1,
/// PcrSlot::Slot2,
/// PcrSlot::Slot3,
/// PcrSlot::Slot4,
/// PcrSlot::Slot5,
/// PcrSlot::Slot6,
/// PcrSlot::Slot7,
/// PcrSlot::Slot8,
/// PcrSlot::Slot9,
/// PcrSlot::Slot10,
/// PcrSlot::Slot11,
/// PcrSlot::Slot12,
/// PcrSlot::Slot13,
/// PcrSlot::Slot14,
/// PcrSlot::Slot15,
/// PcrSlot::Slot16,
/// PcrSlot::Slot17,
/// PcrSlot::Slot18,
/// PcrSlot::Slot19,
/// PcrSlot::Slot20,
/// PcrSlot::Slot21,
/// ])
/// .build()
/// .expect("Failed to build PcrSelectionList");
/// let _pcr_data = tss_esapi::abstraction::pcr::read_all(&mut context, pcr_selection_list)
/// .expect("pcr::read_all failed");
/// ```