diff --git a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1.Snippets/KeyManagementServiceClientSnippets.g.cs b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1.Snippets/KeyManagementServiceClientSnippets.g.cs index 6a7cf82f06d2..b66ebc86e5f4 100644 --- a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1.Snippets/KeyManagementServiceClientSnippets.g.cs +++ b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1.Snippets/KeyManagementServiceClientSnippets.g.cs @@ -2157,6 +2157,8 @@ public void EncryptRequestObject() ResourceName = new UnparsedResourceName("a/wildcard/resource"), Plaintext = ByteString.Empty, AdditionalAuthenticatedData = ByteString.Empty, + PlaintextCrc32C = 0L, + AdditionalAuthenticatedDataCrc32C = 0L, }; // Make the request EncryptResponse response = keyManagementServiceClient.Encrypt(request); @@ -2176,6 +2178,8 @@ public async Task EncryptRequestObjectAsync() ResourceName = new UnparsedResourceName("a/wildcard/resource"), Plaintext = ByteString.Empty, AdditionalAuthenticatedData = ByteString.Empty, + PlaintextCrc32C = 0L, + AdditionalAuthenticatedDataCrc32C = 0L, }; // Make the request EncryptResponse response = await keyManagementServiceClient.EncryptAsync(request); @@ -2252,6 +2256,8 @@ public void DecryptRequestObject() CryptoKeyName = CryptoKeyName.FromProjectLocationKeyRingCryptoKey("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]"), Ciphertext = ByteString.Empty, AdditionalAuthenticatedData = ByteString.Empty, + CiphertextCrc32C = 0L, + AdditionalAuthenticatedDataCrc32C = 0L, }; // Make the request DecryptResponse response = keyManagementServiceClient.Decrypt(request); @@ -2271,6 +2277,8 @@ public async Task DecryptRequestObjectAsync() CryptoKeyName = CryptoKeyName.FromProjectLocationKeyRingCryptoKey("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]"), Ciphertext = ByteString.Empty, AdditionalAuthenticatedData = ByteString.Empty, + CiphertextCrc32C = 0L, + AdditionalAuthenticatedDataCrc32C = 0L, }; // Make the request DecryptResponse response = await keyManagementServiceClient.DecryptAsync(request); @@ -2346,6 +2354,7 @@ public void AsymmetricSignRequestObject() { CryptoKeyVersionName = CryptoKeyVersionName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), Digest = new Digest(), + DigestCrc32C = 0L, }; // Make the request AsymmetricSignResponse response = keyManagementServiceClient.AsymmetricSign(request); @@ -2364,6 +2373,7 @@ public async Task AsymmetricSignRequestObjectAsync() { CryptoKeyVersionName = CryptoKeyVersionName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), Digest = new Digest(), + DigestCrc32C = 0L, }; // Make the request AsymmetricSignResponse response = await keyManagementServiceClient.AsymmetricSignAsync(request); @@ -2439,6 +2449,7 @@ public void AsymmetricDecryptRequestObject() { CryptoKeyVersionName = CryptoKeyVersionName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), Ciphertext = ByteString.Empty, + CiphertextCrc32C = 0L, }; // Make the request AsymmetricDecryptResponse response = keyManagementServiceClient.AsymmetricDecrypt(request); @@ -2457,6 +2468,7 @@ public async Task AsymmetricDecryptRequestObjectAsync() { CryptoKeyVersionName = CryptoKeyVersionName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), Ciphertext = ByteString.Empty, + CiphertextCrc32C = 0L, }; // Make the request AsymmetricDecryptResponse response = await keyManagementServiceClient.AsymmetricDecryptAsync(request); diff --git a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1.Tests/KeyManagementServiceClientTest.g.cs b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1.Tests/KeyManagementServiceClientTest.g.cs index f6433598da3b..4535fd656430 100644 --- a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1.Tests/KeyManagementServiceClientTest.g.cs +++ b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1.Tests/KeyManagementServiceClientTest.g.cs @@ -558,6 +558,8 @@ public void GetPublicKeyRequestObject() { Pem = "pemd6ff2189", Algorithm = CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.RsaSignPss4096Sha512, + PemCrc32C = 7888183666447720391L, + PublicKeyName = PublicKeyName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), }; mockGrpcClient.Setup(x => x.GetPublicKey(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -578,6 +580,8 @@ public void GetPublicKeyRequestObject() { Pem = "pemd6ff2189", Algorithm = CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.RsaSignPss4096Sha512, + PemCrc32C = 7888183666447720391L, + PublicKeyName = PublicKeyName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), }; mockGrpcClient.Setup(x => x.GetPublicKeyAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -600,6 +604,8 @@ public void GetPublicKey() { Pem = "pemd6ff2189", Algorithm = CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.RsaSignPss4096Sha512, + PemCrc32C = 7888183666447720391L, + PublicKeyName = PublicKeyName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), }; mockGrpcClient.Setup(x => x.GetPublicKey(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -620,6 +626,8 @@ public void GetPublicKey() { Pem = "pemd6ff2189", Algorithm = CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.RsaSignPss4096Sha512, + PemCrc32C = 7888183666447720391L, + PublicKeyName = PublicKeyName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), }; mockGrpcClient.Setup(x => x.GetPublicKeyAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -642,6 +650,8 @@ public void GetPublicKeyResourceNames() { Pem = "pemd6ff2189", Algorithm = CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.RsaSignPss4096Sha512, + PemCrc32C = 7888183666447720391L, + PublicKeyName = PublicKeyName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), }; mockGrpcClient.Setup(x => x.GetPublicKey(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -662,6 +672,8 @@ public void GetPublicKeyResourceNames() { Pem = "pemd6ff2189", Algorithm = CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.RsaSignPss4096Sha512, + PemCrc32C = 7888183666447720391L, + PublicKeyName = PublicKeyName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), }; mockGrpcClient.Setup(x => x.GetPublicKeyAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -1927,11 +1939,16 @@ public void EncryptRequestObject() ResourceName = new gax::UnparsedResourceName("a/wildcard/resource"), Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), AdditionalAuthenticatedData = proto::ByteString.CopyFromUtf8("additional_authenticated_data3a987f33"), + PlaintextCrc32C = -5108784857370523788L, + AdditionalAuthenticatedDataCrc32C = -8178775638889629022L, }; EncryptResponse expectedResponse = new EncryptResponse { Name = "name1c9368b0", Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), + CiphertextCrc32C = 5835079685918568182L, + VerifiedPlaintextCrc32C = false, + VerifiedAdditionalAuthenticatedDataCrc32C = true, }; mockGrpcClient.Setup(x => x.Encrypt(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -1949,11 +1966,16 @@ public void EncryptRequestObject() ResourceName = new gax::UnparsedResourceName("a/wildcard/resource"), Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), AdditionalAuthenticatedData = proto::ByteString.CopyFromUtf8("additional_authenticated_data3a987f33"), + PlaintextCrc32C = -5108784857370523788L, + AdditionalAuthenticatedDataCrc32C = -8178775638889629022L, }; EncryptResponse expectedResponse = new EncryptResponse { Name = "name1c9368b0", Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), + CiphertextCrc32C = 5835079685918568182L, + VerifiedPlaintextCrc32C = false, + VerifiedAdditionalAuthenticatedDataCrc32C = true, }; mockGrpcClient.Setup(x => x.EncryptAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -1977,6 +1999,9 @@ public void Encrypt() { Name = "name1c9368b0", Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), + CiphertextCrc32C = 5835079685918568182L, + VerifiedPlaintextCrc32C = false, + VerifiedAdditionalAuthenticatedDataCrc32C = true, }; mockGrpcClient.Setup(x => x.Encrypt(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -1998,6 +2023,9 @@ public void Encrypt() { Name = "name1c9368b0", Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), + CiphertextCrc32C = 5835079685918568182L, + VerifiedPlaintextCrc32C = false, + VerifiedAdditionalAuthenticatedDataCrc32C = true, }; mockGrpcClient.Setup(x => x.EncryptAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2021,6 +2049,9 @@ public void EncryptResourceNames() { Name = "name1c9368b0", Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), + CiphertextCrc32C = 5835079685918568182L, + VerifiedPlaintextCrc32C = false, + VerifiedAdditionalAuthenticatedDataCrc32C = true, }; mockGrpcClient.Setup(x => x.Encrypt(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2042,6 +2073,9 @@ public void EncryptResourceNames() { Name = "name1c9368b0", Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), + CiphertextCrc32C = 5835079685918568182L, + VerifiedPlaintextCrc32C = false, + VerifiedAdditionalAuthenticatedDataCrc32C = true, }; mockGrpcClient.Setup(x => x.EncryptAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2061,10 +2095,13 @@ public void DecryptRequestObject() CryptoKeyName = CryptoKeyName.FromProjectLocationKeyRingCryptoKey("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]"), Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), AdditionalAuthenticatedData = proto::ByteString.CopyFromUtf8("additional_authenticated_data3a987f33"), + CiphertextCrc32C = 5835079685918568182L, + AdditionalAuthenticatedDataCrc32C = -8178775638889629022L, }; DecryptResponse expectedResponse = new DecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, }; mockGrpcClient.Setup(x => x.Decrypt(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2082,10 +2119,13 @@ public void DecryptRequestObject() CryptoKeyName = CryptoKeyName.FromProjectLocationKeyRingCryptoKey("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]"), Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), AdditionalAuthenticatedData = proto::ByteString.CopyFromUtf8("additional_authenticated_data3a987f33"), + CiphertextCrc32C = 5835079685918568182L, + AdditionalAuthenticatedDataCrc32C = -8178775638889629022L, }; DecryptResponse expectedResponse = new DecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, }; mockGrpcClient.Setup(x => x.DecryptAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2108,6 +2148,7 @@ public void Decrypt() DecryptResponse expectedResponse = new DecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, }; mockGrpcClient.Setup(x => x.Decrypt(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2128,6 +2169,7 @@ public void Decrypt() DecryptResponse expectedResponse = new DecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, }; mockGrpcClient.Setup(x => x.DecryptAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2150,6 +2192,7 @@ public void DecryptResourceNames() DecryptResponse expectedResponse = new DecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, }; mockGrpcClient.Setup(x => x.Decrypt(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2170,6 +2213,7 @@ public void DecryptResourceNames() DecryptResponse expectedResponse = new DecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, }; mockGrpcClient.Setup(x => x.DecryptAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2188,10 +2232,14 @@ public void AsymmetricSignRequestObject() { CryptoKeyVersionName = CryptoKeyVersionName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), Digest = new Digest(), + DigestCrc32C = -5836273086403280409L, }; AsymmetricSignResponse expectedResponse = new AsymmetricSignResponse { Signature = proto::ByteString.CopyFromUtf8("signatured21f20ac"), + SignatureCrc32C = 1544810433627481177L, + VerifiedDigestCrc32C = true, + Name = "name1c9368b0", }; mockGrpcClient.Setup(x => x.AsymmetricSign(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2208,10 +2256,14 @@ public void AsymmetricSignRequestObject() { CryptoKeyVersionName = CryptoKeyVersionName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), Digest = new Digest(), + DigestCrc32C = -5836273086403280409L, }; AsymmetricSignResponse expectedResponse = new AsymmetricSignResponse { Signature = proto::ByteString.CopyFromUtf8("signatured21f20ac"), + SignatureCrc32C = 1544810433627481177L, + VerifiedDigestCrc32C = true, + Name = "name1c9368b0", }; mockGrpcClient.Setup(x => x.AsymmetricSignAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2234,6 +2286,9 @@ public void AsymmetricSign() AsymmetricSignResponse expectedResponse = new AsymmetricSignResponse { Signature = proto::ByteString.CopyFromUtf8("signatured21f20ac"), + SignatureCrc32C = 1544810433627481177L, + VerifiedDigestCrc32C = true, + Name = "name1c9368b0", }; mockGrpcClient.Setup(x => x.AsymmetricSign(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2254,6 +2309,9 @@ public void AsymmetricSign() AsymmetricSignResponse expectedResponse = new AsymmetricSignResponse { Signature = proto::ByteString.CopyFromUtf8("signatured21f20ac"), + SignatureCrc32C = 1544810433627481177L, + VerifiedDigestCrc32C = true, + Name = "name1c9368b0", }; mockGrpcClient.Setup(x => x.AsymmetricSignAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2276,6 +2334,9 @@ public void AsymmetricSignResourceNames() AsymmetricSignResponse expectedResponse = new AsymmetricSignResponse { Signature = proto::ByteString.CopyFromUtf8("signatured21f20ac"), + SignatureCrc32C = 1544810433627481177L, + VerifiedDigestCrc32C = true, + Name = "name1c9368b0", }; mockGrpcClient.Setup(x => x.AsymmetricSign(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2296,6 +2357,9 @@ public void AsymmetricSignResourceNames() AsymmetricSignResponse expectedResponse = new AsymmetricSignResponse { Signature = proto::ByteString.CopyFromUtf8("signatured21f20ac"), + SignatureCrc32C = 1544810433627481177L, + VerifiedDigestCrc32C = true, + Name = "name1c9368b0", }; mockGrpcClient.Setup(x => x.AsymmetricSignAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2314,10 +2378,13 @@ public void AsymmetricDecryptRequestObject() { CryptoKeyVersionName = CryptoKeyVersionName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), + CiphertextCrc32C = 5835079685918568182L, }; AsymmetricDecryptResponse expectedResponse = new AsymmetricDecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, + VerifiedCiphertextCrc32C = true, }; mockGrpcClient.Setup(x => x.AsymmetricDecrypt(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2334,10 +2401,13 @@ public void AsymmetricDecryptRequestObject() { CryptoKeyVersionName = CryptoKeyVersionName.FromProjectLocationKeyRingCryptoKeyCryptoKeyVersion("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]"), Ciphertext = proto::ByteString.CopyFromUtf8("ciphertext676154cb"), + CiphertextCrc32C = 5835079685918568182L, }; AsymmetricDecryptResponse expectedResponse = new AsymmetricDecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, + VerifiedCiphertextCrc32C = true, }; mockGrpcClient.Setup(x => x.AsymmetricDecryptAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2360,6 +2430,8 @@ public void AsymmetricDecrypt() AsymmetricDecryptResponse expectedResponse = new AsymmetricDecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, + VerifiedCiphertextCrc32C = true, }; mockGrpcClient.Setup(x => x.AsymmetricDecrypt(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2380,6 +2452,8 @@ public void AsymmetricDecrypt() AsymmetricDecryptResponse expectedResponse = new AsymmetricDecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, + VerifiedCiphertextCrc32C = true, }; mockGrpcClient.Setup(x => x.AsymmetricDecryptAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2402,6 +2476,8 @@ public void AsymmetricDecryptResourceNames() AsymmetricDecryptResponse expectedResponse = new AsymmetricDecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, + VerifiedCiphertextCrc32C = true, }; mockGrpcClient.Setup(x => x.AsymmetricDecrypt(request, moq::It.IsAny())).Returns(expectedResponse); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); @@ -2422,6 +2498,8 @@ public void AsymmetricDecryptResourceNames() AsymmetricDecryptResponse expectedResponse = new AsymmetricDecryptResponse { Plaintext = proto::ByteString.CopyFromUtf8("plaintext1d5bbcf2"), + PlaintextCrc32C = -5108784857370523788L, + VerifiedCiphertextCrc32C = true, }; mockGrpcClient.Setup(x => x.AsymmetricDecryptAsync(request, moq::It.IsAny())).Returns(new grpccore::AsyncUnaryCall(stt::Task.FromResult(expectedResponse), null, null, null, null)); KeyManagementServiceClient client = new KeyManagementServiceClientImpl(mockGrpcClient.Object, null); diff --git a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/Resources.cs b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/Resources.cs index dc8c47405dde..60f27d67f800 100644 --- a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/Resources.cs +++ b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/Resources.cs @@ -28,122 +28,125 @@ public static partial class ResourcesReflection { "LmNsb3VkLmttcy52MRofZ29vZ2xlL2FwaS9maWVsZF9iZWhhdmlvci5wcm90", "bxoZZ29vZ2xlL2FwaS9yZXNvdXJjZS5wcm90bxoeZ29vZ2xlL3Byb3RvYnVm", "L2R1cmF0aW9uLnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnBy", - "b3RvGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIrUBCgdLZXlSaW5n", - "EhEKBG5hbWUYASABKAlCA+BBAxI0CgtjcmVhdGVfdGltZRgCIAEoCzIaLmdv", - "b2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAzph6kFeCh9jbG91ZGttcy5n", - "b29nbGVhcGlzLmNvbS9LZXlSaW5nEjtwcm9qZWN0cy97cHJvamVjdH0vbG9j", - "YXRpb25zL3tsb2NhdGlvbn0va2V5UmluZ3Mve2tleV9yaW5nfSKGBgoJQ3J5", - "cHRvS2V5EhEKBG5hbWUYASABKAlCA+BBAxI7CgdwcmltYXJ5GAIgASgLMiUu", - "Z29vZ2xlLmNsb3VkLmttcy52MS5DcnlwdG9LZXlWZXJzaW9uQgPgQQMSRQoH", - "cHVycG9zZRgDIAEoDjIvLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5", - "LkNyeXB0b0tleVB1cnBvc2VCA+BBBRI0CgtjcmVhdGVfdGltZRgFIAEoCzIa", - "Lmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAxI2ChJuZXh0X3JvdGF0", - "aW9uX3RpbWUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjQK", - "D3JvdGF0aW9uX3BlcmlvZBgIIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJh", - "dGlvbkgAEkcKEHZlcnNpb25fdGVtcGxhdGUYCyABKAsyLS5nb29nbGUuY2xv", - "dWQua21zLnYxLkNyeXB0b0tleVZlcnNpb25UZW1wbGF0ZRI6CgZsYWJlbHMY", - "CiADKAsyKi5nb29nbGUuY2xvdWQua21zLnYxLkNyeXB0b0tleS5MYWJlbHNF", - "bnRyeRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiAB", - "KAk6AjgBIngKEENyeXB0b0tleVB1cnBvc2USIgoeQ1JZUFRPX0tFWV9QVVJQ", - "T1NFX1VOU1BFQ0lGSUVEEAASEwoPRU5DUllQVF9ERUNSWVBUEAESEwoPQVNZ", - "TU1FVFJJQ19TSUdOEAUSFgoSQVNZTU1FVFJJQ19ERUNSWVBUEAY6e+pBeAoh", - "Y2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20vQ3J5cHRvS2V5ElNwcm9qZWN0cy97", - "cHJvamVjdH0vbG9jYXRpb25zL3tsb2NhdGlvbn0va2V5UmluZ3Mve2tleV9y", - "aW5nfS9jcnlwdG9LZXlzL3tjcnlwdG9fa2V5fUITChFyb3RhdGlvbl9zY2hl", - "ZHVsZSKzAQoYQ3J5cHRvS2V5VmVyc2lvblRlbXBsYXRlEj4KEHByb3RlY3Rp", - "b25fbGV2ZWwYASABKA4yJC5nb29nbGUuY2xvdWQua21zLnYxLlByb3RlY3Rp", - "b25MZXZlbBJXCglhbGdvcml0aG0YAyABKA4yPy5nb29nbGUuY2xvdWQua21z", - "LnYxLkNyeXB0b0tleVZlcnNpb24uQ3J5cHRvS2V5VmVyc2lvbkFsZ29yaXRo", - "bUID4EECIvEBChdLZXlPcGVyYXRpb25BdHRlc3RhdGlvbhJTCgZmb3JtYXQY", - "BCABKA4yPi5nb29nbGUuY2xvdWQua21zLnYxLktleU9wZXJhdGlvbkF0dGVz", - "dGF0aW9uLkF0dGVzdGF0aW9uRm9ybWF0QgPgQQMSFAoHY29udGVudBgFIAEo", - "DEID4EEDImsKEUF0dGVzdGF0aW9uRm9ybWF0EiIKHkFUVEVTVEFUSU9OX0ZP", - "Uk1BVF9VTlNQRUNJRklFRBAAEhgKFENBVklVTV9WMV9DT01QUkVTU0VEEAMS", - "GAoUQ0FWSVVNX1YyX0NPTVBSRVNTRUQQBCKKDgoQQ3J5cHRvS2V5VmVyc2lv", - "bhIRCgRuYW1lGAEgASgJQgPgQQMSSgoFc3RhdGUYAyABKA4yOy5nb29nbGUu", - "Y2xvdWQua21zLnYxLkNyeXB0b0tleVZlcnNpb24uQ3J5cHRvS2V5VmVyc2lv", - "blN0YXRlEkMKEHByb3RlY3Rpb25fbGV2ZWwYByABKA4yJC5nb29nbGUuY2xv", - "dWQua21zLnYxLlByb3RlY3Rpb25MZXZlbEID4EEDElcKCWFsZ29yaXRobRgK", - "IAEoDjI/Lmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5VmVyc2lvbi5D", - "cnlwdG9LZXlWZXJzaW9uQWxnb3JpdGhtQgPgQQMSRgoLYXR0ZXN0YXRpb24Y", - "CCABKAsyLC5nb29nbGUuY2xvdWQua21zLnYxLktleU9wZXJhdGlvbkF0dGVz", - "dGF0aW9uQgPgQQMSNAoLY3JlYXRlX3RpbWUYBCABKAsyGi5nb29nbGUucHJv", - "dG9idWYuVGltZXN0YW1wQgPgQQMSNgoNZ2VuZXJhdGVfdGltZRgLIAEoCzIa", - "Lmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAxI1CgxkZXN0cm95X3Rp", - "bWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQMSOwoS", - "ZGVzdHJveV9ldmVudF90aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRp", - "bWVzdGFtcEID4EEDEhcKCmltcG9ydF9qb2IYDiABKAlCA+BBAxI0CgtpbXBv", - "cnRfdGltZRgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BB", - "AxIiChVpbXBvcnRfZmFpbHVyZV9yZWFzb24YECABKAlCA+BBAxJeCiFleHRl", - "cm5hbF9wcm90ZWN0aW9uX2xldmVsX29wdGlvbnMYESABKAsyMy5nb29nbGUu", - "Y2xvdWQua21zLnYxLkV4dGVybmFsUHJvdGVjdGlvbkxldmVsT3B0aW9ucyK/", - "BAoZQ3J5cHRvS2V5VmVyc2lvbkFsZ29yaXRobRIsCihDUllQVE9fS0VZX1ZF", - "UlNJT05fQUxHT1JJVEhNX1VOU1BFQ0lGSUVEEAASHwobR09PR0xFX1NZTU1F", - "VFJJQ19FTkNSWVBUSU9OEAESHAoYUlNBX1NJR05fUFNTXzIwNDhfU0hBMjU2", - "EAISHAoYUlNBX1NJR05fUFNTXzMwNzJfU0hBMjU2EAMSHAoYUlNBX1NJR05f", - "UFNTXzQwOTZfU0hBMjU2EAQSHAoYUlNBX1NJR05fUFNTXzQwOTZfU0hBNTEy", - "EA8SHgoaUlNBX1NJR05fUEtDUzFfMjA0OF9TSEEyNTYQBRIeChpSU0FfU0lH", - "Tl9QS0NTMV8zMDcyX1NIQTI1NhAGEh4KGlJTQV9TSUdOX1BLQ1MxXzQwOTZf", - "U0hBMjU2EAcSHgoaUlNBX1NJR05fUEtDUzFfNDA5Nl9TSEE1MTIQEBIgChxS", - "U0FfREVDUllQVF9PQUVQXzIwNDhfU0hBMjU2EAgSIAocUlNBX0RFQ1JZUFRf", - "T0FFUF8zMDcyX1NIQTI1NhAJEiAKHFJTQV9ERUNSWVBUX09BRVBfNDA5Nl9T", - "SEEyNTYQChIgChxSU0FfREVDUllQVF9PQUVQXzQwOTZfU0hBNTEyEBESFwoT", - "RUNfU0lHTl9QMjU2X1NIQTI1NhAMEhcKE0VDX1NJR05fUDM4NF9TSEEzODQQ", - "DRIhCh1FWFRFUk5BTF9TWU1NRVRSSUNfRU5DUllQVElPThASIsEBChVDcnlw", - "dG9LZXlWZXJzaW9uU3RhdGUSKAokQ1JZUFRPX0tFWV9WRVJTSU9OX1NUQVRF", - "X1VOU1BFQ0lGSUVEEAASFgoSUEVORElOR19HRU5FUkFUSU9OEAUSCwoHRU5B", - "QkxFRBABEgwKCERJU0FCTEVEEAISDQoJREVTVFJPWUVEEAMSFQoRREVTVFJP", - "WV9TQ0hFRFVMRUQQBBISCg5QRU5ESU5HX0lNUE9SVBAGEhEKDUlNUE9SVF9G", - "QUlMRUQQByJJChRDcnlwdG9LZXlWZXJzaW9uVmlldxInCiNDUllQVE9fS0VZ", - "X1ZFUlNJT05fVklFV19VTlNQRUNJRklFRBAAEggKBEZVTEwQATqqAepBpgEK", - "KGNsb3Vka21zLmdvb2dsZWFwaXMuY29tL0NyeXB0b0tleVZlcnNpb24SenBy", - "b2plY3RzL3twcm9qZWN0fS9sb2NhdGlvbnMve2xvY2F0aW9ufS9rZXlSaW5n", - "cy97a2V5X3Jpbmd9L2NyeXB0b0tleXMve2NyeXB0b19rZXl9L2NyeXB0b0tl", - "eVZlcnNpb25zL3tjcnlwdG9fa2V5X3ZlcnNpb259Ip0CCglQdWJsaWNLZXkS", - "CwoDcGVtGAEgASgJElIKCWFsZ29yaXRobRgCIAEoDjI/Lmdvb2dsZS5jbG91", - "ZC5rbXMudjEuQ3J5cHRvS2V5VmVyc2lvbi5DcnlwdG9LZXlWZXJzaW9uQWxn", - "b3JpdGhtOq4B6kGqAQohY2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20vUHVibGlj", - "S2V5EoQBcHJvamVjdHMve3Byb2plY3R9L2xvY2F0aW9ucy97bG9jYXRpb259", - "L2tleVJpbmdzL3trZXlfcmluZ30vY3J5cHRvS2V5cy97Y3J5cHRvX2tleX0v", - "Y3J5cHRvS2V5VmVyc2lvbnMve2NyeXB0b19rZXlfdmVyc2lvbn0vcHVibGlj", - "S2V5ItsHCglJbXBvcnRKb2ISEQoEbmFtZRgBIAEoCUID4EEDEkoKDWltcG9y", - "dF9tZXRob2QYAiABKA4yKy5nb29nbGUuY2xvdWQua21zLnYxLkltcG9ydEpv", - "Yi5JbXBvcnRNZXRob2RCBuBBAuBBBRJGChBwcm90ZWN0aW9uX2xldmVsGAkg", - "ASgOMiQuZ29vZ2xlLmNsb3VkLmttcy52MS5Qcm90ZWN0aW9uTGV2ZWxCBuBB", - "AuBBBRI0CgtjcmVhdGVfdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5U", - "aW1lc3RhbXBCA+BBAxI2Cg1nZW5lcmF0ZV90aW1lGAQgASgLMhouZ29vZ2xl", - "LnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEjQKC2V4cGlyZV90aW1lGAUgASgL", - "MhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEjoKEWV4cGlyZV9l", - "dmVudF90aW1lGAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID", - "4EEDEkEKBXN0YXRlGAYgASgOMi0uZ29vZ2xlLmNsb3VkLmttcy52MS5JbXBv", - "cnRKb2IuSW1wb3J0Sm9iU3RhdGVCA+BBAxJJCgpwdWJsaWNfa2V5GAcgASgL", - "MjAuZ29vZ2xlLmNsb3VkLmttcy52MS5JbXBvcnRKb2IuV3JhcHBpbmdQdWJs", - "aWNLZXlCA+BBAxJGCgthdHRlc3RhdGlvbhgIIAEoCzIsLmdvb2dsZS5jbG91", - "ZC5rbXMudjEuS2V5T3BlcmF0aW9uQXR0ZXN0YXRpb25CA+BBAxogChFXcmFw", - "cGluZ1B1YmxpY0tleRILCgNwZW0YASABKAkibQoMSW1wb3J0TWV0aG9kEh0K", - "GUlNUE9SVF9NRVRIT0RfVU5TUEVDSUZJRUQQABIeChpSU0FfT0FFUF8zMDcy", - "X1NIQTFfQUVTXzI1NhABEh4KGlJTQV9PQUVQXzQwOTZfU0hBMV9BRVNfMjU2", - "EAIiYwoOSW1wb3J0Sm9iU3RhdGUSIAocSU1QT1JUX0pPQl9TVEFURV9VTlNQ", - "RUNJRklFRBAAEhYKElBFTkRJTkdfR0VORVJBVElPThABEgoKBkFDVElWRRAC", - "EgsKB0VYUElSRUQQAzp76kF4CiFjbG91ZGttcy5nb29nbGVhcGlzLmNvbS9J", - "bXBvcnRKb2ISU3Byb2plY3RzL3twcm9qZWN0fS9sb2NhdGlvbnMve2xvY2F0", - "aW9ufS9rZXlSaW5ncy97a2V5X3Jpbmd9L2ltcG9ydEpvYnMve2ltcG9ydF9q", - "b2J9IjoKHkV4dGVybmFsUHJvdGVjdGlvbkxldmVsT3B0aW9ucxIYChBleHRl", - "cm5hbF9rZXlfdXJpGAEgASgJKlgKD1Byb3RlY3Rpb25MZXZlbBIgChxQUk9U", - "RUNUSU9OX0xFVkVMX1VOU1BFQ0lGSUVEEAASDAoIU09GVFdBUkUQARIHCgNI", - "U00QAhIMCghFWFRFUk5BTBADQpUBChdjb20uZ29vZ2xlLmNsb3VkLmttcy52", - "MUIRS21zUmVzb3VyY2VzUHJvdG9QAVo2Z29vZ2xlLmdvbGFuZy5vcmcvZ2Vu", - "cHJvdG8vZ29vZ2xlYXBpcy9jbG91ZC9rbXMvdjE7a21z+AEBqgITR29vZ2xl", - "LkNsb3VkLkttcy5WMcoCE0dvb2dsZVxDbG91ZFxLbXNcVjFiBnByb3RvMw==")); + "b3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8aHGdvb2dsZS9h", + "cGkvYW5ub3RhdGlvbnMucHJvdG8itQEKB0tleVJpbmcSEQoEbmFtZRgBIAEo", + "CUID4EEDEjQKC2NyZWF0ZV90aW1lGAIgASgLMhouZ29vZ2xlLnByb3RvYnVm", + "LlRpbWVzdGFtcEID4EEDOmHqQV4KH2Nsb3Vka21zLmdvb2dsZWFwaXMuY29t", + "L0tleVJpbmcSO3Byb2plY3RzL3twcm9qZWN0fS9sb2NhdGlvbnMve2xvY2F0", + "aW9ufS9rZXlSaW5ncy97a2V5X3Jpbmd9IoYGCglDcnlwdG9LZXkSEQoEbmFt", + "ZRgBIAEoCUID4EEDEjsKB3ByaW1hcnkYAiABKAsyJS5nb29nbGUuY2xvdWQu", + "a21zLnYxLkNyeXB0b0tleVZlcnNpb25CA+BBAxJFCgdwdXJwb3NlGAMgASgO", + "Mi8uZ29vZ2xlLmNsb3VkLmttcy52MS5DcnlwdG9LZXkuQ3J5cHRvS2V5UHVy", + "cG9zZUID4EEFEjQKC2NyZWF0ZV90aW1lGAUgASgLMhouZ29vZ2xlLnByb3Rv", + "YnVmLlRpbWVzdGFtcEID4EEDEjYKEm5leHRfcm90YXRpb25fdGltZRgHIAEo", + "CzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoPcm90YXRpb25fcGVy", + "aW9kGAggASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uSAASRwoQdmVy", + "c2lvbl90ZW1wbGF0ZRgLIAEoCzItLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5", + "cHRvS2V5VmVyc2lvblRlbXBsYXRlEjoKBmxhYmVscxgKIAMoCzIqLmdvb2ds", + "ZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5LkxhYmVsc0VudHJ5Gi0KC0xhYmVs", + "c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEieAoQQ3J5", + "cHRvS2V5UHVycG9zZRIiCh5DUllQVE9fS0VZX1BVUlBPU0VfVU5TUEVDSUZJ", + "RUQQABITCg9FTkNSWVBUX0RFQ1JZUFQQARITCg9BU1lNTUVUUklDX1NJR04Q", + "BRIWChJBU1lNTUVUUklDX0RFQ1JZUFQQBjp76kF4CiFjbG91ZGttcy5nb29n", + "bGVhcGlzLmNvbS9DcnlwdG9LZXkSU3Byb2plY3RzL3twcm9qZWN0fS9sb2Nh", + "dGlvbnMve2xvY2F0aW9ufS9rZXlSaW5ncy97a2V5X3Jpbmd9L2NyeXB0b0tl", + "eXMve2NyeXB0b19rZXl9QhMKEXJvdGF0aW9uX3NjaGVkdWxlIrMBChhDcnlw", + "dG9LZXlWZXJzaW9uVGVtcGxhdGUSPgoQcHJvdGVjdGlvbl9sZXZlbBgBIAEo", + "DjIkLmdvb2dsZS5jbG91ZC5rbXMudjEuUHJvdGVjdGlvbkxldmVsElcKCWFs", + "Z29yaXRobRgDIAEoDjI/Lmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5", + "VmVyc2lvbi5DcnlwdG9LZXlWZXJzaW9uQWxnb3JpdGhtQgPgQQIi8QEKF0tl", + "eU9wZXJhdGlvbkF0dGVzdGF0aW9uElMKBmZvcm1hdBgEIAEoDjI+Lmdvb2ds", + "ZS5jbG91ZC5rbXMudjEuS2V5T3BlcmF0aW9uQXR0ZXN0YXRpb24uQXR0ZXN0", + "YXRpb25Gb3JtYXRCA+BBAxIUCgdjb250ZW50GAUgASgMQgPgQQMiawoRQXR0", + "ZXN0YXRpb25Gb3JtYXQSIgoeQVRURVNUQVRJT05fRk9STUFUX1VOU1BFQ0lG", + "SUVEEAASGAoUQ0FWSVVNX1YxX0NPTVBSRVNTRUQQAxIYChRDQVZJVU1fVjJf", + "Q09NUFJFU1NFRBAEIooOChBDcnlwdG9LZXlWZXJzaW9uEhEKBG5hbWUYASAB", + "KAlCA+BBAxJKCgVzdGF0ZRgDIAEoDjI7Lmdvb2dsZS5jbG91ZC5rbXMudjEu", + "Q3J5cHRvS2V5VmVyc2lvbi5DcnlwdG9LZXlWZXJzaW9uU3RhdGUSQwoQcHJv", + "dGVjdGlvbl9sZXZlbBgHIAEoDjIkLmdvb2dsZS5jbG91ZC5rbXMudjEuUHJv", + "dGVjdGlvbkxldmVsQgPgQQMSVwoJYWxnb3JpdGhtGAogASgOMj8uZ29vZ2xl", + "LmNsb3VkLmttcy52MS5DcnlwdG9LZXlWZXJzaW9uLkNyeXB0b0tleVZlcnNp", + "b25BbGdvcml0aG1CA+BBAxJGCgthdHRlc3RhdGlvbhgIIAEoCzIsLmdvb2ds", + "ZS5jbG91ZC5rbXMudjEuS2V5T3BlcmF0aW9uQXR0ZXN0YXRpb25CA+BBAxI0", + "CgtjcmVhdGVfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3Rh", + "bXBCA+BBAxI2Cg1nZW5lcmF0ZV90aW1lGAsgASgLMhouZ29vZ2xlLnByb3Rv", + "YnVmLlRpbWVzdGFtcEID4EEDEjUKDGRlc3Ryb3lfdGltZRgFIAEoCzIaLmdv", + "b2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAxI7ChJkZXN0cm95X2V2ZW50", + "X3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQMS", + "FwoKaW1wb3J0X2pvYhgOIAEoCUID4EEDEjQKC2ltcG9ydF90aW1lGA8gASgL", + "MhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEiIKFWltcG9ydF9m", + "YWlsdXJlX3JlYXNvbhgQIAEoCUID4EEDEl4KIWV4dGVybmFsX3Byb3RlY3Rp", + "b25fbGV2ZWxfb3B0aW9ucxgRIAEoCzIzLmdvb2dsZS5jbG91ZC5rbXMudjEu", + "RXh0ZXJuYWxQcm90ZWN0aW9uTGV2ZWxPcHRpb25zIr8EChlDcnlwdG9LZXlW", + "ZXJzaW9uQWxnb3JpdGhtEiwKKENSWVBUT19LRVlfVkVSU0lPTl9BTEdPUklU", + "SE1fVU5TUEVDSUZJRUQQABIfChtHT09HTEVfU1lNTUVUUklDX0VOQ1JZUFRJ", + "T04QARIcChhSU0FfU0lHTl9QU1NfMjA0OF9TSEEyNTYQAhIcChhSU0FfU0lH", + "Tl9QU1NfMzA3Ml9TSEEyNTYQAxIcChhSU0FfU0lHTl9QU1NfNDA5Nl9TSEEy", + "NTYQBBIcChhSU0FfU0lHTl9QU1NfNDA5Nl9TSEE1MTIQDxIeChpSU0FfU0lH", + "Tl9QS0NTMV8yMDQ4X1NIQTI1NhAFEh4KGlJTQV9TSUdOX1BLQ1MxXzMwNzJf", + "U0hBMjU2EAYSHgoaUlNBX1NJR05fUEtDUzFfNDA5Nl9TSEEyNTYQBxIeChpS", + "U0FfU0lHTl9QS0NTMV80MDk2X1NIQTUxMhAQEiAKHFJTQV9ERUNSWVBUX09B", + "RVBfMjA0OF9TSEEyNTYQCBIgChxSU0FfREVDUllQVF9PQUVQXzMwNzJfU0hB", + "MjU2EAkSIAocUlNBX0RFQ1JZUFRfT0FFUF80MDk2X1NIQTI1NhAKEiAKHFJT", + "QV9ERUNSWVBUX09BRVBfNDA5Nl9TSEE1MTIQERIXChNFQ19TSUdOX1AyNTZf", + "U0hBMjU2EAwSFwoTRUNfU0lHTl9QMzg0X1NIQTM4NBANEiEKHUVYVEVSTkFM", + "X1NZTU1FVFJJQ19FTkNSWVBUSU9OEBIiwQEKFUNyeXB0b0tleVZlcnNpb25T", + "dGF0ZRIoCiRDUllQVE9fS0VZX1ZFUlNJT05fU1RBVEVfVU5TUEVDSUZJRUQQ", + "ABIWChJQRU5ESU5HX0dFTkVSQVRJT04QBRILCgdFTkFCTEVEEAESDAoIRElT", + "QUJMRUQQAhINCglERVNUUk9ZRUQQAxIVChFERVNUUk9ZX1NDSEVEVUxFRBAE", + "EhIKDlBFTkRJTkdfSU1QT1JUEAYSEQoNSU1QT1JUX0ZBSUxFRBAHIkkKFENy", + "eXB0b0tleVZlcnNpb25WaWV3EicKI0NSWVBUT19LRVlfVkVSU0lPTl9WSUVX", + "X1VOU1BFQ0lGSUVEEAASCAoERlVMTBABOqoB6kGmAQooY2xvdWRrbXMuZ29v", + "Z2xlYXBpcy5jb20vQ3J5cHRvS2V5VmVyc2lvbhJ6cHJvamVjdHMve3Byb2pl", + "Y3R9L2xvY2F0aW9ucy97bG9jYXRpb259L2tleVJpbmdzL3trZXlfcmluZ30v", + "Y3J5cHRvS2V5cy97Y3J5cHRvX2tleX0vY3J5cHRvS2V5VmVyc2lvbnMve2Ny", + "eXB0b19rZXlfdmVyc2lvbn0i3AIKCVB1YmxpY0tleRILCgNwZW0YASABKAkS", + "UgoJYWxnb3JpdGhtGAIgASgOMj8uZ29vZ2xlLmNsb3VkLmttcy52MS5Dcnlw", + "dG9LZXlWZXJzaW9uLkNyeXB0b0tleVZlcnNpb25BbGdvcml0aG0SLwoKcGVt", + "X2NyYzMyYxgDIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEgwK", + "BG5hbWUYBCABKAk6rgHqQaoBCiFjbG91ZGttcy5nb29nbGVhcGlzLmNvbS9Q", + "dWJsaWNLZXkShAFwcm9qZWN0cy97cHJvamVjdH0vbG9jYXRpb25zL3tsb2Nh", + "dGlvbn0va2V5UmluZ3Mve2tleV9yaW5nfS9jcnlwdG9LZXlzL3tjcnlwdG9f", + "a2V5fS9jcnlwdG9LZXlWZXJzaW9ucy97Y3J5cHRvX2tleV92ZXJzaW9ufS9w", + "dWJsaWNLZXki2wcKCUltcG9ydEpvYhIRCgRuYW1lGAEgASgJQgPgQQMSSgoN", + "aW1wb3J0X21ldGhvZBgCIAEoDjIrLmdvb2dsZS5jbG91ZC5rbXMudjEuSW1w", + "b3J0Sm9iLkltcG9ydE1ldGhvZEIG4EEC4EEFEkYKEHByb3RlY3Rpb25fbGV2", + "ZWwYCSABKA4yJC5nb29nbGUuY2xvdWQua21zLnYxLlByb3RlY3Rpb25MZXZl", + "bEIG4EEC4EEFEjQKC2NyZWF0ZV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3Rv", + "YnVmLlRpbWVzdGFtcEID4EEDEjYKDWdlbmVyYXRlX3RpbWUYBCABKAsyGi5n", + "b29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQMSNAoLZXhwaXJlX3RpbWUY", + "BSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQMSOgoRZXhw", + "aXJlX2V2ZW50X3RpbWUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0", + "YW1wQgPgQQMSQQoFc3RhdGUYBiABKA4yLS5nb29nbGUuY2xvdWQua21zLnYx", + "LkltcG9ydEpvYi5JbXBvcnRKb2JTdGF0ZUID4EEDEkkKCnB1YmxpY19rZXkY", + "ByABKAsyMC5nb29nbGUuY2xvdWQua21zLnYxLkltcG9ydEpvYi5XcmFwcGlu", + "Z1B1YmxpY0tleUID4EEDEkYKC2F0dGVzdGF0aW9uGAggASgLMiwuZ29vZ2xl", + "LmNsb3VkLmttcy52MS5LZXlPcGVyYXRpb25BdHRlc3RhdGlvbkID4EEDGiAK", + "EVdyYXBwaW5nUHVibGljS2V5EgsKA3BlbRgBIAEoCSJtCgxJbXBvcnRNZXRo", + "b2QSHQoZSU1QT1JUX01FVEhPRF9VTlNQRUNJRklFRBAAEh4KGlJTQV9PQUVQ", + "XzMwNzJfU0hBMV9BRVNfMjU2EAESHgoaUlNBX09BRVBfNDA5Nl9TSEExX0FF", + "U18yNTYQAiJjCg5JbXBvcnRKb2JTdGF0ZRIgChxJTVBPUlRfSk9CX1NUQVRF", + "X1VOU1BFQ0lGSUVEEAASFgoSUEVORElOR19HRU5FUkFUSU9OEAESCgoGQUNU", + "SVZFEAISCwoHRVhQSVJFRBADOnvqQXgKIWNsb3Vka21zLmdvb2dsZWFwaXMu", + "Y29tL0ltcG9ydEpvYhJTcHJvamVjdHMve3Byb2plY3R9L2xvY2F0aW9ucy97", + "bG9jYXRpb259L2tleVJpbmdzL3trZXlfcmluZ30vaW1wb3J0Sm9icy97aW1w", + "b3J0X2pvYn0iOgoeRXh0ZXJuYWxQcm90ZWN0aW9uTGV2ZWxPcHRpb25zEhgK", + "EGV4dGVybmFsX2tleV91cmkYASABKAkqWAoPUHJvdGVjdGlvbkxldmVsEiAK", + "HFBST1RFQ1RJT05fTEVWRUxfVU5TUEVDSUZJRUQQABIMCghTT0ZUV0FSRRAB", + "EgcKA0hTTRACEgwKCEVYVEVSTkFMEANClQEKF2NvbS5nb29nbGUuY2xvdWQu", + "a21zLnYxQhFLbXNSZXNvdXJjZXNQcm90b1ABWjZnb29nbGUuZ29sYW5nLm9y", + "Zy9nZW5wcm90by9nb29nbGVhcGlzL2Nsb3VkL2ttcy92MTtrbXP4AQGqAhNH", + "b29nbGUuQ2xvdWQuS21zLlYxygITR29vZ2xlXENsb3VkXEttc1xWMWIGcHJv", + "dG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.Cloud.Kms.V1.ProtectionLevel), }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.KeyRing), global::Google.Cloud.Kms.V1.KeyRing.Parser, new[]{ "Name", "CreateTime" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.CryptoKey), global::Google.Cloud.Kms.V1.CryptoKey.Parser, new[]{ "Name", "Primary", "Purpose", "CreateTime", "NextRotationTime", "RotationPeriod", "VersionTemplate", "Labels" }, new[]{ "RotationSchedule" }, new[]{ typeof(global::Google.Cloud.Kms.V1.CryptoKey.Types.CryptoKeyPurpose) }, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.CryptoKeyVersionTemplate), global::Google.Cloud.Kms.V1.CryptoKeyVersionTemplate.Parser, new[]{ "ProtectionLevel", "Algorithm" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.KeyOperationAttestation), global::Google.Cloud.Kms.V1.KeyOperationAttestation.Parser, new[]{ "Format", "Content" }, null, new[]{ typeof(global::Google.Cloud.Kms.V1.KeyOperationAttestation.Types.AttestationFormat) }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.CryptoKeyVersion), global::Google.Cloud.Kms.V1.CryptoKeyVersion.Parser, new[]{ "Name", "State", "ProtectionLevel", "Algorithm", "Attestation", "CreateTime", "GenerateTime", "DestroyTime", "DestroyEventTime", "ImportJob", "ImportTime", "ImportFailureReason", "ExternalProtectionLevelOptions" }, null, new[]{ typeof(global::Google.Cloud.Kms.V1.CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm), typeof(global::Google.Cloud.Kms.V1.CryptoKeyVersion.Types.CryptoKeyVersionState), typeof(global::Google.Cloud.Kms.V1.CryptoKeyVersion.Types.CryptoKeyVersionView) }, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.PublicKey), global::Google.Cloud.Kms.V1.PublicKey.Parser, new[]{ "Pem", "Algorithm" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.PublicKey), global::Google.Cloud.Kms.V1.PublicKey.Parser, new[]{ "Pem", "Algorithm", "PemCrc32C", "Name" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.ImportJob), global::Google.Cloud.Kms.V1.ImportJob.Parser, new[]{ "Name", "ImportMethod", "ProtectionLevel", "CreateTime", "GenerateTime", "ExpireTime", "ExpireEventTime", "State", "PublicKey", "Attestation" }, null, new[]{ typeof(global::Google.Cloud.Kms.V1.ImportJob.Types.ImportMethod), typeof(global::Google.Cloud.Kms.V1.ImportJob.Types.ImportJobState) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.ImportJob.Types.WrappingPublicKey), global::Google.Cloud.Kms.V1.ImportJob.Types.WrappingPublicKey.Parser, new[]{ "Pem" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.ExternalProtectionLevelOptions), global::Google.Cloud.Kms.V1.ExternalProtectionLevelOptions.Parser, new[]{ "ExternalKeyUri" }, null, null, null, null) })); @@ -356,8 +359,8 @@ public sealed partial class KeyRing : pb::IMessage { /// A [CryptoKey][google.cloud.kms.v1.CryptoKey] represents a logical key that can be used for cryptographic /// operations. /// - /// A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of one or more [versions][google.cloud.kms.v1.CryptoKeyVersion], which - /// represent the actual key material used in cryptographic operations. + /// A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of zero or more [versions][google.cloud.kms.v1.CryptoKeyVersion], + /// which represent the actual key material used in cryptographic operations. /// public sealed partial class CryptoKey : pb::IMessage { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new CryptoKey()); @@ -1993,6 +1996,8 @@ public sealed partial class PublicKey : pb::IMessage { public PublicKey(PublicKey other) : this() { pem_ = other.pem_; algorithm_ = other.algorithm_; + PemCrc32C = other.PemCrc32C; + name_ = other.name_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -2034,6 +2039,51 @@ public sealed partial class PublicKey : pb::IMessage { } } + /// Field number for the "pem_crc32c" field. + public const int PemCrc32CFieldNumber = 3; + private static readonly pb::FieldCodec _single_pemCrc32C_codec = pb::FieldCodec.ForStructWrapper(26); + private long? pemCrc32C_; + /// + /// Integrity verification field. A CRC32C checksum of the returned + /// [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem]. An integrity check of [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] can be performed + /// by computing the CRC32C checksum of [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] and + /// comparing your results to this field. Discard the response in case of + /// non-matching checksum values, and perform a limited number of retries. A + /// persistent mismatch may indicate an issue in your computation of the CRC32C + /// checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? PemCrc32C { + get { return pemCrc32C_; } + set { + pemCrc32C_ = value; + } + } + + + /// Field number for the "name" field. + public const int NameFieldNumber = 4; + private string name_ = ""; + /// + /// The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key. + /// Provided here for verification. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as PublicKey); @@ -2049,6 +2099,8 @@ public sealed partial class PublicKey : pb::IMessage { } if (Pem != other.Pem) return false; if (Algorithm != other.Algorithm) return false; + if (PemCrc32C != other.PemCrc32C) return false; + if (Name != other.Name) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2057,6 +2109,8 @@ public sealed partial class PublicKey : pb::IMessage { int hash = 1; if (Pem.Length != 0) hash ^= Pem.GetHashCode(); if (Algorithm != global::Google.Cloud.Kms.V1.CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.Unspecified) hash ^= Algorithm.GetHashCode(); + if (pemCrc32C_ != null) hash ^= PemCrc32C.GetHashCode(); + if (Name.Length != 0) hash ^= Name.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2078,6 +2132,13 @@ public sealed partial class PublicKey : pb::IMessage { output.WriteRawTag(16); output.WriteEnum((int) Algorithm); } + if (pemCrc32C_ != null) { + _single_pemCrc32C_codec.WriteTagAndValue(output, PemCrc32C); + } + if (Name.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Name); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2092,6 +2153,12 @@ public sealed partial class PublicKey : pb::IMessage { if (Algorithm != global::Google.Cloud.Kms.V1.CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.Unspecified) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Algorithm); } + if (pemCrc32C_ != null) { + size += _single_pemCrc32C_codec.CalculateSizeWithTag(PemCrc32C); + } + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2109,6 +2176,14 @@ public sealed partial class PublicKey : pb::IMessage { if (other.Algorithm != global::Google.Cloud.Kms.V1.CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.Unspecified) { Algorithm = other.Algorithm; } + if (other.pemCrc32C_ != null) { + if (pemCrc32C_ == null || other.PemCrc32C != 0L) { + PemCrc32C = other.PemCrc32C; + } + } + if (other.Name.Length != 0) { + Name = other.Name; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2128,6 +2203,17 @@ public sealed partial class PublicKey : pb::IMessage { Algorithm = (global::Google.Cloud.Kms.V1.CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm) input.ReadEnum(); break; } + case 26: { + long? value = _single_pemCrc32C_codec.Read(input); + if (pemCrc32C_ == null || value != 0L) { + PemCrc32C = value; + } + break; + } + case 34: { + Name = input.ReadString(); + break; + } } } } diff --git a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/ResourcesResourceNames.g.cs b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/ResourcesResourceNames.g.cs index 20290980f6d7..d2750692b016 100644 --- a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/ResourcesResourceNames.g.cs +++ b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/ResourcesResourceNames.g.cs @@ -1372,6 +1372,18 @@ public partial class CryptoKeyVersion } } + public partial class PublicKey + { + /// + /// -typed view over the resource name property. + /// + public gckv::PublicKeyName PublicKeyName + { + get => string.IsNullOrEmpty(Name) ? null : gckv::PublicKeyName.Parse(Name, allowUnparsed: true); + set => Name = value?.ToString() ?? ""; + } + } + public partial class ImportJob { /// diff --git a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/Service.cs b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/Service.cs index 4c2e1daf28c2..9228997ec7f0 100644 --- a/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/Service.cs +++ b/apis/Google.Cloud.Kms.V1/Google.Cloud.Kms.V1/Service.cs @@ -29,215 +29,233 @@ public static partial class ServiceReflection { "b2dsZS9hcGkvY2xpZW50LnByb3RvGh9nb29nbGUvYXBpL2ZpZWxkX2JlaGF2", "aW9yLnByb3RvGhlnb29nbGUvYXBpL3Jlc291cmNlLnByb3RvGiNnb29nbGUv", "Y2xvdWQva21zL3YxL3Jlc291cmNlcy5wcm90bxogZ29vZ2xlL3Byb3RvYnVm", - "L2ZpZWxkX21hc2sucHJvdG8irQEKE0xpc3RLZXlSaW5nc1JlcXVlc3QSOQoG", - "cGFyZW50GAEgASgJQingQQL6QSMKIWxvY2F0aW9ucy5nb29nbGVhcGlzLmNv", - "bS9Mb2NhdGlvbhIWCglwYWdlX3NpemUYAiABKAVCA+BBARIXCgpwYWdlX3Rv", - "a2VuGAMgASgJQgPgQQESEwoGZmlsdGVyGAQgASgJQgPgQQESFQoIb3JkZXJf", - "YnkYBSABKAlCA+BBASL/AQoVTGlzdENyeXB0b0tleXNSZXF1ZXN0EjcKBnBh", - "cmVudBgBIAEoCUIn4EEC+kEhCh9jbG91ZGttcy5nb29nbGVhcGlzLmNvbS9L", - "ZXlSaW5nEhYKCXBhZ2Vfc2l6ZRgCIAEoBUID4EEBEhcKCnBhZ2VfdG9rZW4Y", - "AyABKAlCA+BBARJQCgx2ZXJzaW9uX3ZpZXcYBCABKA4yOi5nb29nbGUuY2xv", - "dWQua21zLnYxLkNyeXB0b0tleVZlcnNpb24uQ3J5cHRvS2V5VmVyc2lvblZp", - "ZXcSEwoGZmlsdGVyGAUgASgJQgPgQQESFQoIb3JkZXJfYnkYBiABKAlCA+BB", - "ASKAAgocTGlzdENyeXB0b0tleVZlcnNpb25zUmVxdWVzdBI5CgZwYXJlbnQY", - "ASABKAlCKeBBAvpBIwohY2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20vQ3J5cHRv", - "S2V5EhYKCXBhZ2Vfc2l6ZRgCIAEoBUID4EEBEhcKCnBhZ2VfdG9rZW4YAyAB", - "KAlCA+BBARJICgR2aWV3GAQgASgOMjouZ29vZ2xlLmNsb3VkLmttcy52MS5D", - "cnlwdG9LZXlWZXJzaW9uLkNyeXB0b0tleVZlcnNpb25WaWV3EhMKBmZpbHRl", - "chgFIAEoCUID4EEBEhUKCG9yZGVyX2J5GAYgASgJQgPgQQEirQEKFUxpc3RJ", - "bXBvcnRKb2JzUmVxdWVzdBI3CgZwYXJlbnQYASABKAlCJ+BBAvpBIQofY2xv", - "dWRrbXMuZ29vZ2xlYXBpcy5jb20vS2V5UmluZxIWCglwYWdlX3NpemUYAiAB", - "KAVCA+BBARIXCgpwYWdlX3Rva2VuGAMgASgJQgPgQQESEwoGZmlsdGVyGAQg", - "ASgJQgPgQQESFQoIb3JkZXJfYnkYBSABKAlCA+BBASJ0ChRMaXN0S2V5Umlu", - "Z3NSZXNwb25zZRIvCglrZXlfcmluZ3MYASADKAsyHC5nb29nbGUuY2xvdWQu", - "a21zLnYxLktleVJpbmcSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhIKCnRv", - "dGFsX3NpemUYAyABKAUiegoWTGlzdENyeXB0b0tleXNSZXNwb25zZRIzCgtj", - "cnlwdG9fa2V5cxgBIAMoCzIeLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRv", - "S2V5EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRISCgp0b3RhbF9zaXplGAMg", - "ASgFIpABCh1MaXN0Q3J5cHRvS2V5VmVyc2lvbnNSZXNwb25zZRJCChNjcnlw", - "dG9fa2V5X3ZlcnNpb25zGAEgAygLMiUuZ29vZ2xlLmNsb3VkLmttcy52MS5D", - "cnlwdG9LZXlWZXJzaW9uEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRISCgp0", - "b3RhbF9zaXplGAMgASgFInoKFkxpc3RJbXBvcnRKb2JzUmVzcG9uc2USMwoL", - "aW1wb3J0X2pvYnMYASADKAsyHi5nb29nbGUuY2xvdWQua21zLnYxLkltcG9y", - "dEpvYhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEgoKdG90YWxfc2l6ZRgD", - "IAEoBSJKChFHZXRLZXlSaW5nUmVxdWVzdBI1CgRuYW1lGAEgASgJQifgQQL6", - "QSEKH2Nsb3Vka21zLmdvb2dsZWFwaXMuY29tL0tleVJpbmciTgoTR2V0Q3J5", - "cHRvS2V5UmVxdWVzdBI3CgRuYW1lGAEgASgJQingQQL6QSMKIWNsb3Vka21z", - "Lmdvb2dsZWFwaXMuY29tL0NyeXB0b0tleSJcChpHZXRDcnlwdG9LZXlWZXJz", - "aW9uUmVxdWVzdBI+CgRuYW1lGAEgASgJQjDgQQL6QSoKKGNsb3Vka21zLmdv", - "b2dsZWFwaXMuY29tL0NyeXB0b0tleVZlcnNpb24iVQoTR2V0UHVibGljS2V5", - "UmVxdWVzdBI+CgRuYW1lGAEgASgJQjDgQQL6QSoKKGNsb3Vka21zLmdvb2ds", - "ZWFwaXMuY29tL0NyeXB0b0tleVZlcnNpb24iTgoTR2V0SW1wb3J0Sm9iUmVx", - "dWVzdBI3CgRuYW1lGAEgASgJQingQQL6QSMKIWNsb3Vka21zLmdvb2dsZWFw", - "aXMuY29tL0ltcG9ydEpvYiKgAQoUQ3JlYXRlS2V5UmluZ1JlcXVlc3QSOQoG", - "cGFyZW50GAEgASgJQingQQL6QSMKIWxvY2F0aW9ucy5nb29nbGVhcGlzLmNv", - "bS9Mb2NhdGlvbhIYCgtrZXlfcmluZ19pZBgCIAEoCUID4EECEjMKCGtleV9y", - "aW5nGAMgASgLMhwuZ29vZ2xlLmNsb3VkLmttcy52MS5LZXlSaW5nQgPgQQIi", - "zQEKFkNyZWF0ZUNyeXB0b0tleVJlcXVlc3QSNwoGcGFyZW50GAEgASgJQifg", - "QQL6QSEKH2Nsb3Vka21zLmdvb2dsZWFwaXMuY29tL0tleVJpbmcSGgoNY3J5", - "cHRvX2tleV9pZBgCIAEoCUID4EECEjcKCmNyeXB0b19rZXkYAyABKAsyHi5n", - "b29nbGUuY2xvdWQua21zLnYxLkNyeXB0b0tleUID4EECEiUKHXNraXBfaW5p", - "dGlhbF92ZXJzaW9uX2NyZWF0aW9uGAUgASgIIqIBCh1DcmVhdGVDcnlwdG9L", - "ZXlWZXJzaW9uUmVxdWVzdBI5CgZwYXJlbnQYASABKAlCKeBBAvpBIwohY2xv", - "dWRrbXMuZ29vZ2xlYXBpcy5jb20vQ3J5cHRvS2V5EkYKEmNyeXB0b19rZXlf", - "dmVyc2lvbhgCIAEoCzIlLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5", - "VmVyc2lvbkID4EECIoMCCh1JbXBvcnRDcnlwdG9LZXlWZXJzaW9uUmVxdWVz", - "dBI5CgZwYXJlbnQYASABKAlCKeBBAvpBIwohY2xvdWRrbXMuZ29vZ2xlYXBp", - "cy5jb20vQ3J5cHRvS2V5ElcKCWFsZ29yaXRobRgCIAEoDjI/Lmdvb2dsZS5j", - "bG91ZC5rbXMudjEuQ3J5cHRvS2V5VmVyc2lvbi5DcnlwdG9LZXlWZXJzaW9u", - "QWxnb3JpdGhtQgPgQQISFwoKaW1wb3J0X2pvYhgEIAEoCUID4EECEh0KE3Jz", - "YV9hZXNfd3JhcHBlZF9rZXkYBSABKAxIAEIWChR3cmFwcGVkX2tleV9tYXRl", - "cmlhbCKmAQoWQ3JlYXRlSW1wb3J0Sm9iUmVxdWVzdBI3CgZwYXJlbnQYASAB", - "KAlCJ+BBAvpBIQofY2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20vS2V5UmluZxIa", - "Cg1pbXBvcnRfam9iX2lkGAIgASgJQgPgQQISNwoKaW1wb3J0X2pvYhgDIAEo", - "CzIeLmdvb2dsZS5jbG91ZC5rbXMudjEuSW1wb3J0Sm9iQgPgQQIihwEKFlVw", - "ZGF0ZUNyeXB0b0tleVJlcXVlc3QSNwoKY3J5cHRvX2tleRgBIAEoCzIeLmdv", - "b2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5QgPgQQISNAoLdXBkYXRlX21h", - "c2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgPgQQIinQEK", - "HVVwZGF0ZUNyeXB0b0tleVZlcnNpb25SZXF1ZXN0EkYKEmNyeXB0b19rZXlf", - "dmVyc2lvbhgBIAEoCzIlLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5", - "VmVyc2lvbkID4EECEjQKC3VwZGF0ZV9tYXNrGAIgASgLMhouZ29vZ2xlLnBy", - "b3RvYnVmLkZpZWxkTWFza0ID4EECIm0KDkVuY3J5cHRSZXF1ZXN0EhcKBG5h", - "bWUYASABKAlCCeBBAvpBAwoBKhIWCglwbGFpbnRleHQYAiABKAxCA+BBAhIq", - "Ch1hZGRpdGlvbmFsX2F1dGhlbnRpY2F0ZWRfZGF0YRgDIAEoDEID4EEBIo4B", - "Cg5EZWNyeXB0UmVxdWVzdBI3CgRuYW1lGAEgASgJQingQQL6QSMKIWNsb3Vk", - "a21zLmdvb2dsZWFwaXMuY29tL0NyeXB0b0tleRIXCgpjaXBoZXJ0ZXh0GAIg", - "ASgMQgPgQQISKgodYWRkaXRpb25hbF9hdXRoZW50aWNhdGVkX2RhdGEYAyAB", - "KAxCA+BBASKJAQoVQXN5bW1ldHJpY1NpZ25SZXF1ZXN0Ej4KBG5hbWUYASAB", - "KAlCMOBBAvpBKgooY2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20vQ3J5cHRvS2V5", - "VmVyc2lvbhIwCgZkaWdlc3QYAyABKAsyGy5nb29nbGUuY2xvdWQua21zLnYx", - "LkRpZ2VzdEID4EECInMKGEFzeW1tZXRyaWNEZWNyeXB0UmVxdWVzdBI+CgRu", - "YW1lGAEgASgJQjDgQQL6QSoKKGNsb3Vka21zLmdvb2dsZWFwaXMuY29tL0Ny", - "eXB0b0tleVZlcnNpb24SFwoKY2lwaGVydGV4dBgDIAEoDEID4EECIiQKD0Rl", - "Y3J5cHRSZXNwb25zZRIRCglwbGFpbnRleHQYASABKAwiMwoPRW5jcnlwdFJl", - "c3BvbnNlEgwKBG5hbWUYASABKAkSEgoKY2lwaGVydGV4dBgCIAEoDCIrChZB", - "c3ltbWV0cmljU2lnblJlc3BvbnNlEhEKCXNpZ25hdHVyZRgBIAEoDCIuChlB", - "c3ltbWV0cmljRGVjcnlwdFJlc3BvbnNlEhEKCXBsYWludGV4dBgBIAEoDCKD", - "AQokVXBkYXRlQ3J5cHRvS2V5UHJpbWFyeVZlcnNpb25SZXF1ZXN0EjcKBG5h", - "bWUYASABKAlCKeBBAvpBIwohY2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20vQ3J5", - "cHRvS2V5EiIKFWNyeXB0b19rZXlfdmVyc2lvbl9pZBgCIAEoCUID4EECImAK", - "HkRlc3Ryb3lDcnlwdG9LZXlWZXJzaW9uUmVxdWVzdBI+CgRuYW1lGAEgASgJ", - "QjDgQQL6QSoKKGNsb3Vka21zLmdvb2dsZWFwaXMuY29tL0NyeXB0b0tleVZl", - "cnNpb24iYAoeUmVzdG9yZUNyeXB0b0tleVZlcnNpb25SZXF1ZXN0Ej4KBG5h", + "L2ZpZWxkX21hc2sucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5w", + "cm90byKtAQoTTGlzdEtleVJpbmdzUmVxdWVzdBI5CgZwYXJlbnQYASABKAlC", + "KeBBAvpBIwohbG9jYXRpb25zLmdvb2dsZWFwaXMuY29tL0xvY2F0aW9uEhYK", + "CXBhZ2Vfc2l6ZRgCIAEoBUID4EEBEhcKCnBhZ2VfdG9rZW4YAyABKAlCA+BB", + "ARITCgZmaWx0ZXIYBCABKAlCA+BBARIVCghvcmRlcl9ieRgFIAEoCUID4EEB", + "Iv8BChVMaXN0Q3J5cHRvS2V5c1JlcXVlc3QSNwoGcGFyZW50GAEgASgJQifg", + "QQL6QSEKH2Nsb3Vka21zLmdvb2dsZWFwaXMuY29tL0tleVJpbmcSFgoJcGFn", + "ZV9zaXplGAIgASgFQgPgQQESFwoKcGFnZV90b2tlbhgDIAEoCUID4EEBElAK", + "DHZlcnNpb25fdmlldxgEIAEoDjI6Lmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5", + "cHRvS2V5VmVyc2lvbi5DcnlwdG9LZXlWZXJzaW9uVmlldxITCgZmaWx0ZXIY", + "BSABKAlCA+BBARIVCghvcmRlcl9ieRgGIAEoCUID4EEBIoACChxMaXN0Q3J5", + "cHRvS2V5VmVyc2lvbnNSZXF1ZXN0EjkKBnBhcmVudBgBIAEoCUIp4EEC+kEj", + "CiFjbG91ZGttcy5nb29nbGVhcGlzLmNvbS9DcnlwdG9LZXkSFgoJcGFnZV9z", + "aXplGAIgASgFQgPgQQESFwoKcGFnZV90b2tlbhgDIAEoCUID4EEBEkgKBHZp", + "ZXcYBCABKA4yOi5nb29nbGUuY2xvdWQua21zLnYxLkNyeXB0b0tleVZlcnNp", + "b24uQ3J5cHRvS2V5VmVyc2lvblZpZXcSEwoGZmlsdGVyGAUgASgJQgPgQQES", + "FQoIb3JkZXJfYnkYBiABKAlCA+BBASKtAQoVTGlzdEltcG9ydEpvYnNSZXF1", + "ZXN0EjcKBnBhcmVudBgBIAEoCUIn4EEC+kEhCh9jbG91ZGttcy5nb29nbGVh", + "cGlzLmNvbS9LZXlSaW5nEhYKCXBhZ2Vfc2l6ZRgCIAEoBUID4EEBEhcKCnBh", + "Z2VfdG9rZW4YAyABKAlCA+BBARITCgZmaWx0ZXIYBCABKAlCA+BBARIVCghv", + "cmRlcl9ieRgFIAEoCUID4EEBInQKFExpc3RLZXlSaW5nc1Jlc3BvbnNlEi8K", + "CWtleV9yaW5ncxgBIAMoCzIcLmdvb2dsZS5jbG91ZC5rbXMudjEuS2V5Umlu", + "ZxIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEgoKdG90YWxfc2l6ZRgDIAEo", + "BSJ6ChZMaXN0Q3J5cHRvS2V5c1Jlc3BvbnNlEjMKC2NyeXB0b19rZXlzGAEg", + "AygLMh4uZ29vZ2xlLmNsb3VkLmttcy52MS5DcnlwdG9LZXkSFwoPbmV4dF9w", + "YWdlX3Rva2VuGAIgASgJEhIKCnRvdGFsX3NpemUYAyABKAUikAEKHUxpc3RD", + "cnlwdG9LZXlWZXJzaW9uc1Jlc3BvbnNlEkIKE2NyeXB0b19rZXlfdmVyc2lv", + "bnMYASADKAsyJS5nb29nbGUuY2xvdWQua21zLnYxLkNyeXB0b0tleVZlcnNp", + "b24SFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhIKCnRvdGFsX3NpemUYAyAB", + "KAUiegoWTGlzdEltcG9ydEpvYnNSZXNwb25zZRIzCgtpbXBvcnRfam9icxgB", + "IAMoCzIeLmdvb2dsZS5jbG91ZC5rbXMudjEuSW1wb3J0Sm9iEhcKD25leHRf", + "cGFnZV90b2tlbhgCIAEoCRISCgp0b3RhbF9zaXplGAMgASgFIkoKEUdldEtl", + "eVJpbmdSZXF1ZXN0EjUKBG5hbWUYASABKAlCJ+BBAvpBIQofY2xvdWRrbXMu", + "Z29vZ2xlYXBpcy5jb20vS2V5UmluZyJOChNHZXRDcnlwdG9LZXlSZXF1ZXN0", + "EjcKBG5hbWUYASABKAlCKeBBAvpBIwohY2xvdWRrbXMuZ29vZ2xlYXBpcy5j", + "b20vQ3J5cHRvS2V5IlwKGkdldENyeXB0b0tleVZlcnNpb25SZXF1ZXN0Ej4K", + "BG5hbWUYASABKAlCMOBBAvpBKgooY2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20v", + "Q3J5cHRvS2V5VmVyc2lvbiJVChNHZXRQdWJsaWNLZXlSZXF1ZXN0Ej4KBG5h", "bWUYASABKAlCMOBBAvpBKgooY2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20vQ3J5", - "cHRvS2V5VmVyc2lvbiJICgZEaWdlc3QSEAoGc2hhMjU2GAEgASgMSAASEAoG", - "c2hhMzg0GAIgASgMSAASEAoGc2hhNTEyGAMgASgMSABCCAoGZGlnZXN0IkAK", - "EExvY2F0aW9uTWV0YWRhdGESFQoNaHNtX2F2YWlsYWJsZRgBIAEoCBIVCg1l", - "a21fYXZhaWxhYmxlGAIgASgIMoYmChRLZXlNYW5hZ2VtZW50U2VydmljZRKi", - "AQoMTGlzdEtleVJpbmdzEiguZ29vZ2xlLmNsb3VkLmttcy52MS5MaXN0S2V5", - "UmluZ3NSZXF1ZXN0GikuZ29vZ2xlLmNsb3VkLmttcy52MS5MaXN0S2V5Umlu", - "Z3NSZXNwb25zZSI9gtPkkwIuEiwvdjEve3BhcmVudD1wcm9qZWN0cy8qL2xv", - "Y2F0aW9ucy8qfS9rZXlSaW5nc9pBBnBhcmVudBK1AQoOTGlzdENyeXB0b0tl", - "eXMSKi5nb29nbGUuY2xvdWQua21zLnYxLkxpc3RDcnlwdG9LZXlzUmVxdWVz", - "dBorLmdvb2dsZS5jbG91ZC5rbXMudjEuTGlzdENyeXB0b0tleXNSZXNwb25z", - "ZSJKgtPkkwI7EjkvdjEve3BhcmVudD1wcm9qZWN0cy8qL2xvY2F0aW9ucy8q", - "L2tleVJpbmdzLyp9L2NyeXB0b0tleXPaQQZwYXJlbnQS3gEKFUxpc3RDcnlw", - "dG9LZXlWZXJzaW9ucxIxLmdvb2dsZS5jbG91ZC5rbXMudjEuTGlzdENyeXB0", - "b0tleVZlcnNpb25zUmVxdWVzdBoyLmdvb2dsZS5jbG91ZC5rbXMudjEuTGlz", - "dENyeXB0b0tleVZlcnNpb25zUmVzcG9uc2UiXoLT5JMCTxJNL3YxL3twYXJl", - "bnQ9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8qL2NyeXB0b0tl", - "eXMvKn0vY3J5cHRvS2V5VmVyc2lvbnPaQQZwYXJlbnQStQEKDkxpc3RJbXBv", - "cnRKb2JzEiouZ29vZ2xlLmNsb3VkLmttcy52MS5MaXN0SW1wb3J0Sm9ic1Jl", - "cXVlc3QaKy5nb29nbGUuY2xvdWQua21zLnYxLkxpc3RJbXBvcnRKb2JzUmVz", - "cG9uc2UiSoLT5JMCOxI5L3YxL3twYXJlbnQ9cHJvamVjdHMvKi9sb2NhdGlv", - "bnMvKi9rZXlSaW5ncy8qfS9pbXBvcnRKb2Jz2kEGcGFyZW50Eo8BCgpHZXRL", - "ZXlSaW5nEiYuZ29vZ2xlLmNsb3VkLmttcy52MS5HZXRLZXlSaW5nUmVxdWVz", - "dBocLmdvb2dsZS5jbG91ZC5rbXMudjEuS2V5UmluZyI7gtPkkwIuEiwvdjEv", - "e25hbWU9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8qfdpBBG5h", - "bWUSogEKDEdldENyeXB0b0tleRIoLmdvb2dsZS5jbG91ZC5rbXMudjEuR2V0", - "Q3J5cHRvS2V5UmVxdWVzdBoeLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRv", - "S2V5IkiC0+STAjsSOS92MS97bmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8q", - "L2tleVJpbmdzLyovY3J5cHRvS2V5cy8qfdpBBG5hbWUSywEKE0dldENyeXB0", - "b0tleVZlcnNpb24SLy5nb29nbGUuY2xvdWQua21zLnYxLkdldENyeXB0b0tl", - "eVZlcnNpb25SZXF1ZXN0GiUuZ29vZ2xlLmNsb3VkLmttcy52MS5DcnlwdG9L", - "ZXlWZXJzaW9uIlyC0+STAk8STS92MS97bmFtZT1wcm9qZWN0cy8qL2xvY2F0", - "aW9ucy8qL2tleVJpbmdzLyovY3J5cHRvS2V5cy8qL2NyeXB0b0tleVZlcnNp", - "b25zLyp92kEEbmFtZRLAAQoMR2V0UHVibGljS2V5EiguZ29vZ2xlLmNsb3Vk", - "Lmttcy52MS5HZXRQdWJsaWNLZXlSZXF1ZXN0Gh4uZ29vZ2xlLmNsb3VkLmtt", - "cy52MS5QdWJsaWNLZXkiZoLT5JMCWRJXL3YxL3tuYW1lPXByb2plY3RzLyov", - "bG9jYXRpb25zLyova2V5UmluZ3MvKi9jcnlwdG9LZXlzLyovY3J5cHRvS2V5", - "VmVyc2lvbnMvKn0vcHVibGljS2V52kEEbmFtZRKiAQoMR2V0SW1wb3J0Sm9i", - "EiguZ29vZ2xlLmNsb3VkLmttcy52MS5HZXRJbXBvcnRKb2JSZXF1ZXN0Gh4u", - "Z29vZ2xlLmNsb3VkLmttcy52MS5JbXBvcnRKb2IiSILT5JMCOxI5L3YxL3tu", - "YW1lPXByb2plY3RzLyovbG9jYXRpb25zLyova2V5UmluZ3MvKi9pbXBvcnRK", - "b2JzLyp92kEEbmFtZRK2AQoNQ3JlYXRlS2V5UmluZxIpLmdvb2dsZS5jbG91", - "ZC5rbXMudjEuQ3JlYXRlS2V5UmluZ1JlcXVlc3QaHC5nb29nbGUuY2xvdWQu", - "a21zLnYxLktleVJpbmciXILT5JMCOCIsL3YxL3twYXJlbnQ9cHJvamVjdHMv", - "Ki9sb2NhdGlvbnMvKn0va2V5UmluZ3M6CGtleV9yaW5n2kEbcGFyZW50LGtl", - "eV9yaW5nX2lkLGtleV9yaW5nEs8BCg9DcmVhdGVDcnlwdG9LZXkSKy5nb29n", - "bGUuY2xvdWQua21zLnYxLkNyZWF0ZUNyeXB0b0tleVJlcXVlc3QaHi5nb29n", - "bGUuY2xvdWQua21zLnYxLkNyeXB0b0tleSJvgtPkkwJHIjkvdjEve3BhcmVu", - "dD1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL2tleVJpbmdzLyp9L2NyeXB0b0tl", - "eXM6CmNyeXB0b19rZXnaQR9wYXJlbnQsY3J5cHRvX2tleV9pZCxjcnlwdG9f", - "a2V5EvsBChZDcmVhdGVDcnlwdG9LZXlWZXJzaW9uEjIuZ29vZ2xlLmNsb3Vk", - "Lmttcy52MS5DcmVhdGVDcnlwdG9LZXlWZXJzaW9uUmVxdWVzdBolLmdvb2ds", - "ZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5VmVyc2lvbiKFAYLT5JMCYyJNL3Yx", - "L3twYXJlbnQ9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8qL2Ny", - "eXB0b0tleXMvKn0vY3J5cHRvS2V5VmVyc2lvbnM6EmNyeXB0b19rZXlfdmVy", - "c2lvbtpBGXBhcmVudCxjcnlwdG9fa2V5X3ZlcnNpb24S1AEKFkltcG9ydENy", - "eXB0b0tleVZlcnNpb24SMi5nb29nbGUuY2xvdWQua21zLnYxLkltcG9ydENy", - "eXB0b0tleVZlcnNpb25SZXF1ZXN0GiUuZ29vZ2xlLmNsb3VkLmttcy52MS5D", - "cnlwdG9LZXlWZXJzaW9uIl+C0+STAlkiVC92MS97cGFyZW50PXByb2plY3Rz", - "LyovbG9jYXRpb25zLyova2V5UmluZ3MvKi9jcnlwdG9LZXlzLyp9L2NyeXB0", - "b0tleVZlcnNpb25zOmltcG9ydDoBKhLPAQoPQ3JlYXRlSW1wb3J0Sm9iEisu", - "Z29vZ2xlLmNsb3VkLmttcy52MS5DcmVhdGVJbXBvcnRKb2JSZXF1ZXN0Gh4u", - "Z29vZ2xlLmNsb3VkLmttcy52MS5JbXBvcnRKb2Iib4LT5JMCRyI5L3YxL3tw", - "YXJlbnQ9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8qfS9pbXBv", - "cnRKb2JzOgppbXBvcnRfam9i2kEfcGFyZW50LGltcG9ydF9qb2JfaWQsaW1w", - "b3J0X2pvYhLRAQoPVXBkYXRlQ3J5cHRvS2V5EisuZ29vZ2xlLmNsb3VkLmtt", - "cy52MS5VcGRhdGVDcnlwdG9LZXlSZXF1ZXN0Gh4uZ29vZ2xlLmNsb3VkLmtt", - "cy52MS5DcnlwdG9LZXkicYLT5JMCUjJEL3YxL3tjcnlwdG9fa2V5Lm5hbWU9", - "cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8qL2NyeXB0b0tleXMv", - "Kn06CmNyeXB0b19rZXnaQRZjcnlwdG9fa2V5LHVwZGF0ZV9tYXNrEpMCChZV", - "cGRhdGVDcnlwdG9LZXlWZXJzaW9uEjIuZ29vZ2xlLmNsb3VkLmttcy52MS5V", - "cGRhdGVDcnlwdG9LZXlWZXJzaW9uUmVxdWVzdBolLmdvb2dsZS5jbG91ZC5r", - "bXMudjEuQ3J5cHRvS2V5VmVyc2lvbiKdAYLT5JMCdjJgL3YxL3tjcnlwdG9f", - "a2V5X3ZlcnNpb24ubmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL2tleVJp", - "bmdzLyovY3J5cHRvS2V5cy8qL2NyeXB0b0tleVZlcnNpb25zLyp9OhJjcnlw", - "dG9fa2V5X3ZlcnNpb27aQR5jcnlwdG9fa2V5X3ZlcnNpb24sdXBkYXRlX21h", - "c2sStAEKB0VuY3J5cHQSIy5nb29nbGUuY2xvdWQua21zLnYxLkVuY3J5cHRS", - "ZXF1ZXN0GiQuZ29vZ2xlLmNsb3VkLmttcy52MS5FbmNyeXB0UmVzcG9uc2Ui", - "XoLT5JMCRyJCL3YxL3tuYW1lPXByb2plY3RzLyovbG9jYXRpb25zLyova2V5", - "UmluZ3MvKi9jcnlwdG9LZXlzLyoqfTplbmNyeXB0OgEq2kEObmFtZSxwbGFp", - "bnRleHQStAEKB0RlY3J5cHQSIy5nb29nbGUuY2xvdWQua21zLnYxLkRlY3J5", - "cHRSZXF1ZXN0GiQuZ29vZ2xlLmNsb3VkLmttcy52MS5EZWNyeXB0UmVzcG9u", - "c2UiXoLT5JMCRiJBL3YxL3tuYW1lPXByb2plY3RzLyovbG9jYXRpb25zLyov", - "a2V5UmluZ3MvKi9jcnlwdG9LZXlzLyp9OmRlY3J5cHQ6ASraQQ9uYW1lLGNp", - "cGhlcnRleHQS4AEKDkFzeW1tZXRyaWNTaWduEiouZ29vZ2xlLmNsb3VkLmtt", - "cy52MS5Bc3ltbWV0cmljU2lnblJlcXVlc3QaKy5nb29nbGUuY2xvdWQua21z", - "LnYxLkFzeW1tZXRyaWNTaWduUmVzcG9uc2UidYLT5JMCYSJcL3YxL3tuYW1l", - "PXByb2plY3RzLyovbG9jYXRpb25zLyova2V5UmluZ3MvKi9jcnlwdG9LZXlz", - "LyovY3J5cHRvS2V5VmVyc2lvbnMvKn06YXN5bW1ldHJpY1NpZ246ASraQQtu", - "YW1lLGRpZ2VzdBLwAQoRQXN5bW1ldHJpY0RlY3J5cHQSLS5nb29nbGUuY2xv", - "dWQua21zLnYxLkFzeW1tZXRyaWNEZWNyeXB0UmVxdWVzdBouLmdvb2dsZS5j", - "bG91ZC5rbXMudjEuQXN5bW1ldHJpY0RlY3J5cHRSZXNwb25zZSJ8gtPkkwJk", - "Il8vdjEve25hbWU9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8q", - "L2NyeXB0b0tleXMvKi9jcnlwdG9LZXlWZXJzaW9ucy8qfTphc3ltbWV0cmlj", - "RGVjcnlwdDoBKtpBD25hbWUsY2lwaGVydGV4dBLyAQodVXBkYXRlQ3J5cHRv", - "S2V5UHJpbWFyeVZlcnNpb24SOS5nb29nbGUuY2xvdWQua21zLnYxLlVwZGF0", - "ZUNyeXB0b0tleVByaW1hcnlWZXJzaW9uUmVxdWVzdBoeLmdvb2dsZS5jbG91", - "ZC5rbXMudjEuQ3J5cHRvS2V5InaC0+STAlMiTi92MS97bmFtZT1wcm9qZWN0", - "cy8qL2xvY2F0aW9ucy8qL2tleVJpbmdzLyovY3J5cHRvS2V5cy8qfTp1cGRh", - "dGVQcmltYXJ5VmVyc2lvbjoBKtpBGm5hbWUsY3J5cHRvX2tleV92ZXJzaW9u", - "X2lkEt4BChdEZXN0cm95Q3J5cHRvS2V5VmVyc2lvbhIzLmdvb2dsZS5jbG91", - "ZC5rbXMudjEuRGVzdHJveUNyeXB0b0tleVZlcnNpb25SZXF1ZXN0GiUuZ29v", - "Z2xlLmNsb3VkLmttcy52MS5DcnlwdG9LZXlWZXJzaW9uImeC0+STAloiVS92", - "MS97bmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL2tleVJpbmdzLyovY3J5", - "cHRvS2V5cy8qL2NyeXB0b0tleVZlcnNpb25zLyp9OmRlc3Ryb3k6ASraQQRu", - "YW1lEt4BChdSZXN0b3JlQ3J5cHRvS2V5VmVyc2lvbhIzLmdvb2dsZS5jbG91", - "ZC5rbXMudjEuUmVzdG9yZUNyeXB0b0tleVZlcnNpb25SZXF1ZXN0GiUuZ29v", - "Z2xlLmNsb3VkLmttcy52MS5DcnlwdG9LZXlWZXJzaW9uImeC0+STAloiVS92", + "cHRvS2V5VmVyc2lvbiJOChNHZXRJbXBvcnRKb2JSZXF1ZXN0EjcKBG5hbWUY", + "ASABKAlCKeBBAvpBIwohY2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20vSW1wb3J0", + "Sm9iIqABChRDcmVhdGVLZXlSaW5nUmVxdWVzdBI5CgZwYXJlbnQYASABKAlC", + "KeBBAvpBIwohbG9jYXRpb25zLmdvb2dsZWFwaXMuY29tL0xvY2F0aW9uEhgK", + "C2tleV9yaW5nX2lkGAIgASgJQgPgQQISMwoIa2V5X3JpbmcYAyABKAsyHC5n", + "b29nbGUuY2xvdWQua21zLnYxLktleVJpbmdCA+BBAiLNAQoWQ3JlYXRlQ3J5", + "cHRvS2V5UmVxdWVzdBI3CgZwYXJlbnQYASABKAlCJ+BBAvpBIQofY2xvdWRr", + "bXMuZ29vZ2xlYXBpcy5jb20vS2V5UmluZxIaCg1jcnlwdG9fa2V5X2lkGAIg", + "ASgJQgPgQQISNwoKY3J5cHRvX2tleRgDIAEoCzIeLmdvb2dsZS5jbG91ZC5r", + "bXMudjEuQ3J5cHRvS2V5QgPgQQISJQodc2tpcF9pbml0aWFsX3ZlcnNpb25f", + "Y3JlYXRpb24YBSABKAgiogEKHUNyZWF0ZUNyeXB0b0tleVZlcnNpb25SZXF1", + "ZXN0EjkKBnBhcmVudBgBIAEoCUIp4EEC+kEjCiFjbG91ZGttcy5nb29nbGVh", + "cGlzLmNvbS9DcnlwdG9LZXkSRgoSY3J5cHRvX2tleV92ZXJzaW9uGAIgASgL", + "MiUuZ29vZ2xlLmNsb3VkLmttcy52MS5DcnlwdG9LZXlWZXJzaW9uQgPgQQIi", + "gwIKHUltcG9ydENyeXB0b0tleVZlcnNpb25SZXF1ZXN0EjkKBnBhcmVudBgB", + "IAEoCUIp4EEC+kEjCiFjbG91ZGttcy5nb29nbGVhcGlzLmNvbS9DcnlwdG9L", + "ZXkSVwoJYWxnb3JpdGhtGAIgASgOMj8uZ29vZ2xlLmNsb3VkLmttcy52MS5D", + "cnlwdG9LZXlWZXJzaW9uLkNyeXB0b0tleVZlcnNpb25BbGdvcml0aG1CA+BB", + "AhIXCgppbXBvcnRfam9iGAQgASgJQgPgQQISHQoTcnNhX2Flc193cmFwcGVk", + "X2tleRgFIAEoDEgAQhYKFHdyYXBwZWRfa2V5X21hdGVyaWFsIqYBChZDcmVh", + "dGVJbXBvcnRKb2JSZXF1ZXN0EjcKBnBhcmVudBgBIAEoCUIn4EEC+kEhCh9j", + "bG91ZGttcy5nb29nbGVhcGlzLmNvbS9LZXlSaW5nEhoKDWltcG9ydF9qb2Jf", + "aWQYAiABKAlCA+BBAhI3CgppbXBvcnRfam9iGAMgASgLMh4uZ29vZ2xlLmNs", + "b3VkLmttcy52MS5JbXBvcnRKb2JCA+BBAiKHAQoWVXBkYXRlQ3J5cHRvS2V5", + "UmVxdWVzdBI3CgpjcnlwdG9fa2V5GAEgASgLMh4uZ29vZ2xlLmNsb3VkLmtt", + "cy52MS5DcnlwdG9LZXlCA+BBAhI0Cgt1cGRhdGVfbWFzaxgCIAEoCzIaLmdv", + "b2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCA+BBAiKdAQodVXBkYXRlQ3J5cHRv", + "S2V5VmVyc2lvblJlcXVlc3QSRgoSY3J5cHRvX2tleV92ZXJzaW9uGAEgASgL", + "MiUuZ29vZ2xlLmNsb3VkLmttcy52MS5DcnlwdG9LZXlWZXJzaW9uQgPgQQIS", + "NAoLdXBkYXRlX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRN", + "YXNrQgPgQQIi+QEKDkVuY3J5cHRSZXF1ZXN0EhcKBG5hbWUYASABKAlCCeBB", + "AvpBAwoBKhIWCglwbGFpbnRleHQYAiABKAxCA+BBAhIqCh1hZGRpdGlvbmFs", + "X2F1dGhlbnRpY2F0ZWRfZGF0YRgDIAEoDEID4EEBEjoKEHBsYWludGV4dF9j", + "cmMzMmMYByABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZUID4EEB", + "Ek4KJGFkZGl0aW9uYWxfYXV0aGVudGljYXRlZF9kYXRhX2NyYzMyYxgIIAEo", + "CzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlQgPgQQEimwIKDkRlY3J5", + "cHRSZXF1ZXN0EjcKBG5hbWUYASABKAlCKeBBAvpBIwohY2xvdWRrbXMuZ29v", + "Z2xlYXBpcy5jb20vQ3J5cHRvS2V5EhcKCmNpcGhlcnRleHQYAiABKAxCA+BB", + "AhIqCh1hZGRpdGlvbmFsX2F1dGhlbnRpY2F0ZWRfZGF0YRgDIAEoDEID4EEB", + "EjsKEWNpcGhlcnRleHRfY3JjMzJjGAUgASgLMhsuZ29vZ2xlLnByb3RvYnVm", + "LkludDY0VmFsdWVCA+BBARJOCiRhZGRpdGlvbmFsX2F1dGhlbnRpY2F0ZWRf", + "ZGF0YV9jcmMzMmMYBiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1", + "ZUID4EEBIsIBChVBc3ltbWV0cmljU2lnblJlcXVlc3QSPgoEbmFtZRgBIAEo", + "CUIw4EEC+kEqCihjbG91ZGttcy5nb29nbGVhcGlzLmNvbS9DcnlwdG9LZXlW", + "ZXJzaW9uEjAKBmRpZ2VzdBgDIAEoCzIbLmdvb2dsZS5jbG91ZC5rbXMudjEu", + "RGlnZXN0QgPgQQISNwoNZGlnZXN0X2NyYzMyYxgEIAEoCzIbLmdvb2dsZS5w", + "cm90b2J1Zi5JbnQ2NFZhbHVlQgPgQQEisAEKGEFzeW1tZXRyaWNEZWNyeXB0", + "UmVxdWVzdBI+CgRuYW1lGAEgASgJQjDgQQL6QSoKKGNsb3Vka21zLmdvb2ds", + "ZWFwaXMuY29tL0NyeXB0b0tleVZlcnNpb24SFwoKY2lwaGVydGV4dBgDIAEo", + "DEID4EECEjsKEWNpcGhlcnRleHRfY3JjMzJjGAQgASgLMhsuZ29vZ2xlLnBy", + "b3RvYnVmLkludDY0VmFsdWVCA+BBASJbCg9EZWNyeXB0UmVzcG9uc2USEQoJ", + "cGxhaW50ZXh0GAEgASgMEjUKEHBsYWludGV4dF9jcmMzMmMYAiABKAsyGy5n", + "b29nbGUucHJvdG9idWYuSW50NjRWYWx1ZSLFAQoPRW5jcnlwdFJlc3BvbnNl", + "EgwKBG5hbWUYASABKAkSEgoKY2lwaGVydGV4dBgCIAEoDBI2ChFjaXBoZXJ0", + "ZXh0X2NyYzMyYxgEIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVl", + "EiEKGXZlcmlmaWVkX3BsYWludGV4dF9jcmMzMmMYBSABKAgSNQotdmVyaWZp", + "ZWRfYWRkaXRpb25hbF9hdXRoZW50aWNhdGVkX2RhdGFfY3JjMzJjGAYgASgI", + "IpABChZBc3ltbWV0cmljU2lnblJlc3BvbnNlEhEKCXNpZ25hdHVyZRgBIAEo", + "DBI1ChBzaWduYXR1cmVfY3JjMzJjGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVm", + "LkludDY0VmFsdWUSHgoWdmVyaWZpZWRfZGlnZXN0X2NyYzMyYxgDIAEoCBIM", + "CgRuYW1lGAQgASgJIokBChlBc3ltbWV0cmljRGVjcnlwdFJlc3BvbnNlEhEK", + "CXBsYWludGV4dBgBIAEoDBI1ChBwbGFpbnRleHRfY3JjMzJjGAIgASgLMhsu", + "Z29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSIgoadmVyaWZpZWRfY2lwaGVy", + "dGV4dF9jcmMzMmMYAyABKAgigwEKJFVwZGF0ZUNyeXB0b0tleVByaW1hcnlW", + "ZXJzaW9uUmVxdWVzdBI3CgRuYW1lGAEgASgJQingQQL6QSMKIWNsb3Vka21z", + "Lmdvb2dsZWFwaXMuY29tL0NyeXB0b0tleRIiChVjcnlwdG9fa2V5X3ZlcnNp", + "b25faWQYAiABKAlCA+BBAiJgCh5EZXN0cm95Q3J5cHRvS2V5VmVyc2lvblJl", + "cXVlc3QSPgoEbmFtZRgBIAEoCUIw4EEC+kEqCihjbG91ZGttcy5nb29nbGVh", + "cGlzLmNvbS9DcnlwdG9LZXlWZXJzaW9uImAKHlJlc3RvcmVDcnlwdG9LZXlW", + "ZXJzaW9uUmVxdWVzdBI+CgRuYW1lGAEgASgJQjDgQQL6QSoKKGNsb3Vka21z", + "Lmdvb2dsZWFwaXMuY29tL0NyeXB0b0tleVZlcnNpb24iSAoGRGlnZXN0EhAK", + "BnNoYTI1NhgBIAEoDEgAEhAKBnNoYTM4NBgCIAEoDEgAEhAKBnNoYTUxMhgD", + "IAEoDEgAQggKBmRpZ2VzdCJAChBMb2NhdGlvbk1ldGFkYXRhEhUKDWhzbV9h", + "dmFpbGFibGUYASABKAgSFQoNZWttX2F2YWlsYWJsZRgCIAEoCDKGJgoUS2V5", + "TWFuYWdlbWVudFNlcnZpY2USogEKDExpc3RLZXlSaW5ncxIoLmdvb2dsZS5j", + "bG91ZC5rbXMudjEuTGlzdEtleVJpbmdzUmVxdWVzdBopLmdvb2dsZS5jbG91", + "ZC5rbXMudjEuTGlzdEtleVJpbmdzUmVzcG9uc2UiPYLT5JMCLhIsL3YxL3tw", + "YXJlbnQ9cHJvamVjdHMvKi9sb2NhdGlvbnMvKn0va2V5UmluZ3PaQQZwYXJl", + "bnQStQEKDkxpc3RDcnlwdG9LZXlzEiouZ29vZ2xlLmNsb3VkLmttcy52MS5M", + "aXN0Q3J5cHRvS2V5c1JlcXVlc3QaKy5nb29nbGUuY2xvdWQua21zLnYxLkxp", + "c3RDcnlwdG9LZXlzUmVzcG9uc2UiSoLT5JMCOxI5L3YxL3twYXJlbnQ9cHJv", + "amVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8qfS9jcnlwdG9LZXlz2kEG", + "cGFyZW50Et4BChVMaXN0Q3J5cHRvS2V5VmVyc2lvbnMSMS5nb29nbGUuY2xv", + "dWQua21zLnYxLkxpc3RDcnlwdG9LZXlWZXJzaW9uc1JlcXVlc3QaMi5nb29n", + "bGUuY2xvdWQua21zLnYxLkxpc3RDcnlwdG9LZXlWZXJzaW9uc1Jlc3BvbnNl", + "Il6C0+STAk8STS92MS97cGFyZW50PXByb2plY3RzLyovbG9jYXRpb25zLyov", + "a2V5UmluZ3MvKi9jcnlwdG9LZXlzLyp9L2NyeXB0b0tleVZlcnNpb25z2kEG", + "cGFyZW50ErUBCg5MaXN0SW1wb3J0Sm9icxIqLmdvb2dsZS5jbG91ZC5rbXMu", + "djEuTGlzdEltcG9ydEpvYnNSZXF1ZXN0GisuZ29vZ2xlLmNsb3VkLmttcy52", + "MS5MaXN0SW1wb3J0Sm9ic1Jlc3BvbnNlIkqC0+STAjsSOS92MS97cGFyZW50", + "PXByb2plY3RzLyovbG9jYXRpb25zLyova2V5UmluZ3MvKn0vaW1wb3J0Sm9i", + "c9pBBnBhcmVudBKPAQoKR2V0S2V5UmluZxImLmdvb2dsZS5jbG91ZC5rbXMu", + "djEuR2V0S2V5UmluZ1JlcXVlc3QaHC5nb29nbGUuY2xvdWQua21zLnYxLktl", + "eVJpbmciO4LT5JMCLhIsL3YxL3tuYW1lPXByb2plY3RzLyovbG9jYXRpb25z", + "Lyova2V5UmluZ3MvKn3aQQRuYW1lEqIBCgxHZXRDcnlwdG9LZXkSKC5nb29n", + "bGUuY2xvdWQua21zLnYxLkdldENyeXB0b0tleVJlcXVlc3QaHi5nb29nbGUu", + "Y2xvdWQua21zLnYxLkNyeXB0b0tleSJIgtPkkwI7EjkvdjEve25hbWU9cHJv", + "amVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8qL2NyeXB0b0tleXMvKn3a", + "QQRuYW1lEssBChNHZXRDcnlwdG9LZXlWZXJzaW9uEi8uZ29vZ2xlLmNsb3Vk", + "Lmttcy52MS5HZXRDcnlwdG9LZXlWZXJzaW9uUmVxdWVzdBolLmdvb2dsZS5j", + "bG91ZC5rbXMudjEuQ3J5cHRvS2V5VmVyc2lvbiJcgtPkkwJPEk0vdjEve25h", + "bWU9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8qL2NyeXB0b0tl", + "eXMvKi9jcnlwdG9LZXlWZXJzaW9ucy8qfdpBBG5hbWUSwAEKDEdldFB1Ymxp", + "Y0tleRIoLmdvb2dsZS5jbG91ZC5rbXMudjEuR2V0UHVibGljS2V5UmVxdWVz", + "dBoeLmdvb2dsZS5jbG91ZC5rbXMudjEuUHVibGljS2V5ImaC0+STAlkSVy92", "MS97bmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL2tleVJpbmdzLyovY3J5", - "cHRvS2V5cy8qL2NyeXB0b0tleVZlcnNpb25zLyp9OnJlc3RvcmU6ASraQQRu", - "YW1lGnTKQRdjbG91ZGttcy5nb29nbGVhcGlzLmNvbdJBV2h0dHBzOi8vd3d3", - "Lmdvb2dsZWFwaXMuY29tL2F1dGgvY2xvdWQtcGxhdGZvcm0saHR0cHM6Ly93", - "d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9jbG91ZGttc0KMAQoXY29tLmdvb2ds", - "ZS5jbG91ZC5rbXMudjFCCEttc1Byb3RvUAFaNmdvb2dsZS5nb2xhbmcub3Jn", - "L2dlbnByb3RvL2dvb2dsZWFwaXMvY2xvdWQva21zL3YxO2ttc/gBAaoCE0dv", - "b2dsZS5DbG91ZC5LbXMuVjHKAhNHb29nbGVcQ2xvdWRcS21zXFYxYgZwcm90", - "bzM=")); + "cHRvS2V5cy8qL2NyeXB0b0tleVZlcnNpb25zLyp9L3B1YmxpY0tledpBBG5h", + "bWUSogEKDEdldEltcG9ydEpvYhIoLmdvb2dsZS5jbG91ZC5rbXMudjEuR2V0", + "SW1wb3J0Sm9iUmVxdWVzdBoeLmdvb2dsZS5jbG91ZC5rbXMudjEuSW1wb3J0", + "Sm9iIkiC0+STAjsSOS92MS97bmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8q", + "L2tleVJpbmdzLyovaW1wb3J0Sm9icy8qfdpBBG5hbWUStgEKDUNyZWF0ZUtl", + "eVJpbmcSKS5nb29nbGUuY2xvdWQua21zLnYxLkNyZWF0ZUtleVJpbmdSZXF1", + "ZXN0GhwuZ29vZ2xlLmNsb3VkLmttcy52MS5LZXlSaW5nIlyC0+STAjgiLC92", + "MS97cGFyZW50PXByb2plY3RzLyovbG9jYXRpb25zLyp9L2tleVJpbmdzOghr", + "ZXlfcmluZ9pBG3BhcmVudCxrZXlfcmluZ19pZCxrZXlfcmluZxLPAQoPQ3Jl", + "YXRlQ3J5cHRvS2V5EisuZ29vZ2xlLmNsb3VkLmttcy52MS5DcmVhdGVDcnlw", + "dG9LZXlSZXF1ZXN0Gh4uZ29vZ2xlLmNsb3VkLmttcy52MS5DcnlwdG9LZXki", + "b4LT5JMCRyI5L3YxL3twYXJlbnQ9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9r", + "ZXlSaW5ncy8qfS9jcnlwdG9LZXlzOgpjcnlwdG9fa2V52kEfcGFyZW50LGNy", + "eXB0b19rZXlfaWQsY3J5cHRvX2tleRL7AQoWQ3JlYXRlQ3J5cHRvS2V5VmVy", + "c2lvbhIyLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3JlYXRlQ3J5cHRvS2V5VmVy", + "c2lvblJlcXVlc3QaJS5nb29nbGUuY2xvdWQua21zLnYxLkNyeXB0b0tleVZl", + "cnNpb24ihQGC0+STAmMiTS92MS97cGFyZW50PXByb2plY3RzLyovbG9jYXRp", + "b25zLyova2V5UmluZ3MvKi9jcnlwdG9LZXlzLyp9L2NyeXB0b0tleVZlcnNp", + "b25zOhJjcnlwdG9fa2V5X3ZlcnNpb27aQRlwYXJlbnQsY3J5cHRvX2tleV92", + "ZXJzaW9uEtQBChZJbXBvcnRDcnlwdG9LZXlWZXJzaW9uEjIuZ29vZ2xlLmNs", + "b3VkLmttcy52MS5JbXBvcnRDcnlwdG9LZXlWZXJzaW9uUmVxdWVzdBolLmdv", + "b2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5VmVyc2lvbiJfgtPkkwJZIlQv", + "djEve3BhcmVudD1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL2tleVJpbmdzLyov", + "Y3J5cHRvS2V5cy8qfS9jcnlwdG9LZXlWZXJzaW9uczppbXBvcnQ6ASoSzwEK", + "D0NyZWF0ZUltcG9ydEpvYhIrLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3JlYXRl", + "SW1wb3J0Sm9iUmVxdWVzdBoeLmdvb2dsZS5jbG91ZC5rbXMudjEuSW1wb3J0", + "Sm9iIm+C0+STAkciOS92MS97cGFyZW50PXByb2plY3RzLyovbG9jYXRpb25z", + "Lyova2V5UmluZ3MvKn0vaW1wb3J0Sm9iczoKaW1wb3J0X2pvYtpBH3BhcmVu", + "dCxpbXBvcnRfam9iX2lkLGltcG9ydF9qb2IS0QEKD1VwZGF0ZUNyeXB0b0tl", + "eRIrLmdvb2dsZS5jbG91ZC5rbXMudjEuVXBkYXRlQ3J5cHRvS2V5UmVxdWVz", + "dBoeLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5InGC0+STAlIyRC92", + "MS97Y3J5cHRvX2tleS5uYW1lPXByb2plY3RzLyovbG9jYXRpb25zLyova2V5", + "UmluZ3MvKi9jcnlwdG9LZXlzLyp9OgpjcnlwdG9fa2V52kEWY3J5cHRvX2tl", + "eSx1cGRhdGVfbWFzaxKTAgoWVXBkYXRlQ3J5cHRvS2V5VmVyc2lvbhIyLmdv", + "b2dsZS5jbG91ZC5rbXMudjEuVXBkYXRlQ3J5cHRvS2V5VmVyc2lvblJlcXVl", + "c3QaJS5nb29nbGUuY2xvdWQua21zLnYxLkNyeXB0b0tleVZlcnNpb24inQGC", + "0+STAnYyYC92MS97Y3J5cHRvX2tleV92ZXJzaW9uLm5hbWU9cHJvamVjdHMv", + "Ki9sb2NhdGlvbnMvKi9rZXlSaW5ncy8qL2NyeXB0b0tleXMvKi9jcnlwdG9L", + "ZXlWZXJzaW9ucy8qfToSY3J5cHRvX2tleV92ZXJzaW9u2kEeY3J5cHRvX2tl", + "eV92ZXJzaW9uLHVwZGF0ZV9tYXNrErQBCgdFbmNyeXB0EiMuZ29vZ2xlLmNs", + "b3VkLmttcy52MS5FbmNyeXB0UmVxdWVzdBokLmdvb2dsZS5jbG91ZC5rbXMu", + "djEuRW5jcnlwdFJlc3BvbnNlIl6C0+STAkciQi92MS97bmFtZT1wcm9qZWN0", + "cy8qL2xvY2F0aW9ucy8qL2tleVJpbmdzLyovY3J5cHRvS2V5cy8qKn06ZW5j", + "cnlwdDoBKtpBDm5hbWUscGxhaW50ZXh0ErQBCgdEZWNyeXB0EiMuZ29vZ2xl", + "LmNsb3VkLmttcy52MS5EZWNyeXB0UmVxdWVzdBokLmdvb2dsZS5jbG91ZC5r", + "bXMudjEuRGVjcnlwdFJlc3BvbnNlIl6C0+STAkYiQS92MS97bmFtZT1wcm9q", + "ZWN0cy8qL2xvY2F0aW9ucy8qL2tleVJpbmdzLyovY3J5cHRvS2V5cy8qfTpk", + "ZWNyeXB0OgEq2kEPbmFtZSxjaXBoZXJ0ZXh0EuABCg5Bc3ltbWV0cmljU2ln", + "bhIqLmdvb2dsZS5jbG91ZC5rbXMudjEuQXN5bW1ldHJpY1NpZ25SZXF1ZXN0", + "GisuZ29vZ2xlLmNsb3VkLmttcy52MS5Bc3ltbWV0cmljU2lnblJlc3BvbnNl", + "InWC0+STAmEiXC92MS97bmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL2tl", + "eVJpbmdzLyovY3J5cHRvS2V5cy8qL2NyeXB0b0tleVZlcnNpb25zLyp9OmFz", + "eW1tZXRyaWNTaWduOgEq2kELbmFtZSxkaWdlc3QS8AEKEUFzeW1tZXRyaWNE", + "ZWNyeXB0Ei0uZ29vZ2xlLmNsb3VkLmttcy52MS5Bc3ltbWV0cmljRGVjcnlw", + "dFJlcXVlc3QaLi5nb29nbGUuY2xvdWQua21zLnYxLkFzeW1tZXRyaWNEZWNy", + "eXB0UmVzcG9uc2UifILT5JMCZCJfL3YxL3tuYW1lPXByb2plY3RzLyovbG9j", + "YXRpb25zLyova2V5UmluZ3MvKi9jcnlwdG9LZXlzLyovY3J5cHRvS2V5VmVy", + "c2lvbnMvKn06YXN5bW1ldHJpY0RlY3J5cHQ6ASraQQ9uYW1lLGNpcGhlcnRl", + "eHQS8gEKHVVwZGF0ZUNyeXB0b0tleVByaW1hcnlWZXJzaW9uEjkuZ29vZ2xl", + "LmNsb3VkLmttcy52MS5VcGRhdGVDcnlwdG9LZXlQcmltYXJ5VmVyc2lvblJl", + "cXVlc3QaHi5nb29nbGUuY2xvdWQua21zLnYxLkNyeXB0b0tleSJ2gtPkkwJT", + "Ik4vdjEve25hbWU9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9rZXlSaW5ncy8q", + "L2NyeXB0b0tleXMvKn06dXBkYXRlUHJpbWFyeVZlcnNpb246ASraQRpuYW1l", + "LGNyeXB0b19rZXlfdmVyc2lvbl9pZBLeAQoXRGVzdHJveUNyeXB0b0tleVZl", + "cnNpb24SMy5nb29nbGUuY2xvdWQua21zLnYxLkRlc3Ryb3lDcnlwdG9LZXlW", + "ZXJzaW9uUmVxdWVzdBolLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5", + "VmVyc2lvbiJngtPkkwJaIlUvdjEve25hbWU9cHJvamVjdHMvKi9sb2NhdGlv", + "bnMvKi9rZXlSaW5ncy8qL2NyeXB0b0tleXMvKi9jcnlwdG9LZXlWZXJzaW9u", + "cy8qfTpkZXN0cm95OgEq2kEEbmFtZRLeAQoXUmVzdG9yZUNyeXB0b0tleVZl", + "cnNpb24SMy5nb29nbGUuY2xvdWQua21zLnYxLlJlc3RvcmVDcnlwdG9LZXlW", + "ZXJzaW9uUmVxdWVzdBolLmdvb2dsZS5jbG91ZC5rbXMudjEuQ3J5cHRvS2V5", + "VmVyc2lvbiJngtPkkwJaIlUvdjEve25hbWU9cHJvamVjdHMvKi9sb2NhdGlv", + "bnMvKi9rZXlSaW5ncy8qL2NyeXB0b0tleXMvKi9jcnlwdG9LZXlWZXJzaW9u", + "cy8qfTpyZXN0b3JlOgEq2kEEbmFtZRp0ykEXY2xvdWRrbXMuZ29vZ2xlYXBp", + "cy5jb23SQVdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2Nsb3Vk", + "LXBsYXRmb3JtLGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvY2xv", + "dWRrbXNCjAEKF2NvbS5nb29nbGUuY2xvdWQua21zLnYxQghLbXNQcm90b1AB", + "WjZnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2Nsb3Vk", + "L2ttcy92MTtrbXP4AQGqAhNHb29nbGUuQ2xvdWQuS21zLlYxygITR29vZ2xl", + "XENsb3VkXEttc1xWMWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.Cloud.Kms.V1.ResourcesReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.Cloud.Kms.V1.ResourcesReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.ListKeyRingsRequest), global::Google.Cloud.Kms.V1.ListKeyRingsRequest.Parser, new[]{ "Parent", "PageSize", "PageToken", "Filter", "OrderBy" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.ListCryptoKeysRequest), global::Google.Cloud.Kms.V1.ListCryptoKeysRequest.Parser, new[]{ "Parent", "PageSize", "PageToken", "VersionView", "Filter", "OrderBy" }, null, null, null, null), @@ -259,14 +277,14 @@ public static partial class ServiceReflection { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.CreateImportJobRequest), global::Google.Cloud.Kms.V1.CreateImportJobRequest.Parser, new[]{ "Parent", "ImportJobId", "ImportJob" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.UpdateCryptoKeyRequest), global::Google.Cloud.Kms.V1.UpdateCryptoKeyRequest.Parser, new[]{ "CryptoKey", "UpdateMask" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.UpdateCryptoKeyVersionRequest), global::Google.Cloud.Kms.V1.UpdateCryptoKeyVersionRequest.Parser, new[]{ "CryptoKeyVersion", "UpdateMask" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.EncryptRequest), global::Google.Cloud.Kms.V1.EncryptRequest.Parser, new[]{ "Name", "Plaintext", "AdditionalAuthenticatedData" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.DecryptRequest), global::Google.Cloud.Kms.V1.DecryptRequest.Parser, new[]{ "Name", "Ciphertext", "AdditionalAuthenticatedData" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.AsymmetricSignRequest), global::Google.Cloud.Kms.V1.AsymmetricSignRequest.Parser, new[]{ "Name", "Digest" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.AsymmetricDecryptRequest), global::Google.Cloud.Kms.V1.AsymmetricDecryptRequest.Parser, new[]{ "Name", "Ciphertext" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.DecryptResponse), global::Google.Cloud.Kms.V1.DecryptResponse.Parser, new[]{ "Plaintext" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.EncryptResponse), global::Google.Cloud.Kms.V1.EncryptResponse.Parser, new[]{ "Name", "Ciphertext" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.AsymmetricSignResponse), global::Google.Cloud.Kms.V1.AsymmetricSignResponse.Parser, new[]{ "Signature" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.AsymmetricDecryptResponse), global::Google.Cloud.Kms.V1.AsymmetricDecryptResponse.Parser, new[]{ "Plaintext" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.EncryptRequest), global::Google.Cloud.Kms.V1.EncryptRequest.Parser, new[]{ "Name", "Plaintext", "AdditionalAuthenticatedData", "PlaintextCrc32C", "AdditionalAuthenticatedDataCrc32C" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.DecryptRequest), global::Google.Cloud.Kms.V1.DecryptRequest.Parser, new[]{ "Name", "Ciphertext", "AdditionalAuthenticatedData", "CiphertextCrc32C", "AdditionalAuthenticatedDataCrc32C" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.AsymmetricSignRequest), global::Google.Cloud.Kms.V1.AsymmetricSignRequest.Parser, new[]{ "Name", "Digest", "DigestCrc32C" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.AsymmetricDecryptRequest), global::Google.Cloud.Kms.V1.AsymmetricDecryptRequest.Parser, new[]{ "Name", "Ciphertext", "CiphertextCrc32C" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.DecryptResponse), global::Google.Cloud.Kms.V1.DecryptResponse.Parser, new[]{ "Plaintext", "PlaintextCrc32C" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.EncryptResponse), global::Google.Cloud.Kms.V1.EncryptResponse.Parser, new[]{ "Name", "Ciphertext", "CiphertextCrc32C", "VerifiedPlaintextCrc32C", "VerifiedAdditionalAuthenticatedDataCrc32C" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.AsymmetricSignResponse), global::Google.Cloud.Kms.V1.AsymmetricSignResponse.Parser, new[]{ "Signature", "SignatureCrc32C", "VerifiedDigestCrc32C", "Name" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.AsymmetricDecryptResponse), global::Google.Cloud.Kms.V1.AsymmetricDecryptResponse.Parser, new[]{ "Plaintext", "PlaintextCrc32C", "VerifiedCiphertextCrc32C" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.UpdateCryptoKeyPrimaryVersionRequest), global::Google.Cloud.Kms.V1.UpdateCryptoKeyPrimaryVersionRequest.Parser, new[]{ "Name", "CryptoKeyVersionId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.DestroyCryptoKeyVersionRequest), global::Google.Cloud.Kms.V1.DestroyCryptoKeyVersionRequest.Parser, new[]{ "Name" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Kms.V1.RestoreCryptoKeyVersionRequest), global::Google.Cloud.Kms.V1.RestoreCryptoKeyVersionRequest.Parser, new[]{ "Name" }, null, null, null, null), @@ -4352,6 +4370,8 @@ public sealed partial class EncryptRequest : pb::IMessage { name_ = other.name_; plaintext_ = other.plaintext_; additionalAuthenticatedData_ = other.additionalAuthenticatedData_; + PlaintextCrc32C = other.PlaintextCrc32C; + AdditionalAuthenticatedDataCrc32C = other.AdditionalAuthenticatedDataCrc32C; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -4421,6 +4441,67 @@ public sealed partial class EncryptRequest : pb::IMessage { } } + /// Field number for the "plaintext_crc32c" field. + public const int PlaintextCrc32CFieldNumber = 7; + private static readonly pb::FieldCodec _single_plaintextCrc32C_codec = pb::FieldCodec.ForStructWrapper(58); + private long? plaintextCrc32C_; + /// + /// Optional. An optional CRC32C checksum of the [EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]. If + /// specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the + /// received [EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext] using this checksum. + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification + /// fails. If you receive a checksum error, your client should verify that + /// CRC32C([EncryptRequest.plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]) is equal to + /// [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c], and if so, perform a limited number of + /// retries. A persistent mismatch may indicate an issue in your computation of + /// the CRC32C checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? PlaintextCrc32C { + get { return plaintextCrc32C_; } + set { + plaintextCrc32C_ = value; + } + } + + + /// Field number for the "additional_authenticated_data_crc32c" field. + public const int AdditionalAuthenticatedDataCrc32CFieldNumber = 8; + private static readonly pb::FieldCodec _single_additionalAuthenticatedDataCrc32C_codec = pb::FieldCodec.ForStructWrapper(66); + private long? additionalAuthenticatedDataCrc32C_; + /// + /// Optional. An optional CRC32C checksum of the + /// [EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]. If specified, + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the received + /// [EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data] using this checksum. + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification + /// fails. If you receive a checksum error, your client should verify that + /// CRC32C([EncryptRequest.additional_authenticated_data][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]) is equal to + /// [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c], and if so, perform + /// a limited number of retries. A persistent mismatch may indicate an issue in + /// your computation of the CRC32C checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? AdditionalAuthenticatedDataCrc32C { + get { return additionalAuthenticatedDataCrc32C_; } + set { + additionalAuthenticatedDataCrc32C_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as EncryptRequest); @@ -4437,6 +4518,8 @@ public sealed partial class EncryptRequest : pb::IMessage { if (Name != other.Name) return false; if (Plaintext != other.Plaintext) return false; if (AdditionalAuthenticatedData != other.AdditionalAuthenticatedData) return false; + if (PlaintextCrc32C != other.PlaintextCrc32C) return false; + if (AdditionalAuthenticatedDataCrc32C != other.AdditionalAuthenticatedDataCrc32C) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4446,6 +4529,8 @@ public sealed partial class EncryptRequest : pb::IMessage { if (Name.Length != 0) hash ^= Name.GetHashCode(); if (Plaintext.Length != 0) hash ^= Plaintext.GetHashCode(); if (AdditionalAuthenticatedData.Length != 0) hash ^= AdditionalAuthenticatedData.GetHashCode(); + if (plaintextCrc32C_ != null) hash ^= PlaintextCrc32C.GetHashCode(); + if (additionalAuthenticatedDataCrc32C_ != null) hash ^= AdditionalAuthenticatedDataCrc32C.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4471,6 +4556,12 @@ public sealed partial class EncryptRequest : pb::IMessage { output.WriteRawTag(26); output.WriteBytes(AdditionalAuthenticatedData); } + if (plaintextCrc32C_ != null) { + _single_plaintextCrc32C_codec.WriteTagAndValue(output, PlaintextCrc32C); + } + if (additionalAuthenticatedDataCrc32C_ != null) { + _single_additionalAuthenticatedDataCrc32C_codec.WriteTagAndValue(output, AdditionalAuthenticatedDataCrc32C); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -4488,6 +4579,12 @@ public sealed partial class EncryptRequest : pb::IMessage { if (AdditionalAuthenticatedData.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeBytesSize(AdditionalAuthenticatedData); } + if (plaintextCrc32C_ != null) { + size += _single_plaintextCrc32C_codec.CalculateSizeWithTag(PlaintextCrc32C); + } + if (additionalAuthenticatedDataCrc32C_ != null) { + size += _single_additionalAuthenticatedDataCrc32C_codec.CalculateSizeWithTag(AdditionalAuthenticatedDataCrc32C); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4508,6 +4605,16 @@ public sealed partial class EncryptRequest : pb::IMessage { if (other.AdditionalAuthenticatedData.Length != 0) { AdditionalAuthenticatedData = other.AdditionalAuthenticatedData; } + if (other.plaintextCrc32C_ != null) { + if (plaintextCrc32C_ == null || other.PlaintextCrc32C != 0L) { + PlaintextCrc32C = other.PlaintextCrc32C; + } + } + if (other.additionalAuthenticatedDataCrc32C_ != null) { + if (additionalAuthenticatedDataCrc32C_ == null || other.AdditionalAuthenticatedDataCrc32C != 0L) { + AdditionalAuthenticatedDataCrc32C = other.AdditionalAuthenticatedDataCrc32C; + } + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4531,6 +4638,20 @@ public sealed partial class EncryptRequest : pb::IMessage { AdditionalAuthenticatedData = input.ReadBytes(); break; } + case 58: { + long? value = _single_plaintextCrc32C_codec.Read(input); + if (plaintextCrc32C_ == null || value != 0L) { + PlaintextCrc32C = value; + } + break; + } + case 66: { + long? value = _single_additionalAuthenticatedDataCrc32C_codec.Read(input); + if (additionalAuthenticatedDataCrc32C_ == null || value != 0L) { + AdditionalAuthenticatedDataCrc32C = value; + } + break; + } } } } @@ -4568,6 +4689,8 @@ public sealed partial class DecryptRequest : pb::IMessage { name_ = other.name_; ciphertext_ = other.ciphertext_; additionalAuthenticatedData_ = other.additionalAuthenticatedData_; + CiphertextCrc32C = other.CiphertextCrc32C; + AdditionalAuthenticatedDataCrc32C = other.AdditionalAuthenticatedDataCrc32C; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -4621,6 +4744,67 @@ public sealed partial class DecryptRequest : pb::IMessage { } } + /// Field number for the "ciphertext_crc32c" field. + public const int CiphertextCrc32CFieldNumber = 5; + private static readonly pb::FieldCodec _single_ciphertextCrc32C_codec = pb::FieldCodec.ForStructWrapper(42); + private long? ciphertextCrc32C_; + /// + /// Optional. An optional CRC32C checksum of the [DecryptRequest.ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext]. If + /// specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the + /// received [DecryptRequest.ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext] using this checksum. + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification + /// fails. If you receive a checksum error, your client should verify that + /// CRC32C([DecryptRequest.ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext]) is equal to + /// [DecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.DecryptRequest.ciphertext_crc32c], and if so, perform a limited number + /// of retries. A persistent mismatch may indicate an issue in your computation + /// of the CRC32C checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? CiphertextCrc32C { + get { return ciphertextCrc32C_; } + set { + ciphertextCrc32C_ = value; + } + } + + + /// Field number for the "additional_authenticated_data_crc32c" field. + public const int AdditionalAuthenticatedDataCrc32CFieldNumber = 6; + private static readonly pb::FieldCodec _single_additionalAuthenticatedDataCrc32C_codec = pb::FieldCodec.ForStructWrapper(50); + private long? additionalAuthenticatedDataCrc32C_; + /// + /// Optional. An optional CRC32C checksum of the + /// [DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data]. If specified, + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the received + /// [DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data] using this checksum. + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification + /// fails. If you receive a checksum error, your client should verify that + /// CRC32C([DecryptRequest.additional_authenticated_data][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data]) is equal to + /// [DecryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.DecryptRequest.additional_authenticated_data_crc32c], and if so, perform + /// a limited number of retries. A persistent mismatch may indicate an issue in + /// your computation of the CRC32C checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? AdditionalAuthenticatedDataCrc32C { + get { return additionalAuthenticatedDataCrc32C_; } + set { + additionalAuthenticatedDataCrc32C_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as DecryptRequest); @@ -4637,6 +4821,8 @@ public sealed partial class DecryptRequest : pb::IMessage { if (Name != other.Name) return false; if (Ciphertext != other.Ciphertext) return false; if (AdditionalAuthenticatedData != other.AdditionalAuthenticatedData) return false; + if (CiphertextCrc32C != other.CiphertextCrc32C) return false; + if (AdditionalAuthenticatedDataCrc32C != other.AdditionalAuthenticatedDataCrc32C) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4646,6 +4832,8 @@ public sealed partial class DecryptRequest : pb::IMessage { if (Name.Length != 0) hash ^= Name.GetHashCode(); if (Ciphertext.Length != 0) hash ^= Ciphertext.GetHashCode(); if (AdditionalAuthenticatedData.Length != 0) hash ^= AdditionalAuthenticatedData.GetHashCode(); + if (ciphertextCrc32C_ != null) hash ^= CiphertextCrc32C.GetHashCode(); + if (additionalAuthenticatedDataCrc32C_ != null) hash ^= AdditionalAuthenticatedDataCrc32C.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4671,6 +4859,12 @@ public sealed partial class DecryptRequest : pb::IMessage { output.WriteRawTag(26); output.WriteBytes(AdditionalAuthenticatedData); } + if (ciphertextCrc32C_ != null) { + _single_ciphertextCrc32C_codec.WriteTagAndValue(output, CiphertextCrc32C); + } + if (additionalAuthenticatedDataCrc32C_ != null) { + _single_additionalAuthenticatedDataCrc32C_codec.WriteTagAndValue(output, AdditionalAuthenticatedDataCrc32C); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -4688,6 +4882,12 @@ public sealed partial class DecryptRequest : pb::IMessage { if (AdditionalAuthenticatedData.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeBytesSize(AdditionalAuthenticatedData); } + if (ciphertextCrc32C_ != null) { + size += _single_ciphertextCrc32C_codec.CalculateSizeWithTag(CiphertextCrc32C); + } + if (additionalAuthenticatedDataCrc32C_ != null) { + size += _single_additionalAuthenticatedDataCrc32C_codec.CalculateSizeWithTag(AdditionalAuthenticatedDataCrc32C); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4708,6 +4908,16 @@ public sealed partial class DecryptRequest : pb::IMessage { if (other.AdditionalAuthenticatedData.Length != 0) { AdditionalAuthenticatedData = other.AdditionalAuthenticatedData; } + if (other.ciphertextCrc32C_ != null) { + if (ciphertextCrc32C_ == null || other.CiphertextCrc32C != 0L) { + CiphertextCrc32C = other.CiphertextCrc32C; + } + } + if (other.additionalAuthenticatedDataCrc32C_ != null) { + if (additionalAuthenticatedDataCrc32C_ == null || other.AdditionalAuthenticatedDataCrc32C != 0L) { + AdditionalAuthenticatedDataCrc32C = other.AdditionalAuthenticatedDataCrc32C; + } + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4731,6 +4941,20 @@ public sealed partial class DecryptRequest : pb::IMessage { AdditionalAuthenticatedData = input.ReadBytes(); break; } + case 42: { + long? value = _single_ciphertextCrc32C_codec.Read(input); + if (ciphertextCrc32C_ == null || value != 0L) { + CiphertextCrc32C = value; + } + break; + } + case 50: { + long? value = _single_additionalAuthenticatedDataCrc32C_codec.Read(input); + if (additionalAuthenticatedDataCrc32C_ == null || value != 0L) { + AdditionalAuthenticatedDataCrc32C = value; + } + break; + } } } } @@ -4767,6 +4991,7 @@ public sealed partial class AsymmetricSignRequest : pb::IMessageField number for the "digest_crc32c" field. + public const int DigestCrc32CFieldNumber = 4; + private static readonly pb::FieldCodec _single_digestCrc32C_codec = pb::FieldCodec.ForStructWrapper(34); + private long? digestCrc32C_; + /// + /// Optional. An optional CRC32C checksum of the [AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest]. If + /// specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the + /// received [AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest] using this checksum. + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification + /// fails. If you receive a checksum error, your client should verify that + /// CRC32C([AsymmetricSignRequest.digest][google.cloud.kms.v1.AsymmetricSignRequest.digest]) is equal to + /// [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c], and if so, perform a limited + /// number of retries. A persistent mismatch may indicate an issue in your + /// computation of the CRC32C checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? DigestCrc32C { + get { return digestCrc32C_; } + set { + digestCrc32C_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as AsymmetricSignRequest); @@ -4820,6 +5075,7 @@ public sealed partial class AsymmetricSignRequest : pb::IMessageField number for the "ciphertext_crc32c" field. + public const int CiphertextCrc32CFieldNumber = 4; + private static readonly pb::FieldCodec _single_ciphertextCrc32C_codec = pb::FieldCodec.ForStructWrapper(34); + private long? ciphertextCrc32C_; + /// + /// Optional. An optional CRC32C checksum of the [AsymmetricDecryptRequest.ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext]. + /// If specified, [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will verify the integrity of the + /// received [AsymmetricDecryptRequest.ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext] using this checksum. + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] will report an error if the checksum verification + /// fails. If you receive a checksum error, your client should verify that + /// CRC32C([AsymmetricDecryptRequest.ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext]) is equal to + /// [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c], and if so, perform a + /// limited number of retries. A persistent mismatch may indicate an issue in + /// your computation of the CRC32C checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? CiphertextCrc32C { + get { return ciphertextCrc32C_; } + set { + ciphertextCrc32C_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as AsymmetricDecryptRequest); @@ -4994,6 +5300,7 @@ public sealed partial class AsymmetricDecryptRequest : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public DecryptResponse(DecryptResponse other) : this() { plaintext_ = other.plaintext_; + PlaintextCrc32C = other.PlaintextCrc32C; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -5130,6 +5457,36 @@ public sealed partial class DecryptResponse : pb::IMessage { } } + /// Field number for the "plaintext_crc32c" field. + public const int PlaintextCrc32CFieldNumber = 2; + private static readonly pb::FieldCodec _single_plaintextCrc32C_codec = pb::FieldCodec.ForStructWrapper(18); + private long? plaintextCrc32C_; + /// + /// Integrity verification field. A CRC32C checksum of the returned + /// [DecryptResponse.plaintext][google.cloud.kms.v1.DecryptResponse.plaintext]. An integrity check of + /// [DecryptResponse.plaintext][google.cloud.kms.v1.DecryptResponse.plaintext] can be performed by computing the CRC32C + /// checksum of [DecryptResponse.plaintext][google.cloud.kms.v1.DecryptResponse.plaintext] and comparing your results to + /// this field. Discard the response in case of non-matching checksum values, + /// and perform a limited number of retries. A persistent mismatch may indicate + /// an issue in your computation of the CRC32C checksum. Note: receiving this + /// response message indicates that [KeyManagementService][google.cloud.kms.v1.KeyManagementService] is able to + /// successfully decrypt the [ciphertext][google.cloud.kms.v1.DecryptRequest.ciphertext]. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? PlaintextCrc32C { + get { return plaintextCrc32C_; } + set { + plaintextCrc32C_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as DecryptResponse); @@ -5144,6 +5501,7 @@ public sealed partial class DecryptResponse : pb::IMessage { return true; } if (Plaintext != other.Plaintext) return false; + if (PlaintextCrc32C != other.PlaintextCrc32C) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5151,6 +5509,7 @@ public sealed partial class DecryptResponse : pb::IMessage { public override int GetHashCode() { int hash = 1; if (Plaintext.Length != 0) hash ^= Plaintext.GetHashCode(); + if (plaintextCrc32C_ != null) hash ^= PlaintextCrc32C.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5168,6 +5527,9 @@ public sealed partial class DecryptResponse : pb::IMessage { output.WriteRawTag(10); output.WriteBytes(Plaintext); } + if (plaintextCrc32C_ != null) { + _single_plaintextCrc32C_codec.WriteTagAndValue(output, PlaintextCrc32C); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5179,6 +5541,9 @@ public sealed partial class DecryptResponse : pb::IMessage { if (Plaintext.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeBytesSize(Plaintext); } + if (plaintextCrc32C_ != null) { + size += _single_plaintextCrc32C_codec.CalculateSizeWithTag(PlaintextCrc32C); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5193,6 +5558,11 @@ public sealed partial class DecryptResponse : pb::IMessage { if (other.Plaintext.Length != 0) { Plaintext = other.Plaintext; } + if (other.plaintextCrc32C_ != null) { + if (plaintextCrc32C_ == null || other.PlaintextCrc32C != 0L) { + PlaintextCrc32C = other.PlaintextCrc32C; + } + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5208,6 +5578,13 @@ public sealed partial class DecryptResponse : pb::IMessage { Plaintext = input.ReadBytes(); break; } + case 18: { + long? value = _single_plaintextCrc32C_codec.Read(input); + if (plaintextCrc32C_ == null || value != 0L) { + PlaintextCrc32C = value; + } + break; + } } } } @@ -5244,6 +5621,9 @@ public sealed partial class EncryptResponse : pb::IMessage { public EncryptResponse(EncryptResponse other) : this() { name_ = other.name_; ciphertext_ = other.ciphertext_; + CiphertextCrc32C = other.CiphertextCrc32C; + verifiedPlaintextCrc32C_ = other.verifiedPlaintextCrc32C_; + verifiedAdditionalAuthenticatedDataCrc32C_ = other.verifiedAdditionalAuthenticatedDataCrc32C_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -5281,6 +5661,81 @@ public sealed partial class EncryptResponse : pb::IMessage { } } + /// Field number for the "ciphertext_crc32c" field. + public const int CiphertextCrc32CFieldNumber = 4; + private static readonly pb::FieldCodec _single_ciphertextCrc32C_codec = pb::FieldCodec.ForStructWrapper(34); + private long? ciphertextCrc32C_; + /// + /// Integrity verification field. A CRC32C checksum of the returned + /// [EncryptResponse.ciphertext][google.cloud.kms.v1.EncryptResponse.ciphertext]. An integrity check of + /// [EncryptResponse.ciphertext][google.cloud.kms.v1.EncryptResponse.ciphertext] can be performed by computing the CRC32C + /// checksum of [EncryptResponse.ciphertext][google.cloud.kms.v1.EncryptResponse.ciphertext] and comparing your results to + /// this field. Discard the response in case of non-matching checksum values, + /// and perform a limited number of retries. A persistent mismatch may indicate + /// an issue in your computation of the CRC32C checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? CiphertextCrc32C { + get { return ciphertextCrc32C_; } + set { + ciphertextCrc32C_ = value; + } + } + + + /// Field number for the "verified_plaintext_crc32c" field. + public const int VerifiedPlaintextCrc32CFieldNumber = 5; + private bool verifiedPlaintextCrc32C_; + /// + /// Integrity verification field. A flag indicating whether + /// [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c] was received by + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the + /// [plaintext][google.cloud.kms.v1.EncryptRequest.plaintext]. A false value of this field + /// indicates either that [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c] was left unset or + /// that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've set + /// [EncryptRequest.plaintext_crc32c][google.cloud.kms.v1.EncryptRequest.plaintext_crc32c] but this field is still false, discard + /// the response and perform a limited number of retries. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool VerifiedPlaintextCrc32C { + get { return verifiedPlaintextCrc32C_; } + set { + verifiedPlaintextCrc32C_ = value; + } + } + + /// Field number for the "verified_additional_authenticated_data_crc32c" field. + public const int VerifiedAdditionalAuthenticatedDataCrc32CFieldNumber = 6; + private bool verifiedAdditionalAuthenticatedDataCrc32C_; + /// + /// Integrity verification field. A flag indicating whether + /// [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c] was received by + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the + /// [AAD][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data]. A false value of this + /// field indicates either that + /// [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c] was left unset or + /// that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've set + /// [EncryptRequest.additional_authenticated_data_crc32c][google.cloud.kms.v1.EncryptRequest.additional_authenticated_data_crc32c] but this field is + /// still false, discard the response and perform a limited number of retries. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool VerifiedAdditionalAuthenticatedDataCrc32C { + get { return verifiedAdditionalAuthenticatedDataCrc32C_; } + set { + verifiedAdditionalAuthenticatedDataCrc32C_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as EncryptResponse); @@ -5296,6 +5751,9 @@ public sealed partial class EncryptResponse : pb::IMessage { } if (Name != other.Name) return false; if (Ciphertext != other.Ciphertext) return false; + if (CiphertextCrc32C != other.CiphertextCrc32C) return false; + if (VerifiedPlaintextCrc32C != other.VerifiedPlaintextCrc32C) return false; + if (VerifiedAdditionalAuthenticatedDataCrc32C != other.VerifiedAdditionalAuthenticatedDataCrc32C) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5304,6 +5762,9 @@ public sealed partial class EncryptResponse : pb::IMessage { int hash = 1; if (Name.Length != 0) hash ^= Name.GetHashCode(); if (Ciphertext.Length != 0) hash ^= Ciphertext.GetHashCode(); + if (ciphertextCrc32C_ != null) hash ^= CiphertextCrc32C.GetHashCode(); + if (VerifiedPlaintextCrc32C != false) hash ^= VerifiedPlaintextCrc32C.GetHashCode(); + if (VerifiedAdditionalAuthenticatedDataCrc32C != false) hash ^= VerifiedAdditionalAuthenticatedDataCrc32C.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5325,6 +5786,17 @@ public sealed partial class EncryptResponse : pb::IMessage { output.WriteRawTag(18); output.WriteBytes(Ciphertext); } + if (ciphertextCrc32C_ != null) { + _single_ciphertextCrc32C_codec.WriteTagAndValue(output, CiphertextCrc32C); + } + if (VerifiedPlaintextCrc32C != false) { + output.WriteRawTag(40); + output.WriteBool(VerifiedPlaintextCrc32C); + } + if (VerifiedAdditionalAuthenticatedDataCrc32C != false) { + output.WriteRawTag(48); + output.WriteBool(VerifiedAdditionalAuthenticatedDataCrc32C); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5339,6 +5811,15 @@ public sealed partial class EncryptResponse : pb::IMessage { if (Ciphertext.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeBytesSize(Ciphertext); } + if (ciphertextCrc32C_ != null) { + size += _single_ciphertextCrc32C_codec.CalculateSizeWithTag(CiphertextCrc32C); + } + if (VerifiedPlaintextCrc32C != false) { + size += 1 + 1; + } + if (VerifiedAdditionalAuthenticatedDataCrc32C != false) { + size += 1 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5356,6 +5837,17 @@ public sealed partial class EncryptResponse : pb::IMessage { if (other.Ciphertext.Length != 0) { Ciphertext = other.Ciphertext; } + if (other.ciphertextCrc32C_ != null) { + if (ciphertextCrc32C_ == null || other.CiphertextCrc32C != 0L) { + CiphertextCrc32C = other.CiphertextCrc32C; + } + } + if (other.VerifiedPlaintextCrc32C != false) { + VerifiedPlaintextCrc32C = other.VerifiedPlaintextCrc32C; + } + if (other.VerifiedAdditionalAuthenticatedDataCrc32C != false) { + VerifiedAdditionalAuthenticatedDataCrc32C = other.VerifiedAdditionalAuthenticatedDataCrc32C; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5375,6 +5867,21 @@ public sealed partial class EncryptResponse : pb::IMessage { Ciphertext = input.ReadBytes(); break; } + case 34: { + long? value = _single_ciphertextCrc32C_codec.Read(input); + if (ciphertextCrc32C_ == null || value != 0L) { + CiphertextCrc32C = value; + } + break; + } + case 40: { + VerifiedPlaintextCrc32C = input.ReadBool(); + break; + } + case 48: { + VerifiedAdditionalAuthenticatedDataCrc32C = input.ReadBool(); + break; + } } } } @@ -5410,6 +5917,9 @@ public sealed partial class AsymmetricSignResponse : pb::IMessageField number for the "signature_crc32c" field. + public const int SignatureCrc32CFieldNumber = 2; + private static readonly pb::FieldCodec _single_signatureCrc32C_codec = pb::FieldCodec.ForStructWrapper(18); + private long? signatureCrc32C_; + /// + /// Integrity verification field. A CRC32C checksum of the returned + /// [AsymmetricSignResponse.signature][google.cloud.kms.v1.AsymmetricSignResponse.signature]. An integrity check of + /// [AsymmetricSignResponse.signature][google.cloud.kms.v1.AsymmetricSignResponse.signature] can be performed by computing the + /// CRC32C checksum of [AsymmetricSignResponse.signature][google.cloud.kms.v1.AsymmetricSignResponse.signature] and comparing your + /// results to this field. Discard the response in case of non-matching + /// checksum values, and perform a limited number of retries. A persistent + /// mismatch may indicate an issue in your computation of the CRC32C checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? SignatureCrc32C { + get { return signatureCrc32C_; } + set { + signatureCrc32C_ = value; + } + } + + + /// Field number for the "verified_digest_crc32c" field. + public const int VerifiedDigestCrc32CFieldNumber = 3; + private bool verifiedDigestCrc32C_; + /// + /// Integrity verification field. A flag indicating whether + /// [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c] was received by + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the + /// [digest][google.cloud.kms.v1.AsymmetricSignRequest.digest]. A false value of this field + /// indicates either that [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c] was left + /// unset or that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If you've + /// set [AsymmetricSignRequest.digest_crc32c][google.cloud.kms.v1.AsymmetricSignRequest.digest_crc32c] but this field is still false, + /// discard the response and perform a limited number of retries. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool VerifiedDigestCrc32C { + get { return verifiedDigestCrc32C_; } + set { + verifiedDigestCrc32C_ = value; + } + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 4; + private string name_ = ""; + /// + /// The resource name of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] used for signing. Check + /// this field to verify that the intended resource was used for signing. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as AsymmetricSignResponse); @@ -5446,6 +6024,9 @@ public sealed partial class AsymmetricSignResponse : pb::IMessageField number for the "plaintext_crc32c" field. + public const int PlaintextCrc32CFieldNumber = 2; + private static readonly pb::FieldCodec _single_plaintextCrc32C_codec = pb::FieldCodec.ForStructWrapper(18); + private long? plaintextCrc32C_; + /// + /// Integrity verification field. A CRC32C checksum of the returned + /// [AsymmetricDecryptResponse.plaintext][google.cloud.kms.v1.AsymmetricDecryptResponse.plaintext]. An integrity check of + /// [AsymmetricDecryptResponse.plaintext][google.cloud.kms.v1.AsymmetricDecryptResponse.plaintext] can be performed by computing the + /// CRC32C checksum of [AsymmetricDecryptResponse.plaintext][google.cloud.kms.v1.AsymmetricDecryptResponse.plaintext] and comparing + /// your results to this field. Discard the response in case of non-matching + /// checksum values, and perform a limited number of retries. A persistent + /// mismatch may indicate an issue in your computation of the CRC32C checksum. + /// Note: This field is defined as int64 for reasons of compatibility across + /// different languages. However, it is a non-negative integer, which will + /// never exceed 2^32-1, and can be safely downconverted to uint32 in languages + /// that support this type. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? PlaintextCrc32C { + get { return plaintextCrc32C_; } + set { + plaintextCrc32C_ = value; + } + } + + + /// Field number for the "verified_ciphertext_crc32c" field. + public const int VerifiedCiphertextCrc32CFieldNumber = 3; + private bool verifiedCiphertextCrc32C_; + /// + /// Integrity verification field. A flag indicating whether + /// [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c] was received by + /// [KeyManagementService][google.cloud.kms.v1.KeyManagementService] and used for the integrity verification of the + /// [ciphertext][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext]. A false value of this + /// field indicates either that [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c] + /// was left unset or that it was not delivered to [KeyManagementService][google.cloud.kms.v1.KeyManagementService]. If + /// you've set [AsymmetricDecryptRequest.ciphertext_crc32c][google.cloud.kms.v1.AsymmetricDecryptRequest.ciphertext_crc32c] but this field is + /// still false, discard the response and perform a limited number of retries. + /// + /// NOTE: This field is in Beta. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool VerifiedCiphertextCrc32C { + get { return verifiedCiphertextCrc32C_; } + set { + verifiedCiphertextCrc32C_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as AsymmetricDecryptResponse); @@ -5581,6 +6264,8 @@ public sealed partial class AsymmetricDecryptResponse : pb::IMessage