@reclaimprotocol/attestor-core 5.0.6 → 5.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,132 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ export declare const protobufPackage = "google.protobuf";
3
+ /**
4
+ * Wrapper message for `double`.
5
+ *
6
+ * The JSON representation for `DoubleValue` is JSON number.
7
+ *
8
+ * Not recommended for use in new APIs, but still useful for legacy APIs and
9
+ * has no plan to be removed.
10
+ */
11
+ export interface DoubleValue {
12
+ /** The double value. */
13
+ value: number;
14
+ }
15
+ /**
16
+ * Wrapper message for `float`.
17
+ *
18
+ * The JSON representation for `FloatValue` is JSON number.
19
+ *
20
+ * Not recommended for use in new APIs, but still useful for legacy APIs and
21
+ * has no plan to be removed.
22
+ */
23
+ export interface FloatValue {
24
+ /** The float value. */
25
+ value: number;
26
+ }
27
+ /**
28
+ * Wrapper message for `int64`.
29
+ *
30
+ * The JSON representation for `Int64Value` is JSON string.
31
+ *
32
+ * Not recommended for use in new APIs, but still useful for legacy APIs and
33
+ * has no plan to be removed.
34
+ */
35
+ export interface Int64Value {
36
+ /** The int64 value. */
37
+ value: bigint;
38
+ }
39
+ /**
40
+ * Wrapper message for `uint64`.
41
+ *
42
+ * The JSON representation for `UInt64Value` is JSON string.
43
+ *
44
+ * Not recommended for use in new APIs, but still useful for legacy APIs and
45
+ * has no plan to be removed.
46
+ */
47
+ export interface UInt64Value {
48
+ /** The uint64 value. */
49
+ value: bigint;
50
+ }
51
+ /**
52
+ * Wrapper message for `int32`.
53
+ *
54
+ * The JSON representation for `Int32Value` is JSON number.
55
+ *
56
+ * Not recommended for use in new APIs, but still useful for legacy APIs and
57
+ * has no plan to be removed.
58
+ */
59
+ export interface Int32Value {
60
+ /** The int32 value. */
61
+ value: number;
62
+ }
63
+ /**
64
+ * Wrapper message for `uint32`.
65
+ *
66
+ * The JSON representation for `UInt32Value` is JSON number.
67
+ *
68
+ * Not recommended for use in new APIs, but still useful for legacy APIs and
69
+ * has no plan to be removed.
70
+ */
71
+ export interface UInt32Value {
72
+ /** The uint32 value. */
73
+ value: number;
74
+ }
75
+ /**
76
+ * Wrapper message for `bool`.
77
+ *
78
+ * The JSON representation for `BoolValue` is JSON `true` and `false`.
79
+ *
80
+ * Not recommended for use in new APIs, but still useful for legacy APIs and
81
+ * has no plan to be removed.
82
+ */
83
+ export interface BoolValue {
84
+ /** The bool value. */
85
+ value: boolean;
86
+ }
87
+ /**
88
+ * Wrapper message for `string`.
89
+ *
90
+ * The JSON representation for `StringValue` is JSON string.
91
+ *
92
+ * Not recommended for use in new APIs, but still useful for legacy APIs and
93
+ * has no plan to be removed.
94
+ */
95
+ export interface StringValue {
96
+ /** The string value. */
97
+ value: string;
98
+ }
99
+ /**
100
+ * Wrapper message for `bytes`.
101
+ *
102
+ * The JSON representation for `BytesValue` is JSON string.
103
+ *
104
+ * Not recommended for use in new APIs, but still useful for legacy APIs and
105
+ * has no plan to be removed.
106
+ */
107
+ export interface BytesValue {
108
+ /** The bytes value. */
109
+ value: Uint8Array;
110
+ }
111
+ export declare const DoubleValue: MessageFns<DoubleValue>;
112
+ export declare const FloatValue: MessageFns<FloatValue>;
113
+ export declare const Int64Value: MessageFns<Int64Value>;
114
+ export declare const UInt64Value: MessageFns<UInt64Value>;
115
+ export declare const Int32Value: MessageFns<Int32Value>;
116
+ export declare const UInt32Value: MessageFns<UInt32Value>;
117
+ export declare const BoolValue: MessageFns<BoolValue>;
118
+ export declare const StringValue: MessageFns<StringValue>;
119
+ export declare const BytesValue: MessageFns<BytesValue>;
120
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined;
121
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
122
+ [K in keyof T]?: DeepPartial<T[K]>;
123
+ } : Partial<T>;
124
+ export interface MessageFns<T> {
125
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
126
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
127
+ fromJSON(object: any): T;
128
+ toJSON(message: T): unknown;
129
+ create(base?: DeepPartial<T>): T;
130
+ fromPartial(object: DeepPartial<T>): T;
131
+ }
132
+ export {};
@@ -0,0 +1,144 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ export declare const protobufPackage = "sevsnp";
3
+ /**
4
+ * Report represents an SEV-SNP ATTESTATION_REPORT, specified in SEV SNP API
5
+ * documentation https://www.amd.com/system/files/TechDocs/56860.pdf
6
+ */
7
+ export interface Report {
8
+ /** Should be 2 for revision 1.55, and 3 for revision 1.56 */
9
+ version: number;
10
+ guestSvn: number;
11
+ policy: bigint;
12
+ /** Should be 16 bytes long */
13
+ familyId: Uint8Array;
14
+ /** Should be 16 bytes long */
15
+ imageId: Uint8Array;
16
+ vmpl: number;
17
+ signatureAlgo: number;
18
+ currentTcb: bigint;
19
+ platformInfo: bigint;
20
+ /** AuthorKeyEn, MaskChipKey, SigningKey */
21
+ signerInfo: number;
22
+ /** Should be 64 bytes long */
23
+ reportData: Uint8Array;
24
+ /** Should be 48 bytes long */
25
+ measurement: Uint8Array;
26
+ /** Should be 32 bytes long */
27
+ hostData: Uint8Array;
28
+ /** Should be 48 bytes long */
29
+ idKeyDigest: Uint8Array;
30
+ /** Should be 48 bytes long */
31
+ authorKeyDigest: Uint8Array;
32
+ /** Should be 32 bytes long */
33
+ reportId: Uint8Array;
34
+ /** Should be 32 bytes long */
35
+ reportIdMa: Uint8Array;
36
+ reportedTcb: bigint;
37
+ /** Should be 64 bytes long */
38
+ chipId: Uint8Array;
39
+ committedTcb: bigint;
40
+ /**
41
+ * Each build, minor, major triple should be packed together in a uint32
42
+ * packed together at 7:0, 15:8, 23:16 respectively
43
+ */
44
+ currentBuild: number;
45
+ currentMinor: number;
46
+ currentMajor: number;
47
+ committedBuild: number;
48
+ committedMinor: number;
49
+ committedMajor: number;
50
+ launchTcb: bigint;
51
+ /** Should be 512 bytes long */
52
+ signature: Uint8Array;
53
+ /** The cpuid(1).eax & 0x0fff0fff representation of family/model/stepping */
54
+ cpuid1eaxFms: number;
55
+ launchMitVector: bigint;
56
+ currentMitVector: bigint;
57
+ }
58
+ export interface CertificateChain {
59
+ /**
60
+ * The versioned chip endorsement key's certificate for the
61
+ * key that signed this report.
62
+ */
63
+ vcekCert: Uint8Array;
64
+ /**
65
+ * The versioned loaded endorsement key's certificate for the
66
+ * key that signed this report.
67
+ */
68
+ vlekCert: Uint8Array;
69
+ /** The AMD SEV or AMD SEV-VLEK certificate that signed the V?EK cert. */
70
+ askCert: Uint8Array;
71
+ /** The AMD Root key certificate (signs the ASK cert). */
72
+ arkCert: Uint8Array;
73
+ /**
74
+ * A certificate the host may inject to endorse the measurement of the
75
+ * firmware.
76
+ *
77
+ * @deprecated
78
+ */
79
+ firmwareCert: Uint8Array;
80
+ /** Non-standard certificates the host may inject. */
81
+ extras: {
82
+ [key: string]: Uint8Array;
83
+ };
84
+ }
85
+ export interface CertificateChain_ExtrasEntry {
86
+ key: string;
87
+ value: Uint8Array;
88
+ }
89
+ /**
90
+ * The CPUID[EAX=1] version information includes product info as described in
91
+ * the AMD KDS specification. The product name, model, and stepping values are
92
+ * important for determining the required parameters to KDS when requesting the
93
+ * endorsement key's certificate.
94
+ */
95
+ export interface SevProduct {
96
+ name: SevProduct_SevProductName;
97
+ /**
98
+ * Must be a 4-bit number
99
+ *
100
+ * @deprecated
101
+ */
102
+ stepping: number;
103
+ machineStepping: number | undefined;
104
+ }
105
+ export declare const SevProduct_SevProductName: {
106
+ readonly SEV_PRODUCT_UNKNOWN: 0;
107
+ readonly SEV_PRODUCT_MILAN: 1;
108
+ readonly SEV_PRODUCT_GENOA: 2;
109
+ readonly SEV_PRODUCT_TURIN: 3;
110
+ readonly UNRECOGNIZED: -1;
111
+ };
112
+ export type SevProduct_SevProductName = typeof SevProduct_SevProductName[keyof typeof SevProduct_SevProductName];
113
+ export declare namespace SevProduct_SevProductName {
114
+ type SEV_PRODUCT_UNKNOWN = typeof SevProduct_SevProductName.SEV_PRODUCT_UNKNOWN;
115
+ type SEV_PRODUCT_MILAN = typeof SevProduct_SevProductName.SEV_PRODUCT_MILAN;
116
+ type SEV_PRODUCT_GENOA = typeof SevProduct_SevProductName.SEV_PRODUCT_GENOA;
117
+ type SEV_PRODUCT_TURIN = typeof SevProduct_SevProductName.SEV_PRODUCT_TURIN;
118
+ type UNRECOGNIZED = typeof SevProduct_SevProductName.UNRECOGNIZED;
119
+ }
120
+ export declare function sevProduct_SevProductNameFromJSON(object: any): SevProduct_SevProductName;
121
+ export declare function sevProduct_SevProductNameToJSON(object: SevProduct_SevProductName): string;
122
+ export interface Attestation {
123
+ report: Report | undefined;
124
+ certificateChain: CertificateChain | undefined;
125
+ product: SevProduct | undefined;
126
+ }
127
+ export declare const Report: MessageFns<Report>;
128
+ export declare const CertificateChain: MessageFns<CertificateChain>;
129
+ export declare const CertificateChain_ExtrasEntry: MessageFns<CertificateChain_ExtrasEntry>;
130
+ export declare const SevProduct: MessageFns<SevProduct>;
131
+ export declare const Attestation: MessageFns<Attestation>;
132
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined;
133
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
134
+ [K in keyof T]?: DeepPartial<T[K]>;
135
+ } : Partial<T>;
136
+ export interface MessageFns<T> {
137
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
138
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
139
+ fromJSON(object: any): T;
140
+ toJSON(message: T): unknown;
141
+ create(base?: DeepPartial<T>): T;
142
+ fromPartial(object: DeepPartial<T>): T;
143
+ }
144
+ export {};
@@ -0,0 +1,288 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ export declare const protobufPackage = "state";
3
+ /** The type of UEFI firmware log. */
4
+ export declare const LogType: {
5
+ readonly LOG_TYPE_UNDEFINED: 0;
6
+ /**
7
+ * LOG_TYPE_TCG2 - The log used by EFI_TCG2_PROTOCOL and defined in the TCG PC Client
8
+ * Platform Firmware Profile Specification
9
+ */
10
+ readonly LOG_TYPE_TCG2: 1;
11
+ /**
12
+ * LOG_TYPE_CC - The log used by EFI_CC_MEASUREMENT_PROTOCOL and defined in the UEFI spec:
13
+ * https://uefi.org/specs/UEFI/2.10/38_Confidential_Computing.html.
14
+ */
15
+ readonly LOG_TYPE_CC: 2;
16
+ readonly UNRECOGNIZED: -1;
17
+ };
18
+ export type LogType = typeof LogType[keyof typeof LogType];
19
+ export declare namespace LogType {
20
+ type LOG_TYPE_UNDEFINED = typeof LogType.LOG_TYPE_UNDEFINED;
21
+ type LOG_TYPE_TCG2 = typeof LogType.LOG_TYPE_TCG2;
22
+ type LOG_TYPE_CC = typeof LogType.LOG_TYPE_CC;
23
+ type UNRECOGNIZED = typeof LogType.UNRECOGNIZED;
24
+ }
25
+ export declare function logTypeFromJSON(object: any): LogType;
26
+ export declare function logTypeToJSON(object: LogType): string;
27
+ /** Type of hardware technology used to protect this instance */
28
+ export declare const GCEConfidentialTechnology: {
29
+ readonly NONE: 0;
30
+ readonly AMD_SEV: 1;
31
+ readonly AMD_SEV_ES: 2;
32
+ readonly INTEL_TDX: 3;
33
+ readonly AMD_SEV_SNP: 4;
34
+ readonly UNRECOGNIZED: -1;
35
+ };
36
+ export type GCEConfidentialTechnology = typeof GCEConfidentialTechnology[keyof typeof GCEConfidentialTechnology];
37
+ export declare namespace GCEConfidentialTechnology {
38
+ type NONE = typeof GCEConfidentialTechnology.NONE;
39
+ type AMD_SEV = typeof GCEConfidentialTechnology.AMD_SEV;
40
+ type AMD_SEV_ES = typeof GCEConfidentialTechnology.AMD_SEV_ES;
41
+ type INTEL_TDX = typeof GCEConfidentialTechnology.INTEL_TDX;
42
+ type AMD_SEV_SNP = typeof GCEConfidentialTechnology.AMD_SEV_SNP;
43
+ type UNRECOGNIZED = typeof GCEConfidentialTechnology.UNRECOGNIZED;
44
+ }
45
+ export declare function gCEConfidentialTechnologyFromJSON(object: any): GCEConfidentialTechnology;
46
+ export declare function gCEConfidentialTechnologyToJSON(object: GCEConfidentialTechnology): string;
47
+ /** Common, publicly-listed certificates by different vendors. */
48
+ export declare const WellKnownCertificate: {
49
+ readonly UNKNOWN: 0;
50
+ /**
51
+ * MS_WINDOWS_PROD_PCA_2011 - Microsoft certs:
52
+ * https://go.microsoft.com/fwlink/p/?linkid=321192
53
+ */
54
+ readonly MS_WINDOWS_PROD_PCA_2011: 1;
55
+ /** MS_THIRD_PARTY_UEFI_CA_2011 - https://go.microsoft.com/fwlink/p/?linkid=321194 */
56
+ readonly MS_THIRD_PARTY_UEFI_CA_2011: 2;
57
+ /** MS_THIRD_PARTY_KEK_CA_2011 - https://go.microsoft.com/fwlink/p/?linkid=321185 */
58
+ readonly MS_THIRD_PARTY_KEK_CA_2011: 3;
59
+ /** GCE_DEFAULT_PK - GCE certs: */
60
+ readonly GCE_DEFAULT_PK: 4;
61
+ readonly UNRECOGNIZED: -1;
62
+ };
63
+ export type WellKnownCertificate = typeof WellKnownCertificate[keyof typeof WellKnownCertificate];
64
+ export declare namespace WellKnownCertificate {
65
+ type UNKNOWN = typeof WellKnownCertificate.UNKNOWN;
66
+ type MS_WINDOWS_PROD_PCA_2011 = typeof WellKnownCertificate.MS_WINDOWS_PROD_PCA_2011;
67
+ type MS_THIRD_PARTY_UEFI_CA_2011 = typeof WellKnownCertificate.MS_THIRD_PARTY_UEFI_CA_2011;
68
+ type MS_THIRD_PARTY_KEK_CA_2011 = typeof WellKnownCertificate.MS_THIRD_PARTY_KEK_CA_2011;
69
+ type GCE_DEFAULT_PK = typeof WellKnownCertificate.GCE_DEFAULT_PK;
70
+ type UNRECOGNIZED = typeof WellKnownCertificate.UNRECOGNIZED;
71
+ }
72
+ export declare function wellKnownCertificateFromJSON(object: any): WellKnownCertificate;
73
+ export declare function wellKnownCertificateToJSON(object: WellKnownCertificate): string;
74
+ /** Enum values come from the TCG Algorithm Registry - v1.27 - Table 3. */
75
+ export declare const HashAlgo: {
76
+ readonly HASH_INVALID: 0;
77
+ readonly SHA1: 4;
78
+ readonly SHA256: 11;
79
+ readonly SHA384: 12;
80
+ readonly SHA512: 13;
81
+ readonly UNRECOGNIZED: -1;
82
+ };
83
+ export type HashAlgo = typeof HashAlgo[keyof typeof HashAlgo];
84
+ export declare namespace HashAlgo {
85
+ type HASH_INVALID = typeof HashAlgo.HASH_INVALID;
86
+ type SHA1 = typeof HashAlgo.SHA1;
87
+ type SHA256 = typeof HashAlgo.SHA256;
88
+ type SHA384 = typeof HashAlgo.SHA384;
89
+ type SHA512 = typeof HashAlgo.SHA512;
90
+ type UNRECOGNIZED = typeof HashAlgo.UNRECOGNIZED;
91
+ }
92
+ export declare function hashAlgoFromJSON(object: any): HashAlgo;
93
+ export declare function hashAlgoToJSON(object: HashAlgo): string;
94
+ /**
95
+ * Information uniquely identifying a GCE instance. Can be used to create an
96
+ * instance URL, which can then be used with GCE APIs. Formatted like:
97
+ * https://www.googleapis.com/compute/v1/projects/{project_id}/zones/{zone}/instances/{instance_name}
98
+ */
99
+ export interface GCEInstanceInfo {
100
+ zone: string;
101
+ projectId: string;
102
+ projectNumber: bigint;
103
+ instanceName: string;
104
+ instanceId: bigint;
105
+ }
106
+ /** The platform/firmware state for this instance */
107
+ export interface PlatformState {
108
+ /** Raw S-CRTM version identifier (EV_S_CRTM_VERSION) */
109
+ scrtmVersionId?: Uint8Array | undefined;
110
+ /** Virtual GCE firmware version (parsed from S-CRTM version id) */
111
+ gceVersion?: number | undefined;
112
+ /** Set to NONE on non-GCE instances or non-Confidential Shielded GCE instances */
113
+ technology: GCEConfidentialTechnology;
114
+ /**
115
+ * Only set for GCE instances.
116
+ * Included for backcompat. go-eventlog should NOT set this field.
117
+ */
118
+ instanceInfo: GCEInstanceInfo | undefined;
119
+ }
120
+ export interface GrubFile {
121
+ /** The digest of the file (pulled from the raw event digest). */
122
+ digest: Uint8Array;
123
+ /** The event data. This is not measured, so it is untrusted. */
124
+ untrustedFilename: Uint8Array;
125
+ }
126
+ export interface GrubState {
127
+ /** All GRUB-read and measured files, including grub.cfg. */
128
+ files: GrubFile[];
129
+ /**
130
+ * A list of executed GRUB commands and command lines passed to the kernel
131
+ * and kernel modules.
132
+ */
133
+ commands: string[];
134
+ }
135
+ /**
136
+ * The state of the Linux kernel.
137
+ * At the moment, parsing LinuxKernelState relies on parsing the GrubState.
138
+ * To do so, use ExtractOpts{Loader: GRUB} when calling ParseMachineState.
139
+ */
140
+ export interface LinuxKernelState {
141
+ /** The kernel command line. */
142
+ commandLine: string;
143
+ }
144
+ /**
145
+ * A parsed event from the source firmware event log. This can be from either
146
+ * the firmware TPM event log, the Confidential Computing event log, or any
147
+ * other TCG-like event log used by firmware to record its measurements.
148
+ */
149
+ export interface Event {
150
+ /**
151
+ * The register this event was extended into. Can be PCR, RTMR, etc.
152
+ * Named pcr_index for backcompat reasons.
153
+ */
154
+ pcrIndex: number;
155
+ /**
156
+ * The type of this event. Note that this value is not verified, so it should
157
+ * only be used as a hint during event parsing.
158
+ */
159
+ untrustedType: number;
160
+ /**
161
+ * The raw data associated to this event. The meaning of this data is
162
+ * specific to the type of the event.
163
+ */
164
+ data: Uint8Array;
165
+ /**
166
+ * The event digest actually extended into the TPM. This is often the hash of
167
+ * the data field, but in some cases it may have a type-specific calculation.
168
+ */
169
+ digest: Uint8Array;
170
+ /** This is true if hash(data) == digest. */
171
+ digestVerified: boolean;
172
+ }
173
+ export interface Certificate {
174
+ /** DER representation of the certificate. */
175
+ der?: Uint8Array | undefined;
176
+ wellKnown?: WellKnownCertificate | undefined;
177
+ }
178
+ /**
179
+ * A Secure Boot database containing lists of hashes and certificates,
180
+ * as defined by section 32.4.1 Signature Database in the UEFI spec.
181
+ */
182
+ export interface Database {
183
+ certs: Certificate[];
184
+ hashes: Uint8Array[];
185
+ }
186
+ /** The Secure Boot state for this instance. */
187
+ export interface SecureBootState {
188
+ /** Whether Secure Boot is enabled. */
189
+ enabled: boolean;
190
+ /** The Secure Boot signature (allowed) database. */
191
+ db: Database | undefined;
192
+ /** The Secure Boot revoked signature (forbidden) database. */
193
+ dbx: Database | undefined;
194
+ /**
195
+ * Authority events post-separator. Pre-separator authorities
196
+ * are currently not supported.
197
+ */
198
+ authority: Database | undefined;
199
+ /** The Secure Boot Platform key, used to sign key exchange keys. */
200
+ pk: Database | undefined;
201
+ /** The Secure Boot Key Exchange Keys, used to sign db and dbx updates. */
202
+ kek: Database | undefined;
203
+ }
204
+ export interface EfiApp {
205
+ /**
206
+ * The PE/COFF digest of the EFI application (pulled from the raw event digest).
207
+ * This can also represent digest of the EFI boot/runtime service drivers.
208
+ */
209
+ digest: Uint8Array;
210
+ }
211
+ /**
212
+ * The verified state of EFI Drivers and Applications. Policy usage on this machine state
213
+ * should check the entire set of EFI App digests matches, not a subset.
214
+ */
215
+ export interface EfiState {
216
+ /**
217
+ * UEFI's OS Loader code is required to measure attempts to load and execute
218
+ * UEFI applications.
219
+ * UEFI applications are typically bootloaders such as shim and GRUB.
220
+ * These run and are measured using the UEFI LoadImage() service.
221
+ */
222
+ apps: EfiApp[];
223
+ /**
224
+ * The EFI drivers,
225
+ * obtained from https://trustedcomputinggroup.org/wp-content/uploads/TCG_EFI_Platform_1_22_Final_-v15.pdf#page=22.
226
+ * The EFI Boot Services Drivers from adapter or loaded bydriver in adapter.
227
+ */
228
+ bootServicesDrivers: EfiApp[];
229
+ /** The EFI Runtime Drivers from adapter or loaded bydriver in adapter. */
230
+ runtimeServicesDrivers: EfiApp[];
231
+ }
232
+ /**
233
+ * The verified state of a booted machine, obtained from a UEFI event log.
234
+ * The state is extracted from either EFI_TCG2_PROTOCOL or
235
+ * EFI_CC_MEASUREMENT_PROTOCOL. Both of these follow the TCG-defined format
236
+ * in https://trustedcomputinggroup.org/resource/tcg-efi-protocol-specification/
237
+ * The TCG2-related (TPM) logs are structured using TCG_PCR_EVENT (SHA1 format)
238
+ * or TCG_PCR_EVENT2 (Crypto Agile format).
239
+ * The CC logs are structured using CC_EVENT.
240
+ */
241
+ export interface FirmwareLogState {
242
+ platform: PlatformState | undefined;
243
+ secureBoot: SecureBootState | undefined;
244
+ /**
245
+ * The complete parsed Firmware Event Log, including those events used to
246
+ * create this MachineState.
247
+ */
248
+ rawEvents: Event[];
249
+ /** The hash algorithm used to calculate event digests to verify a log entry. */
250
+ hash: HashAlgo;
251
+ grub: GrubState | undefined;
252
+ linuxKernel: LinuxKernelState | undefined;
253
+ efi: EfiState | undefined;
254
+ logType: LogType;
255
+ }
256
+ /** The verified state of Google measurements on the machine. */
257
+ export interface GMESState {
258
+ bmcFirmware: string;
259
+ bios: string;
260
+ hostKernel: string;
261
+ mbm: string;
262
+ }
263
+ export declare const GCEInstanceInfo: MessageFns<GCEInstanceInfo>;
264
+ export declare const PlatformState: MessageFns<PlatformState>;
265
+ export declare const GrubFile: MessageFns<GrubFile>;
266
+ export declare const GrubState: MessageFns<GrubState>;
267
+ export declare const LinuxKernelState: MessageFns<LinuxKernelState>;
268
+ export declare const Event: MessageFns<Event>;
269
+ export declare const Certificate: MessageFns<Certificate>;
270
+ export declare const Database: MessageFns<Database>;
271
+ export declare const SecureBootState: MessageFns<SecureBootState>;
272
+ export declare const EfiApp: MessageFns<EfiApp>;
273
+ export declare const EfiState: MessageFns<EfiState>;
274
+ export declare const FirmwareLogState: MessageFns<FirmwareLogState>;
275
+ export declare const GMESState: MessageFns<GMESState>;
276
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined;
277
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
278
+ [K in keyof T]?: DeepPartial<T[K]>;
279
+ } : Partial<T>;
280
+ export interface MessageFns<T> {
281
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
282
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
283
+ fromJSON(object: any): T;
284
+ toJSON(message: T): unknown;
285
+ create(base?: DeepPartial<T>): T;
286
+ fromPartial(object: DeepPartial<T>): T;
287
+ }
288
+ export {};