google-cloud-confidential_computing-v1 0.1.0 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 85e488a02bded453a53552c8e6f48604509821a6d8b49d8f580caebb74e9dc24
4
- data.tar.gz: 6dbae5d1f8c324c52956b0b0d497c8cda3d0c36e3a4f1822563389db71322fd1
3
+ metadata.gz: 42039146f14516a23edf4f069c0615b24f78b09b2736739975f86ae8e893d36f
4
+ data.tar.gz: ca62b162855d6a5e72f9a843222c1e3152af6bbe847455bf4281801820df3fad
5
5
  SHA512:
6
- metadata.gz: 70a18319f2dadc2c15990c7c39cf9aaceac62f2d7cafbc6f99b8a6b7acd68be696298652b7919c3936d8cd05415dbf8044ae423357698ddd15300deedb787fd5
7
- data.tar.gz: 12d901762e87a2bdab94853a927ea663309ade64880e1a4d4ac4e7c170083b1246e840077a5068d264e38d814790c3fea2c5f9631300dac4fdac684723e35d2f
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
- API Client library for the Confidential Computing V1 API
3
+ Attestation verifier for Confidential Space.
4
4
 
5
- google-cloud-confidential_computing-v1 is the official client library for the Confidential Computing V1 API.
5
+ Attestation verifier for Confidential Space.
6
6
 
7
7
  https://github.com/googleapis/google-cloud-ruby
8
8
 
@@ -136,7 +136,7 @@ module Google
136
136
  credentials = @config.credentials
137
137
  # Use self-signed JWT if the endpoint is unchanged from default,
138
138
  # but only if the default endpoint does not have a region prefix.
139
- enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
139
+ enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
140
140
  !@config.endpoint.split(".").first.include?("-")
141
141
  credentials ||= Credentials.default scope: @config.scope,
142
142
  enable_self_signed_jwt: enable_self_signed_jwt
@@ -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]
@@ -434,7 +439,9 @@ module Google
434
439
  class Configuration
435
440
  extend ::Gapic::Config
436
441
 
437
- config_attr :endpoint, "confidentialcomputing.googleapis.com", ::String
442
+ DEFAULT_ENDPOINT = "confidentialcomputing.googleapis.com"
443
+
444
+ config_attr :endpoint, DEFAULT_ENDPOINT, ::String
438
445
  config_attr :credentials, nil do |value|
439
446
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
440
447
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -132,7 +132,7 @@ module Google
132
132
  credentials = @config.credentials
133
133
  # Use self-signed JWT if the endpoint is unchanged from default,
134
134
  # but only if the default endpoint does not have a region prefix.
135
- enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
135
+ enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
136
136
  !@config.endpoint.split(".").first.include?("-")
137
137
  credentials ||= Credentials.default scope: @config.scope,
138
138
  enable_self_signed_jwt: enable_self_signed_jwt
@@ -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]
@@ -371,7 +376,9 @@ module Google
371
376
  class Configuration
372
377
  extend ::Gapic::Config
373
378
 
374
- config_attr :endpoint, "confidentialcomputing.googleapis.com", ::String
379
+ DEFAULT_ENDPOINT = "confidentialcomputing.googleapis.com"
380
+
381
+ config_attr :endpoint, DEFAULT_ENDPOINT, ::String
375
382
  config_attr :credentials, nil do |value|
376
383
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
377
384
  allowed.any? { |klass| klass === value }
@@ -59,7 +59,7 @@ module Google
59
59
 
60
60
  verb, uri, query_string_params, body = ServiceStub.transcode_create_challenge_request request_pb
61
61
  query_string_params = if query_string_params.any?
62
- query_string_params.to_h { |p| p.split("=", 2) }
62
+ query_string_params.to_h { |p| p.split "=", 2 }
63
63
  else
64
64
  {}
65
65
  end
@@ -97,7 +97,7 @@ module Google
97
97
 
98
98
  verb, uri, query_string_params, body = ServiceStub.transcode_verify_attestation_request request_pb
99
99
  query_string_params = if query_string_params.any?
100
- query_string_params.to_h { |p| p.split("=", 2) }
100
+ query_string_params.to_h { |p| p.split "=", 2 }
101
101
  else
102
102
  {}
103
103
  end
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module ConfidentialComputing
23
23
  module V1
24
- VERSION = "0.1.0"
24
+ VERSION = "0.3.0"
25
25
  end
26
26
  end
27
27
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/cloud/confidentialcomputing/v1/service.proto
3
4
 
@@ -9,44 +10,32 @@ require 'google/api/field_behavior_pb'
9
10
  require 'google/api/resource_pb'
10
11
  require 'google/protobuf/timestamp_pb'
11
12
 
12
- Google::Protobuf::DescriptorPool.generated_pool.build do
13
- add_file("google/cloud/confidentialcomputing/v1/service.proto", :syntax => :proto3) do
14
- add_message "google.cloud.confidentialcomputing.v1.Challenge" do
15
- optional :name, :string, 1
16
- optional :create_time, :message, 2, "google.protobuf.Timestamp"
17
- optional :expire_time, :message, 3, "google.protobuf.Timestamp"
18
- optional :used, :bool, 4
19
- optional :tpm_nonce, :string, 6
20
- end
21
- add_message "google.cloud.confidentialcomputing.v1.CreateChallengeRequest" do
22
- optional :parent, :string, 1
23
- optional :challenge, :message, 2, "google.cloud.confidentialcomputing.v1.Challenge"
24
- end
25
- add_message "google.cloud.confidentialcomputing.v1.VerifyAttestationRequest" do
26
- optional :challenge, :string, 1
27
- optional :gcp_credentials, :message, 2, "google.cloud.confidentialcomputing.v1.GcpCredentials"
28
- optional :tpm_attestation, :message, 3, "google.cloud.confidentialcomputing.v1.TpmAttestation"
29
- end
30
- add_message "google.cloud.confidentialcomputing.v1.VerifyAttestationResponse" do
31
- optional :oidc_claims_token, :string, 2
32
- end
33
- add_message "google.cloud.confidentialcomputing.v1.GcpCredentials" do
34
- repeated :service_account_id_tokens, :string, 2
35
- end
36
- add_message "google.cloud.confidentialcomputing.v1.TpmAttestation" do
37
- repeated :quotes, :message, 1, "google.cloud.confidentialcomputing.v1.TpmAttestation.Quote"
38
- optional :tcg_event_log, :bytes, 2
39
- optional :canonical_event_log, :bytes, 3
40
- optional :ak_cert, :bytes, 4
41
- repeated :cert_chain, :bytes, 5
42
- end
43
- add_message "google.cloud.confidentialcomputing.v1.TpmAttestation.Quote" do
44
- optional :hash_algo, :int32, 1
45
- map :pcr_values, :int32, :bytes, 2
46
- optional :raw_quote, :bytes, 3
47
- optional :raw_signature, :bytes, 4
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\"\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
+
16
+ pool = Google::Protobuf::DescriptorPool.generated_pool
17
+
18
+ begin
19
+ pool.add_serialized_file(descriptor_data)
20
+ rescue TypeError => e
21
+ # Compatibility code: will be removed in the next major version.
22
+ require 'google/protobuf/descriptor_pb'
23
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
24
+ parsed.clear_dependency
25
+ serialized = parsed.class.encode(parsed)
26
+ file = pool.add_serialized_file(serialized)
27
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
28
+ imports = [
29
+ ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
30
+ ]
31
+ imports.each do |type_name, expected_filename|
32
+ import_file = pool.lookup(type_name).file_descriptor
33
+ if import_file.name != expected_filename
34
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
48
35
  end
49
36
  end
37
+ warn "Each proto file must use a consistent fully-qualified name."
38
+ warn "This will become an error in the next major version."
50
39
  end
51
40
 
52
41
  module Google
@@ -58,8 +47,13 @@ module Google
58
47
  VerifyAttestationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyAttestationRequest").msgclass
59
48
  VerifyAttestationResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyAttestationResponse").msgclass
60
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
61
51
  TpmAttestation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TpmAttestation").msgclass
62
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
63
57
  end
64
58
  end
65
59
  end
@@ -83,7 +83,7 @@ module Google
83
83
  # long-running operation pattern.
84
84
  # @!attribute [rw] new_issue_uri
85
85
  # @return [::String]
86
- # Link to a place that API users can report issues. Example:
86
+ # Link to a *public* URI where users can report issues. Example:
87
87
  # https://issuetracker.google.com/issues/new?component=190865&template=1161103
88
88
  # @!attribute [rw] documentation_uri
89
89
  # @return [::String]
@@ -353,6 +353,15 @@ module Google
353
353
 
354
354
  # Street View Org.
355
355
  STREET_VIEW = 4
356
+
357
+ # Shopping Org.
358
+ SHOPPING = 5
359
+
360
+ # Geo Org.
361
+ GEO = 6
362
+
363
+ # Generative AI - https://developers.generativeai.google
364
+ GENERATIVE_AI = 7
356
365
  end
357
366
 
358
367
  # To where should client libraries be published?
@@ -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
@@ -43,8 +43,12 @@ module Google
43
43
  # if (any.is(Foo.class)) {
44
44
  # foo = any.unpack(Foo.class);
45
45
  # }
46
+ # // or ...
47
+ # if (any.isSameTypeAs(Foo.getDefaultInstance())) {
48
+ # foo = any.unpack(Foo.getDefaultInstance());
49
+ # }
46
50
  #
47
- # Example 3: Pack and unpack a message in Python.
51
+ # Example 3: Pack and unpack a message in Python.
48
52
  #
49
53
  # foo = Foo(...)
50
54
  # any = Any()
@@ -54,7 +58,7 @@ module Google
54
58
  # any.Unpack(foo)
55
59
  # ...
56
60
  #
57
- # Example 4: Pack and unpack a message in Go
61
+ # Example 4: Pack and unpack a message in Go
58
62
  #
59
63
  # foo := &pb.Foo{...}
60
64
  # any, err := anypb.New(foo)
@@ -73,9 +77,8 @@ module Google
73
77
  # in the type URL, for example "foo.bar.com/x/y.z" will yield type
74
78
  # name "y.z".
75
79
  #
76
- #
77
80
  # JSON
78
- #
81
+ # ====
79
82
  # The JSON representation of an `Any` value uses the regular
80
83
  # representation of the deserialized, embedded message, with an
81
84
  # additional field `@type` which contains the type URL. Example:
@@ -69,7 +69,6 @@ module Google
69
69
  # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
70
70
  # .setNanos((int) ((millis % 1000) * 1000000)).build();
71
71
  #
72
- #
73
72
  # Example 5: Compute Timestamp from Java `Instant.now()`.
74
73
  #
75
74
  # Instant now = Instant.now();
@@ -78,7 +77,6 @@ module Google
78
77
  # Timestamp.newBuilder().setSeconds(now.getEpochSecond())
79
78
  # .setNanos(now.getNano()).build();
80
79
  #
81
- #
82
80
  # Example 6: Compute Timestamp from current time in Python.
83
81
  #
84
82
  # timestamp = Timestamp()
@@ -108,7 +106,7 @@ module Google
108
106
  # [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
109
107
  # the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
110
108
  # the Joda Time's [`ISODateTimeFormat.dateTime()`](
111
- # http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
109
+ # http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
112
110
  # ) to obtain a formatter capable of generating timestamps in this format.
113
111
  # @!attribute [rw] seconds
114
112
  # @return [::Integer]
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.1.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-04-27 00:00:00.000000000 Z
11
+ date: 2023-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.18.0
19
+ version: 0.19.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.a
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.18.0
29
+ version: 0.19.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.a
@@ -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 is the official client library
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: API Client library for the Confidential Computing V1 API
237
+ summary: Attestation verifier for Confidential Space.
239
238
  test_files: []