Skip to content

Commit 048f3db

Browse files
feat: [kms] support external-μ in the Digest (#8014)
* feat: add a variable to SingleTenantHsmInstanceCreate to control whether future key portability features will be usable on the instance PiperOrigin-RevId: 897676455 Source-Link: googleapis/googleapis@bc600b8 Source-Link: googleapis/googleapis-gen@85de368 Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLWNsb3VkLWttcy8uT3dsQm90LnlhbWwiLCJoIjoiODVkZTM2ODIxNjUyMDQ1YjM5ZTUyNzlhNDJiYmIzMmZhMjdkYWI4MSJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * feat: support external-μ in the Digest PiperOrigin-RevId: 897686352 Source-Link: googleapis/googleapis@7fbf256 Source-Link: googleapis/googleapis-gen@333010d Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLWNsb3VkLWttcy8uT3dsQm90LnlhbWwiLCJoIjoiMzMzMDEwZGI2ZjQwMDE5MTRiMDEzYWU1NjliMzQxOWViNzdmZDFlMSJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Gabe Pearhill <86282859+pearigee@users.noreply.github.com>
1 parent 5665979 commit 048f3db

6 files changed

Lines changed: 111 additions & 9 deletions

File tree

packages/google-cloud-kms/protos/google/cloud/kms/v1/hsm_management.proto

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,15 @@ message SingleTenantHsmInstance {
307307
// become disabled.
308308
google.protobuf.Timestamp disable_time = 7
309309
[(google.api.field_behavior) = OUTPUT_ONLY];
310+
311+
// Optional. Immutable. Indicates whether key portability is enabled for the
312+
// [SingleTenantHsmInstance][google.cloud.kms.v1.SingleTenantHsmInstance].
313+
// This can only be set at creation time. Key portability features are
314+
// disabled by default and not yet available in GA.
315+
bool key_portability_enabled = 8 [
316+
(google.api.field_behavior) = OPTIONAL,
317+
(google.api.field_behavior) = IMMUTABLE
318+
];
310319
}
311320

312321
// A

packages/google-cloud-kms/protos/google/cloud/kms/v1/resources.proto

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,10 @@ message CryptoKey {
223223
// justification codes.
224224
// https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
225225
// By default, this field is absent, and all justification codes are allowed.
226+
// If the
227+
// `key_access_justifications_policy.allowed_access_reasons`
228+
// is empty (zero allowed justification code), all encrypt, decrypt, and sign
229+
// operations will fail.
226230
KeyAccessJustificationsPolicy key_access_justifications_policy = 17
227231
[(google.api.field_behavior) = OPTIONAL];
228232
}
@@ -1056,13 +1060,17 @@ message ExternalProtectionLevelOptions {
10561060
// [KeyAccessJustificationsPolicy][google.cloud.kms.v1.KeyAccessJustificationsPolicy]
10571061
// specifies zero or more allowed
10581062
// [AccessReason][google.cloud.kms.v1.AccessReason] values for encrypt, decrypt,
1059-
// and sign operations on a [CryptoKey][google.cloud.kms.v1.CryptoKey].
1063+
// and sign operations on a [CryptoKey][google.cloud.kms.v1.CryptoKey] or
1064+
// [KeyAccessJustificationsPolicyConfig][google.cloud.kms.v1.KeyAccessJustificationsPolicyConfig]
1065+
// (the default Key Access Justifications policy).
10601066
message KeyAccessJustificationsPolicy {
10611067
// The list of allowed reasons for access to a
1062-
// [CryptoKey][google.cloud.kms.v1.CryptoKey]. Zero allowed access reasons
1063-
// means all encrypt, decrypt, and sign operations for the
1064-
// [CryptoKey][google.cloud.kms.v1.CryptoKey] associated with this policy will
1065-
// fail.
1068+
// [CryptoKey][google.cloud.kms.v1.CryptoKey]. Note that empty
1069+
// allowed_access_reasons has a different meaning depending on where this
1070+
// message appears. If this is under
1071+
// [KeyAccessJustificationsPolicyConfig][google.cloud.kms.v1.KeyAccessJustificationsPolicyConfig],
1072+
// it means allow-all. If this is under
1073+
// [CryptoKey][google.cloud.kms.v1.CryptoKey], it means deny-all.
10661074
repeated AccessReason allowed_access_reasons = 1;
10671075
}
10681076

packages/google-cloud-kms/protos/google/cloud/kms/v1/service.proto

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2335,6 +2335,12 @@ message Digest {
23352335

23362336
// A message digest produced with the SHA-512 algorithm.
23372337
bytes sha512 = 3;
2338+
2339+
// A message digest produced with SHAKE-256, to be used with ML-DSA
2340+
// external-μ algorithms only. See "message representative" note in
2341+
// section 6.2, algorithm 7 of the FIPS-204 standard:
2342+
// https://doi.org/10.6028/nist.fips.204
2343+
bytes external_mu = 4;
23382344
}
23392345
}
23402346

packages/google-cloud-kms/protos/protos.d.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3193,6 +3193,9 @@ export namespace google {
31933193

31943194
/** SingleTenantHsmInstance disableTime */
31953195
disableTime?: (google.protobuf.ITimestamp|null);
3196+
3197+
/** SingleTenantHsmInstance keyPortabilityEnabled */
3198+
keyPortabilityEnabled?: (boolean|null);
31963199
}
31973200

31983201
/** Represents a SingleTenantHsmInstance. */
@@ -3225,6 +3228,9 @@ export namespace google {
32253228
/** SingleTenantHsmInstance disableTime. */
32263229
public disableTime?: (google.protobuf.ITimestamp|null);
32273230

3231+
/** SingleTenantHsmInstance keyPortabilityEnabled. */
3232+
public keyPortabilityEnabled: boolean;
3233+
32283234
/**
32293235
* Creates a new SingleTenantHsmInstance instance using the specified properties.
32303236
* @param [properties] Properties to set
@@ -14480,6 +14486,9 @@ export namespace google {
1448014486

1448114487
/** Digest sha512 */
1448214488
sha512?: (Uint8Array|Buffer|string|null);
14489+
14490+
/** Digest externalMu */
14491+
externalMu?: (Uint8Array|Buffer|string|null);
1448314492
}
1448414493

1448514494
/** Represents a Digest. */
@@ -14500,8 +14509,11 @@ export namespace google {
1450014509
/** Digest sha512. */
1450114510
public sha512?: (Uint8Array|Buffer|string|null);
1450214511

14512+
/** Digest externalMu. */
14513+
public externalMu?: (Uint8Array|Buffer|string|null);
14514+
1450314515
/** Digest digest. */
14504-
public digest?: ("sha256"|"sha384"|"sha512");
14516+
public digest?: ("sha256"|"sha384"|"sha512"|"externalMu");
1450514517

1450614518
/**
1450714519
* Creates a new Digest instance using the specified properties.

0 commit comments

Comments
 (0)