Skip to content

Commit 656593d

Browse files
busunkim96rsamborski
authored andcommitted
feat!: migrate to microgenerator. (#16)
1 parent cd68144 commit 656593d

35 files changed

+180
-162
lines changed

kms/attestations/README.rst

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Install Dependencies
3232
.. _Python Development Environment Setup Guide:
3333
https://cloud.google.com/python/setup
3434

35-
#. Create a virtualenv. Samples are compatible with Python 2.7 and 3.4+.
35+
#. Create a virtualenv. Samples are compatible with Python 3.6+.
3636

3737
.. code-block:: bash
3838
@@ -48,9 +48,15 @@ Install Dependencies
4848
.. _pip: https://pip.pypa.io/
4949
.. _virtualenv: https://virtualenv.pypa.io/
5050

51+
52+
53+
54+
55+
5156
Samples
5257
-------------------------------------------------------------------------------
5358

59+
5460
Verify attestations for keys generated by Cloud HSM
5561
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5662

@@ -66,9 +72,26 @@ To run this sample:
6672
6773
$ python verify_attestation.py
6874
69-
75+
76+
usage: verify_attestation.py [-h] attestation_file bundle_file
77+
78+
This application verifies HSM attestations using certificate bundles obtained
79+
from Cloud HSM. For more information, visit
80+
https://cloud.google.com/kms/docs/attest-key.
81+
82+
positional arguments:
83+
attestation_file Name of attestation file.
84+
bundle_file Name of certificate bundle file.
85+
86+
optional arguments:
87+
-h, --help show this help message and exit
88+
89+
90+
91+
92+
7093
7194
7295
7396
74-
.. _Google Cloud SDK: https://cloud.google.com/sdk/
97+
.. _Google Cloud SDK: https://cloud.google.com/sdk/

kms/attestations/noxfile.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
# to 'BUILD_SPECIFIC_GCLOUD_PROJECT' if you want to opt in using a
4444
# build specific Cloud project. You can also use your own string
4545
# to use your own Cloud project.
46-
'gcloud_project_env': 'GCLOUD_PROJECT',
46+
'gcloud_project_env': 'GOOGLE_CLOUD_PROJECT',
4747
# 'gcloud_project_env': 'BUILD_SPECIFIC_GCLOUD_PROJECT',
4848

4949
# A dictionary you want to inject into your test. Don't put any
@@ -72,7 +72,6 @@ def get_pytest_env_vars():
7272
env_key = TEST_CONFIG['gcloud_project_env']
7373
# This should error out if not set.
7474
ret['GOOGLE_CLOUD_PROJECT'] = os.environ[env_key]
75-
ret['GCLOUD_PROJECT'] = os.environ[env_key]
7675

7776
# Apply user supplied envs.
7877
ret.update(TEST_CONFIG['envs'])

kms/snippets/create_key_asymmetric_decrypt.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ def create_key_asymmetric_decrypt(project_id, location_id, key_ring_id, id):
3838
key_ring_name = client.key_ring_path(project_id, location_id, key_ring_id)
3939

4040
# Build the key.
41-
purpose = kms.enums.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT
42-
algorithm = kms.enums.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_DECRYPT_OAEP_2048_SHA256
41+
purpose = kms.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT
42+
algorithm = kms.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_DECRYPT_OAEP_2048_SHA256
4343
key = {
4444
'purpose': purpose,
4545
'version_template': {
@@ -48,7 +48,7 @@ def create_key_asymmetric_decrypt(project_id, location_id, key_ring_id, id):
4848
}
4949

5050
# Call the API.
51-
created_key = client.create_crypto_key(key_ring_name, id, key)
51+
created_key = client.create_crypto_key(request={'parent': key_ring_name, 'crypto_key_id': id, 'crypto_key': key})
5252
print('Created asymmetric decrypt key: {}'.format(created_key.name))
5353
return created_key
5454
# [END kms_create_key_asymmetric_decrypt]

kms/snippets/create_key_asymmetric_sign.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ def create_key_asymmetric_sign(project_id, location_id, key_ring_id, id):
3838
key_ring_name = client.key_ring_path(project_id, location_id, key_ring_id)
3939

4040
# Build the key.
41-
purpose = kms.enums.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN
42-
algorithm = kms.enums.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_SIGN_PKCS1_2048_SHA256
41+
purpose = kms.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN
42+
algorithm = kms.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_SIGN_PKCS1_2048_SHA256
4343
key = {
4444
'purpose': purpose,
4545
'version_template': {
@@ -48,7 +48,7 @@ def create_key_asymmetric_sign(project_id, location_id, key_ring_id, id):
4848
}
4949

5050
# Call the API.
51-
created_key = client.create_crypto_key(key_ring_name, id, key)
51+
created_key = client.create_crypto_key(request={'parent': key_ring_name, 'crypto_key_id': id, 'crypto_key': key})
5252
print('Created asymmetric signing key: {}'.format(created_key.name))
5353
return created_key
5454
# [END kms_create_key_asymmetric_sign]

kms/snippets/create_key_hsm.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ def create_key_hsm(project_id, location_id, key_ring_id, id):
3838
key_ring_name = client.key_ring_path(project_id, location_id, key_ring_id)
3939

4040
# Build the key.
41-
purpose = kms.enums.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT
42-
algorithm = kms.enums.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION
43-
protection_level = kms.enums.ProtectionLevel.HSM
41+
purpose = kms.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT
42+
algorithm = kms.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION
43+
protection_level = kms.ProtectionLevel.HSM
4444
key = {
4545
'purpose': purpose,
4646
'version_template': {
@@ -50,7 +50,7 @@ def create_key_hsm(project_id, location_id, key_ring_id, id):
5050
}
5151

5252
# Call the API.
53-
created_key = client.create_crypto_key(key_ring_name, id, key)
53+
created_key = client.create_crypto_key(request={'parent': key_ring_name, 'crypto_key_id': id, 'crypto_key': key})
5454
print('Created hsm key: {}'.format(created_key.name))
5555
return created_key
5656
# [END kms_create_key_hsm]

kms/snippets/create_key_labels.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ def create_key_labels(project_id, location_id, key_ring_id, id):
3838
key_ring_name = client.key_ring_path(project_id, location_id, key_ring_id)
3939

4040
# Build the key.
41-
purpose = kms.enums.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT
42-
algorithm = kms.enums.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION
41+
purpose = kms.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT
42+
algorithm = kms.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION
4343
key = {
4444
'purpose': purpose,
4545
'version_template': {
@@ -52,7 +52,7 @@ def create_key_labels(project_id, location_id, key_ring_id, id):
5252
}
5353

5454
# Call the API.
55-
created_key = client.create_crypto_key(key_ring_name, id, key)
55+
created_key = client.create_crypto_key(request={'parent': key_ring_name, 'crypto_key_id': id, 'crypto_key': key})
5656
print('Created labeled key: {}'.format(created_key.name))
5757
return created_key
5858
# [END kms_create_key_labels]

kms/snippets/create_key_ring.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ def create_key_ring(project_id, location_id, id):
3434
client = kms.KeyManagementServiceClient()
3535

3636
# Build the parent location name.
37-
location_name = client.location_path(project_id, location_id)
37+
location_name = f'projects/{project_id}/locations/{location_id}'
3838

3939
# Build the key ring.
4040
key_ring = {}
4141

4242
# Call the API.
43-
created_key_ring = client.create_key_ring(location_name, id, key_ring)
43+
created_key_ring = client.create_key_ring(request={'parent': location_name, 'key_ring_id': id, 'key_ring': key_ring})
4444
print('Created key ring: {}'.format(created_key_ring.name))
4545
return created_key_ring
4646
# [END kms_create_key_ring]

kms/snippets/create_key_rotation_schedule.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ def create_key_rotation_schedule(project_id, location_id, key_ring_id, id):
4141
key_ring_name = client.key_ring_path(project_id, location_id, key_ring_id)
4242

4343
# Build the key.
44-
purpose = kms.enums.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT
45-
algorithm = kms.enums.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION
44+
purpose = kms.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT
45+
algorithm = kms.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION
4646
key = {
4747
'purpose': purpose,
4848
'version_template': {
@@ -61,7 +61,7 @@ def create_key_rotation_schedule(project_id, location_id, key_ring_id, id):
6161
}
6262

6363
# Call the API.
64-
created_key = client.create_crypto_key(key_ring_name, id, key)
64+
created_key = client.create_crypto_key(request={'parent': key_ring_name, 'crypto_key_id': id, 'crypto_key': key})
6565
print('Created labeled key: {}'.format(created_key.name))
6666
return created_key
6767
# [END kms_create_key_rotation_schedule]

kms/snippets/create_key_symmetric_encrypt_decrypt.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ def create_key_symmetric_encrypt_decrypt(project_id, location_id, key_ring_id, i
3838
key_ring_name = client.key_ring_path(project_id, location_id, key_ring_id)
3939

4040
# Build the key.
41-
purpose = kms.enums.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT
42-
algorithm = kms.enums.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION
41+
purpose = kms.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT
42+
algorithm = kms.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION
4343
key = {
4444
'purpose': purpose,
4545
'version_template': {
@@ -48,7 +48,7 @@ def create_key_symmetric_encrypt_decrypt(project_id, location_id, key_ring_id, i
4848
}
4949

5050
# Call the API.
51-
created_key = client.create_crypto_key(key_ring_name, id, key)
51+
created_key = client.create_crypto_key(request={'parent': key_ring_name, 'crypto_key_id': id, 'crypto_key': key})
5252
print('Created symmetric key: {}'.format(created_key.name))
5353
return created_key
5454
# [END kms_create_key_symmetric_encrypt_decrypt]

kms/snippets/create_key_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def create_key_version(project_id, location_id, key_ring_id, key_id):
4141
version = {}
4242

4343
# Call the API.
44-
created_version = client.create_crypto_key_version(key_name, version)
44+
created_version = client.create_crypto_key_version(request={'parent': key_name, 'crypto_key_version': version})
4545
print('Created key version: {}'.format(created_version.name))
4646
return created_version
4747
# [END kms_create_key_version]

kms/snippets/decrypt_asymmetric.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def decrypt_asymmetric(project_id, location_id, key_ring_id, key_id, version_id,
4040
key_version_name = client.crypto_key_version_path(project_id, location_id, key_ring_id, key_id, version_id)
4141

4242
# Call the API.
43-
decrypt_response = client.asymmetric_decrypt(key_version_name, ciphertext)
43+
decrypt_response = client.asymmetric_decrypt(request={'name': key_version_name, 'ciphertext': ciphertext})
4444
print('Plaintext: {}'.format(decrypt_response.plaintext))
4545
return decrypt_response
4646
# [END kms_decrypt_asymmetric]

kms/snippets/decrypt_symmetric.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def decrypt_symmetric(project_id, location_id, key_ring_id, key_id, ciphertext):
3939
key_name = client.crypto_key_path(project_id, location_id, key_ring_id, key_id)
4040

4141
# Call the API.
42-
decrypt_response = client.decrypt(key_name, ciphertext)
42+
decrypt_response = client.decrypt(request={'name': key_name, 'ciphertext': ciphertext})
4343
print('Plaintext: {}'.format(decrypt_response.plaintext))
4444
return decrypt_response
4545
# [END kms_decrypt_symmetric]

kms/snippets/destroy_key_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def destroy_key_version(project_id, location_id, key_ring_id, key_id, version_id
3939
key_version_name = client.crypto_key_version_path(project_id, location_id, key_ring_id, key_id, version_id)
4040

4141
# Call the API.
42-
destroyed_version = client.destroy_crypto_key_version(key_version_name)
42+
destroyed_version = client.destroy_crypto_key_version(request={'name': key_version_name})
4343
print('Destroyed key version: {}'.format(destroyed_version.name))
4444
return destroyed_version
4545
# [END kms_destroy_key_version]

kms/snippets/disable_key_version.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,16 @@ def disable_key_version(project_id, location_id, key_ring_id, key_id, version_id
3838
# Build the key version name.
3939
key_version_name = client.crypto_key_version_path(project_id, location_id, key_ring_id, key_id, version_id)
4040

41-
# Build the key version. We need to build a full proto instead of a dict due
42-
# to https://github.com/googleapis/gapic-generator-python/issues/364.
43-
from google.cloud.kms_v1.proto import resources_pb2
44-
key_version = resources_pb2.CryptoKeyVersion()
45-
key_version.name = key_version_name
46-
key_version.state = kms.enums.CryptoKeyVersion.CryptoKeyVersionState.DISABLED
41+
key_version = {
42+
'name': key_version_name,
43+
'state': kms.CryptoKeyVersion.CryptoKeyVersionState.DISABLED
44+
}
4745

4846
# Build the update mask.
4947
update_mask = {'paths': ['state']}
5048

5149
# Call the API.
52-
disabled_version = client.update_crypto_key_version(key_version, update_mask)
50+
disabled_version = client.update_crypto_key_version(request={'crypto_key_version': key_version, 'update_mask': update_mask})
5351
print('Disabled key version: {}'.format(disabled_version.name))
5452
return disabled_version
5553
# [END kms_disable_key_version]

kms/snippets/enable_key_version.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,16 @@ def enable_key_version(project_id, location_id, key_ring_id, key_id, version_id)
3838
# Build the key version name.
3939
key_version_name = client.crypto_key_version_path(project_id, location_id, key_ring_id, key_id, version_id)
4040

41-
# Build the key version. We need to build a full proto instead of a dict due
42-
# to https://github.com/googleapis/gapic-generator-python/issues/364.
43-
from google.cloud.kms_v1.proto import resources_pb2
44-
key_version = resources_pb2.CryptoKeyVersion()
45-
key_version.name = key_version_name
46-
key_version.state = kms.enums.CryptoKeyVersion.CryptoKeyVersionState.ENABLED
41+
key_version = {
42+
'name': key_version_name,
43+
'state': kms.CryptoKeyVersion.CryptoKeyVersionState.ENABLED
44+
}
4745

4846
# Build the update mask.
4947
update_mask = {'paths': ['state']}
5048

5149
# Call the API.
52-
enabled_version = client.update_crypto_key_version(key_version, update_mask)
50+
enabled_version = client.update_crypto_key_version(request={'crypto_key_version': key_version, 'update_mask': update_mask})
5351
print('Enabled key version: {}'.format(enabled_version.name))
5452
return enabled_version
5553
# [END kms_enable_key_version]

kms/snippets/encrypt_asymmetric.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def encrypt_asymmetric(project_id, location_id, key_ring_id, key_id, version_id,
5151
key_version_name = client.crypto_key_version_path(project_id, location_id, key_ring_id, key_id, version_id)
5252

5353
# Get the public key.
54-
public_key = client.get_public_key(key_version_name)
54+
public_key = client.get_public_key(request={'name': key_version_name})
5555

5656
# Extract and parse the public key as a PEM-encoded RSA key.
5757
pem = public_key.pem.encode('utf-8')

kms/snippets/encrypt_symmetric.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def encrypt_symmetric(project_id, location_id, key_ring_id, key_id, plaintext):
4545
key_name = client.crypto_key_path(project_id, location_id, key_ring_id, key_id)
4646

4747
# Call the API.
48-
encrypt_response = client.encrypt(key_name, plaintext_bytes)
48+
encrypt_response = client.encrypt(request={'name': key_name, 'plaintext': plaintext_bytes})
4949
print('Ciphertext: {}'.format(base64.b64encode(encrypt_response.ciphertext)))
5050
return encrypt_response
5151
# [END kms_encrypt_symmetric]

kms/snippets/get_key_labels.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def get_key_labels(project_id, location_id, key_ring_id, key_id):
3838
key_name = client.crypto_key_path(project_id, location_id, key_ring_id, key_id)
3939

4040
# Call the API.
41-
key = client.get_crypto_key(key_name)
41+
key = client.get_crypto_key(request={'name': key_name})
4242

4343
# Example of iterating over labels.
4444
for k, v in key.labels.items():

kms/snippets/get_key_version_attestation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def get_key_version_attestation(project_id, location_id, key_ring_id, key_id, ve
4242
key_version_name = client.crypto_key_version_path(project_id, location_id, key_ring_id, key_id, version_id)
4343

4444
# Call the API.
45-
version = client.get_crypto_key_version(key_version_name)
45+
version = client.get_crypto_key_version(request={'name': key_version_name})
4646

4747
# Only HSM keys have an attestation. For other key types, the attestion
4848
# will be None.

kms/snippets/get_public_key.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def get_public_key(project_id, location_id, key_ring_id, key_id, version_id):
3939
key_version_name = client.crypto_key_version_path(project_id, location_id, key_ring_id, key_id, version_id)
4040

4141
# Call the API.
42-
public_key = client.get_public_key(key_version_name)
42+
public_key = client.get_public_key(request={'name': key_version_name})
4343
print('Public key: {}'.format(public_key.pem))
4444
return public_key
4545
# [END kms_get_public_key]

kms/snippets/iam_add_member.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,20 @@ def iam_add_member(project_id, location_id, key_ring_id, key_id, member):
4242
# resource_name = client.key_ring_path(project_id, location_id, key_ring_id);
4343

4444
# Get the current policy.
45-
policy = client.get_iam_policy(resource_name)
45+
policy = client.get_iam_policy(request={'resource': resource_name})
4646

4747
# Add the member to the policy.
4848
policy.bindings.add(
4949
role='roles/cloudkms.cryptoKeyEncrypterDecrypter',
5050
members=[member])
5151

5252
# Save the updated IAM policy.
53-
updated_policy = client.set_iam_policy(resource_name, policy)
53+
request = {
54+
'resource': resource_name,
55+
'policy': policy
56+
}
57+
58+
updated_policy = client.set_iam_policy(request=request)
5459
print('Added {} to {}'.format(member, resource_name))
5560
return updated_policy
5661
# [END kms_iam_add_member]

kms/snippets/iam_get_policy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def iam_get_policy(project_id, location_id, key_ring_id, key_id):
4141
# resource_name = client.key_ring_path(project_id, location_id, key_ring_id);
4242

4343
# Get the current policy.
44-
policy = client.get_iam_policy(resource_name)
44+
policy = client.get_iam_policy(request={'resource': resource_name})
4545

4646
# Print the policy
4747
print('IAM policy for {}'.format(resource_name))

kms/snippets/iam_remove_member.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def iam_remove_member(project_id, location_id, key_ring_id, key_id, member):
4242
# resource_name = client.key_ring_path(project_id, location_id, key_ring_id);
4343

4444
# Get the current policy.
45-
policy = client.get_iam_policy(resource_name)
45+
policy = client.get_iam_policy(request={'resource': resource_name})
4646

4747
# Remove the member from the policy.
4848
for binding in policy.bindings:
@@ -51,7 +51,11 @@ def iam_remove_member(project_id, location_id, key_ring_id, key_id, member):
5151
binding.members.remove(member)
5252

5353
# Save the updated IAM policy.
54-
updated_policy = client.set_iam_policy(resource_name, policy)
54+
request = {
55+
'resource': resource_name,
56+
'policy': policy
57+
}
58+
updated_policy = client.set_iam_policy(request=request)
5559
print('Removed {} from {}'.format(member, resource_name))
5660
return updated_policy
5761
# [END kms_iam_remove_member]

0 commit comments

Comments
 (0)