google-cloud-confidential_computing-v1 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/google/cloud/confidential_computing/v1/confidential_computing/client.rb +6 -1
- data/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/client.rb +6 -1
- data/lib/google/cloud/confidential_computing/v1/version.rb +1 -1
- data/lib/google/cloud/confidentialcomputing/v1/service_pb.rb +6 -1
- data/proto_docs/google/cloud/confidentialcomputing/v1/service.rb +86 -0
- metadata +4 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42039146f14516a23edf4f069c0615b24f78b09b2736739975f86ae8e893d36f
|
4
|
+
data.tar.gz: ca62b162855d6a5e72f9a843222c1e3152af6bbe847455bf4281801820df3fad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f3c8b442a563e8bc0650ec89f89be9c63b2578e811ef55d317689238a7fdbc44baaafb26797c62026a6f42f13a115e53c5849b0d4364ef081d2456829abf568
|
7
|
+
data.tar.gz: d1e1b94eefcccf653ee9986e29fce14b286b0e88d19d72ce79b67a24741a6a59d23eef490e781b89650873bde006b3a8faccfc29c90f5d97cb01327a52dea3b6
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Ruby Client for the Confidential Computing V1 API
|
2
2
|
|
3
|
-
|
3
|
+
Attestation verifier for Confidential Space.
|
4
4
|
|
5
|
-
|
5
|
+
Attestation verifier for Confidential Space.
|
6
6
|
|
7
7
|
https://github.com/googleapis/google-cloud-ruby
|
8
8
|
|
@@ -272,7 +272,7 @@ module Google
|
|
272
272
|
# @param options [::Gapic::CallOptions, ::Hash]
|
273
273
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
274
274
|
#
|
275
|
-
# @overload verify_attestation(challenge: nil, gcp_credentials: nil, tpm_attestation: nil)
|
275
|
+
# @overload verify_attestation(challenge: nil, gcp_credentials: nil, tpm_attestation: nil, confidential_space_info: nil, token_options: nil)
|
276
276
|
# Pass arguments to `verify_attestation` via keyword arguments. Note that at
|
277
277
|
# least one keyword argument is required. To specify no parameters, or to keep all
|
278
278
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
@@ -287,6 +287,11 @@ module Google
|
|
287
287
|
# @param tpm_attestation [::Google::Cloud::ConfidentialComputing::V1::TpmAttestation, ::Hash]
|
288
288
|
# Required. The TPM-specific data provided by the attesting platform, used to
|
289
289
|
# populate any of the claims regarding platform state.
|
290
|
+
# @param confidential_space_info [::Google::Cloud::ConfidentialComputing::V1::ConfidentialSpaceInfo, ::Hash]
|
291
|
+
# Optional. Optional information related to the Confidential Space TEE.
|
292
|
+
# @param token_options [::Google::Cloud::ConfidentialComputing::V1::TokenOptions, ::Hash]
|
293
|
+
# Optional. A collection of optional, workload-specified claims that modify
|
294
|
+
# the token output.
|
290
295
|
#
|
291
296
|
# @yield [response, operation] Access the result along with the RPC operation
|
292
297
|
# @yieldparam response [::Google::Cloud::ConfidentialComputing::V1::VerifyAttestationResponse]
|
@@ -241,7 +241,7 @@ module Google
|
|
241
241
|
# @param options [::Gapic::CallOptions, ::Hash]
|
242
242
|
# Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
|
243
243
|
#
|
244
|
-
# @overload verify_attestation(challenge: nil, gcp_credentials: nil, tpm_attestation: nil)
|
244
|
+
# @overload verify_attestation(challenge: nil, gcp_credentials: nil, tpm_attestation: nil, confidential_space_info: nil, token_options: nil)
|
245
245
|
# Pass arguments to `verify_attestation` via keyword arguments. Note that at
|
246
246
|
# least one keyword argument is required. To specify no parameters, or to keep all
|
247
247
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
@@ -256,6 +256,11 @@ module Google
|
|
256
256
|
# @param tpm_attestation [::Google::Cloud::ConfidentialComputing::V1::TpmAttestation, ::Hash]
|
257
257
|
# Required. The TPM-specific data provided by the attesting platform, used to
|
258
258
|
# populate any of the claims regarding platform state.
|
259
|
+
# @param confidential_space_info [::Google::Cloud::ConfidentialComputing::V1::ConfidentialSpaceInfo, ::Hash]
|
260
|
+
# Optional. Optional information related to the Confidential Space TEE.
|
261
|
+
# @param token_options [::Google::Cloud::ConfidentialComputing::V1::TokenOptions, ::Hash]
|
262
|
+
# Optional. A collection of optional, workload-specified claims that modify
|
263
|
+
# the token output.
|
259
264
|
# @yield [result, operation] Access the result along with the TransportOperation object
|
260
265
|
# @yieldparam result [::Google::Cloud::ConfidentialComputing::V1::VerifyAttestationResponse]
|
261
266
|
# @yieldparam operation [::Gapic::Rest::TransportOperation]
|
@@ -11,7 +11,7 @@ require 'google/api/resource_pb'
|
|
11
11
|
require 'google/protobuf/timestamp_pb'
|
12
12
|
|
13
13
|
|
14
|
-
descriptor_data = "\n3google/cloud/confidentialcomputing/v1/service.proto\x12%google.cloud.confidentialcomputing.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa5\x02\n\tChallenge\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04used\x18\x04 \x01(\x08\x42\x03\xe0\x41\x03\x12\x16\n\ttpm_nonce\x18\x06 \x01(\tB\x03\xe0\x41\x03:n\xea\x41k\n.confidentialcomputing.googleapis.com/Challenge\x12\x39projects/{project}/locations/{location}/challenges/{uuid}\"\x9d\x01\n\x16\x43reateChallengeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12H\n\tchallenge\x18\x02 \x01(\x0b\x32\x30.google.cloud.confidentialcomputing.v1.ChallengeB\x03\xe0\x41\x02\"\
|
14
|
+
descriptor_data = "\n3google/cloud/confidentialcomputing/v1/service.proto\x12%google.cloud.confidentialcomputing.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa5\x02\n\tChallenge\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04used\x18\x04 \x01(\x08\x42\x03\xe0\x41\x03\x12\x16\n\ttpm_nonce\x18\x06 \x01(\tB\x03\xe0\x41\x03:n\xea\x41k\n.confidentialcomputing.googleapis.com/Challenge\x12\x39projects/{project}/locations/{location}/challenges/{uuid}\"\x9d\x01\n\x16\x43reateChallengeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12H\n\tchallenge\x18\x02 \x01(\x0b\x32\x30.google.cloud.confidentialcomputing.v1.ChallengeB\x03\xe0\x41\x02\"\xc4\x03\n\x18VerifyAttestationRequest\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12S\n\x0fgcp_credentials\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.GcpCredentialsB\x03\xe0\x41\x01\x12S\n\x0ftpm_attestation\x18\x03 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationB\x03\xe0\x41\x02\x12\x62\n\x17\x63onfidential_space_info\x18\x04 \x01(\x0b\x32<.google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfoB\x03\xe0\x41\x01\x12O\n\rtoken_options\x18\x05 \x01(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.TokenOptionsB\x03\xe0\x41\x01\";\n\x19VerifyAttestationResponse\x12\x1e\n\x11oidc_claims_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\"3\n\x0eGcpCredentials\x12!\n\x19service_account_id_tokens\x18\x02 \x03(\t\"9\n\x0cTokenOptions\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x02 \x03(\tB\x03\xe0\x41\x01\"\x8f\x03\n\x0eTpmAttestation\x12K\n\x06quotes\x18\x01 \x03(\x0b\x32;.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote\x12\x15\n\rtcg_event_log\x18\x02 \x01(\x0c\x12\x1b\n\x13\x63\x61nonical_event_log\x18\x03 \x01(\x0c\x12\x0f\n\x07\x61k_cert\x18\x04 \x01(\x0c\x12\x12\n\ncert_chain\x18\x05 \x03(\x0c\x1a\xd6\x01\n\x05Quote\x12\x11\n\thash_algo\x18\x01 \x01(\x05\x12^\n\npcr_values\x18\x02 \x03(\x0b\x32J.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.PcrValuesEntry\x12\x11\n\traw_quote\x18\x03 \x01(\x0c\x12\x15\n\rraw_signature\x18\x04 \x01(\x0c\x1a\x30\n\x0ePcrValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"j\n\x15\x43onfidentialSpaceInfo\x12Q\n\x0fsigned_entities\x18\x01 \x03(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.SignedEntityB\x03\xe0\x41\x01\"w\n\x0cSignedEntity\x12g\n\x1a\x63ontainer_image_signatures\x18\x01 \x03(\x0b\x32>.google.cloud.confidentialcomputing.v1.ContainerImageSignatureB\x03\xe0\x41\x01\"\xaf\x01\n\x17\x43ontainerImageSignature\x12\x14\n\x07payload\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x16\n\tsignature\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x17\n\npublic_key\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x02\x12M\n\x07sig_alg\x18\x04 \x01(\x0e\x32\x37.google.cloud.confidentialcomputing.v1.SigningAlgorithmB\x03\xe0\x41\x02*\x7f\n\x10SigningAlgorithm\x12!\n\x1dSIGNING_ALGORITHM_UNSPECIFIED\x10\x00\x12\x15\n\x11RSASSA_PSS_SHA256\x10\x01\x12\x1a\n\x16RSASSA_PKCS1V15_SHA256\x10\x02\x12\x15\n\x11\x45\x43\x44SA_P256_SHA256\x10\x03\x32\xb7\x04\n\x15\x43onfidentialComputing\x12\xd8\x01\n\x0f\x43reateChallenge\x12=.google.cloud.confidentialcomputing.v1.CreateChallengeRequest\x1a\x30.google.cloud.confidentialcomputing.v1.Challenge\"T\x82\xd3\xe4\x93\x02;\"./v1/{parent=projects/*/locations/*}/challenges:\tchallenge\xda\x41\x10parent,challenge\x12\xe8\x01\n\x11VerifyAttestation\x12?.google.cloud.confidentialcomputing.v1.VerifyAttestationRequest\x1a@.google.cloud.confidentialcomputing.v1.VerifyAttestationResponse\"P\x82\xd3\xe4\x93\x02J\"E/v1/{challenge=projects/*/locations/*/challenges/*}:verifyAttestation:\x01*\x1aX\xca\x41$confidentialcomputing.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x97\x02\n)com.google.cloud.confidentialcomputing.v1B\x0cServiceProtoP\x01Z_cloud.google.com/go/confidentialcomputing/apiv1/confidentialcomputingpb;confidentialcomputingpb\xaa\x02%Google.Cloud.ConfidentialComputing.V1\xca\x02%Google\\Cloud\\ConfidentialComputing\\V1\xea\x02(Google::Cloud::ConfidentialComputing::V1b\x06proto3"
|
15
15
|
|
16
16
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
17
17
|
|
@@ -47,8 +47,13 @@ module Google
|
|
47
47
|
VerifyAttestationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyAttestationRequest").msgclass
|
48
48
|
VerifyAttestationResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyAttestationResponse").msgclass
|
49
49
|
GcpCredentials = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.GcpCredentials").msgclass
|
50
|
+
TokenOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TokenOptions").msgclass
|
50
51
|
TpmAttestation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TpmAttestation").msgclass
|
51
52
|
TpmAttestation::Quote = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TpmAttestation.Quote").msgclass
|
53
|
+
ConfidentialSpaceInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfo").msgclass
|
54
|
+
SignedEntity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.SignedEntity").msgclass
|
55
|
+
ContainerImageSignature = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.ContainerImageSignature").msgclass
|
56
|
+
SigningAlgorithm = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.SigningAlgorithm").enummodule
|
52
57
|
end
|
53
58
|
end
|
54
59
|
end
|
@@ -73,6 +73,13 @@ module Google
|
|
73
73
|
# @return [::Google::Cloud::ConfidentialComputing::V1::TpmAttestation]
|
74
74
|
# Required. The TPM-specific data provided by the attesting platform, used to
|
75
75
|
# populate any of the claims regarding platform state.
|
76
|
+
# @!attribute [rw] confidential_space_info
|
77
|
+
# @return [::Google::Cloud::ConfidentialComputing::V1::ConfidentialSpaceInfo]
|
78
|
+
# Optional. Optional information related to the Confidential Space TEE.
|
79
|
+
# @!attribute [rw] token_options
|
80
|
+
# @return [::Google::Cloud::ConfidentialComputing::V1::TokenOptions]
|
81
|
+
# Optional. A collection of optional, workload-specified claims that modify
|
82
|
+
# the token output.
|
76
83
|
class VerifyAttestationRequest
|
77
84
|
include ::Google::Protobuf::MessageExts
|
78
85
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -98,6 +105,21 @@ module Google
|
|
98
105
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
99
106
|
end
|
100
107
|
|
108
|
+
# Options to modify claims in the token to generate custom-purpose tokens.
|
109
|
+
# @!attribute [rw] audience
|
110
|
+
# @return [::String]
|
111
|
+
# Optional. Optional string to issue the token with a custom audience claim.
|
112
|
+
# Required if one or more nonces are specified.
|
113
|
+
# @!attribute [rw] nonce
|
114
|
+
# @return [::Array<::String>]
|
115
|
+
# Optional. Optional parameter to place one or more nonces in the eat_nonce
|
116
|
+
# claim in the output token. The minimum size for JSON-encoded EATs is 10
|
117
|
+
# bytes and the maximum size is 74 bytes.
|
118
|
+
class TokenOptions
|
119
|
+
include ::Google::Protobuf::MessageExts
|
120
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
121
|
+
end
|
122
|
+
|
101
123
|
# TPM2 data containing everything necessary to validate any platform state
|
102
124
|
# measured into the TPM.
|
103
125
|
# @!attribute [rw] quotes
|
@@ -153,6 +175,70 @@ module Google
|
|
153
175
|
end
|
154
176
|
end
|
155
177
|
end
|
178
|
+
|
179
|
+
# ConfidentialSpaceInfo contains information related to the Confidential Space
|
180
|
+
# TEE.
|
181
|
+
# @!attribute [rw] signed_entities
|
182
|
+
# @return [::Array<::Google::Cloud::ConfidentialComputing::V1::SignedEntity>]
|
183
|
+
# Optional. A list of signed entities containing container image signatures
|
184
|
+
# that can be used for server-side signature verification.
|
185
|
+
class ConfidentialSpaceInfo
|
186
|
+
include ::Google::Protobuf::MessageExts
|
187
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
188
|
+
end
|
189
|
+
|
190
|
+
# SignedEntity represents an OCI image object containing everything necessary
|
191
|
+
# to verify container image signatures.
|
192
|
+
# @!attribute [rw] container_image_signatures
|
193
|
+
# @return [::Array<::Google::Cloud::ConfidentialComputing::V1::ContainerImageSignature>]
|
194
|
+
# Optional. A list of container image signatures attached to an OCI image
|
195
|
+
# object.
|
196
|
+
class SignedEntity
|
197
|
+
include ::Google::Protobuf::MessageExts
|
198
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
199
|
+
end
|
200
|
+
|
201
|
+
# ContainerImageSignature holds necessary metadata to verify a container image
|
202
|
+
# signature.
|
203
|
+
# @!attribute [rw] payload
|
204
|
+
# @return [::String]
|
205
|
+
# Required. The binary signature payload following the SimpleSigning format
|
206
|
+
# https://github.com/sigstore/cosign/blob/main/specs/SIGNATURE_SPEC.md#simple-signing.
|
207
|
+
# This payload includes the container image digest.
|
208
|
+
# @!attribute [rw] signature
|
209
|
+
# @return [::String]
|
210
|
+
# Required. A signature over the payload.
|
211
|
+
# The container image digest is incorporated into the signature as follows:
|
212
|
+
# 1. Generate a SimpleSigning format payload that includes the container
|
213
|
+
# image digest.
|
214
|
+
# 2. Generate a signature over SHA256 digest of the payload.
|
215
|
+
# The signature generation process can be represented as follows:
|
216
|
+
# `Sign(sha256(SimpleSigningPayload(sha256(Image Manifest))))`
|
217
|
+
# @!attribute [rw] public_key
|
218
|
+
# @return [::String]
|
219
|
+
# Required. An associated public key used to verify the signature.
|
220
|
+
# @!attribute [rw] sig_alg
|
221
|
+
# @return [::Google::Cloud::ConfidentialComputing::V1::SigningAlgorithm]
|
222
|
+
# Required. The algorithm used to produce the container image signature.
|
223
|
+
class ContainerImageSignature
|
224
|
+
include ::Google::Protobuf::MessageExts
|
225
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
226
|
+
end
|
227
|
+
|
228
|
+
# SigningAlgorithm enumerates all the supported signing algorithms.
|
229
|
+
module SigningAlgorithm
|
230
|
+
# Unspecified signing algorithm.
|
231
|
+
SIGNING_ALGORITHM_UNSPECIFIED = 0
|
232
|
+
|
233
|
+
# RSASSA-PSS with a SHA256 digest.
|
234
|
+
RSASSA_PSS_SHA256 = 1
|
235
|
+
|
236
|
+
# RSASSA-PKCS1 v1.5 with a SHA256 digest.
|
237
|
+
RSASSA_PKCS1V15_SHA256 = 2
|
238
|
+
|
239
|
+
# ECDSA on the P-256 Curve with a SHA256 digest.
|
240
|
+
ECDSA_P256_SHA256 = 3
|
241
|
+
end
|
156
242
|
end
|
157
243
|
end
|
158
244
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-confidential_computing-v1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gapic-common
|
@@ -176,8 +176,7 @@ dependencies:
|
|
176
176
|
- - "~>"
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: '0.9'
|
179
|
-
description: google-cloud-confidential_computing-v1
|
180
|
-
for the Confidential Computing V1 API. Note that google-cloud-confidential_computing-v1
|
179
|
+
description: Attestation verifier for Confidential Space. Note that google-cloud-confidential_computing-v1
|
181
180
|
is a version-specific client library. For most uses, we recommend installing the
|
182
181
|
main client library google-cloud-confidential_computing instead. See the readme
|
183
182
|
for more details.
|
@@ -235,5 +234,5 @@ requirements: []
|
|
235
234
|
rubygems_version: 3.4.2
|
236
235
|
signing_key:
|
237
236
|
specification_version: 4
|
238
|
-
summary:
|
237
|
+
summary: Attestation verifier for Confidential Space.
|
239
238
|
test_files: []
|