forked from google/go-tpm-tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtpm.proto
54 lines (47 loc) · 1.12 KB
/
tpm.proto
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
syntax = "proto3";
package tpm;
option go_package = "github.com/google/go-tpm-tools/proto/tpm";
// Enum values come from TCG Algorithm Registry - v1.27 - Table 3
enum ObjectType {
OBJECT_INVALID = 0x0000;
RSA = 0x0001;
ECC = 0x0023;
}
enum HashAlgo {
HASH_INVALID = 0x0000;
SHA1 = 0x0004;
SHA256 = 0x000B;
SHA384 = 0x000C;
SHA512 = 0x000D;
}
// SealedBytes stores the result of a TPM2_Seal. The private portion (priv) has
// already been encrypted and is no longer sensitive. The hash algorithm is
// assumed to be SHA256.
message SealedBytes {
bytes priv = 1;
bytes pub = 2;
repeated uint32 pcrs = 3;
HashAlgo hash = 4;
ObjectType srk = 5;
PCRs certified_pcrs = 6;
bytes creation_data = 7;
bytes ticket = 8;
}
message ImportBlob {
bytes duplicate = 1;
bytes encrypted_seed = 2;
bytes public_area = 3;
PCRs pcrs = 4;
}
message Quote {
// TPM2 quote, encoded as a TPMS_ATTEST
bytes quote = 1;
// TPM2 signature, encoded as a TPMT_SIGNATURE
bytes raw_sig = 2;
// PCR values of the bank being quoted
PCRs pcrs = 3;
}
message PCRs {
HashAlgo hash = 1;
map<uint32, bytes> pcrs = 2;
}