From d4b4ed2a6f0072767dd39cf0f05b598bf6066ad5 Mon Sep 17 00:00:00 2001 From: Isabella Cai Date: Thu, 17 Oct 2019 16:01:29 -0700 Subject: [PATCH 1/2] shaped python's crypto classes to be congruent with .net's --- .../azure/keyvault/keys/crypto/__init__.py | 6 +-- .../azure/keyvault/keys/crypto/_client.py | 22 +++++----- .../azure/keyvault/keys/crypto/_models.py | 40 +++++++++++++------ .../keyvault/keys/crypto/aio/__init__.py | 4 +- .../azure/keyvault/keys/crypto/aio/_client.py | 22 +++++----- .../tests/test_crypto_client.py | 18 +++++---- .../tests/test_crypto_client_async.py | 18 +++++---- .../tests/test_examples_crypto.py | 6 +-- .../tests/test_examples_crypto_async.py | 4 +- 9 files changed, 81 insertions(+), 59 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/__init__.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/__init__.py index 5c1bcd4d7bbe..f93920a09a68 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/__init__.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/__init__.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -from ._models import DecryptResult, EncryptResult, SignResult, UnwrapKeyResult, VerifyResult, WrapKeyResult +from ._models import DecryptResult, EncryptResult, SignResult, WrapResult, VerifyResult, UnwrapResult from ._client import CryptographyClient from ._enums import EncryptionAlgorithm, KeyWrapAlgorithm, SignatureAlgorithm @@ -15,7 +15,7 @@ "KeyWrapAlgorithm", "SignatureAlgorithm", "SignResult", - "UnwrapKeyResult", + "WrapResult", "VerifyResult", - "WrapKeyResult", + "UnwrapResult", ] diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py index 77d0d0f09c2e..2f56d6c26a1f 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py @@ -6,7 +6,7 @@ from azure.core.exceptions import AzureError, HttpResponseError from azure.core.tracing.decorator import distributed_trace -from . import DecryptResult, EncryptResult, SignResult, VerifyResult, UnwrapKeyResult, WrapKeyResult +from . import DecryptResult, EncryptResult, SignResult, VerifyResult, WrapResult, UnwrapResult from ._internal import EllipticCurveKey, RsaKey from .._models import KeyVaultKey from .._shared import KeyVaultClientBase, parse_vault_id @@ -208,7 +208,7 @@ def decrypt(self, algorithm, ciphertext, **kwargs): from azure.keyvault.keys.crypto import EncryptionAlgorithm result = client.decrypt(EncryptionAlgorithm.rsa_oaep, ciphertext) - print(result.decrypted_bytes) + print(result.plaintext) """ result = self._client.decrypt( @@ -219,18 +219,18 @@ def decrypt(self, algorithm, ciphertext, **kwargs): value=ciphertext, **kwargs ) - return DecryptResult(decrypted_bytes=result.result) + return DecryptResult(key_id=self.key_id, algorithm=algorithm, plaintext=result.result) @distributed_trace def wrap_key(self, algorithm, key, **kwargs): - # type: (KeyWrapAlgorithm, bytes, **Any) -> WrapKeyResult + # type: (KeyWrapAlgorithm, bytes, **Any) -> WrapResult """ Wrap a key with the client's key. Requires the keys/wrapKey permission. :param algorithm: wrapping algorithm to use :type algorithm: :class:`~azure.keyvault.keys.crypto.enums.KeyWrapAlgorithm` :param bytes key: key to wrap - :rtype: :class:`~azure.keyvault.keys.crypto.WrapKeyResult` + :rtype: :class:`~azure.keyvault.keys.crypto.WrapResult` Example: @@ -261,18 +261,18 @@ def wrap_key(self, algorithm, key, **kwargs): **kwargs ).result - return WrapKeyResult(key_id=self.key_id, algorithm=algorithm, encrypted_key=result) + return WrapResult(key_id=self.key_id, algorithm=algorithm, encrypted_key=result) @distributed_trace def unwrap_key(self, algorithm, encrypted_key, **kwargs): - # type: (KeyWrapAlgorithm, bytes, **Any) -> UnwrapKeyResult + # type: (KeyWrapAlgorithm, bytes, **Any) -> UnwrapResult """ Unwrap a key previously wrapped with the client's key. Requires the keys/unwrapKey permission. :param algorithm: wrapping algorithm to use :type algorithm: :class:`~azure.keyvault.keys.crypto.enums.KeyWrapAlgorithm` :param bytes encrypted_key: the wrapped key - :rtype: :class:`~azure.keyvault.keys.crypto.UnwrapKeyResult` + :rtype: :class:`~azure.keyvault.keys.crypto.UnwrapResult` Example: @@ -281,7 +281,7 @@ def unwrap_key(self, algorithm, encrypted_key, **kwargs): from azure.keyvault.keys.crypto import KeyWrapAlgorithm result = client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) - unwrapped_bytes = result.unwrapped_bytes + key = result.key """ @@ -293,7 +293,7 @@ def unwrap_key(self, algorithm, encrypted_key, **kwargs): value=encrypted_key, **kwargs ) - return UnwrapKeyResult(unwrapped_bytes=result.result) + return UnwrapResult(key_id=self.key_id, algorithm=algorithm, key=result.result) @distributed_trace def sign(self, algorithm, digest, **kwargs): @@ -372,4 +372,4 @@ def verify(self, algorithm, digest, signature, **kwargs): signature=signature, **kwargs ).value - return VerifyResult(result=result) + return VerifyResult(key_id=self.key_id, algorithm=algorithm, is_valid=result) diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py index 2af899fca726..fc28bed695c1 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py @@ -11,12 +11,17 @@ class DecryptResult: """The result of a decrypt operation. - :param bytes decrypted_bytes: The decrypted bytes + :param str key_id: The encryption key's Key Vault identifier + :param algorithm: The encryption algorithm used + :type algorithm: ~azure.keyvault.keys.crypto.EncryptionAlgorithm + :param bytes plaintext: The decrypted bytes """ - def __init__(self, decrypted_bytes): - # type: (bytes) -> None - self.decrypted_bytes = decrypted_bytes + def __init__(self, key_id, algorithm, plaintext): + # type: (str, str, EncryptionAlgorithm, bytes) -> None + self.key_id = key_id + self.algorithm = algorithm + self.plaintext = plaintext class EncryptResult: @@ -54,24 +59,33 @@ def __init__(self, key_id, algorithm, signature): class VerifyResult: """The result of a verify operation. - :param bool result: Whether the signature is valid + :param str key_id: The encryption key's Key Vault identifier + :param bool is_valid: Whether the signature is valid + :param algorithm: The encryption algorithm used + :type algorithm: ~azure.keyvault.keys.crypto.EncryptionAlgorithm """ - def __init__(self, result): - self.result = result - + def __init__(self, key_id, is_valid, algorithm): + self.key_id = key_id + self.is_valid = is_valid + self.algorithm = algorithm -class UnwrapKeyResult: +class UnwrapResult: """The result of an unwrap key operation. - :param bytes unwrapped_bytes: The unwrapped key's bytes + :param str key_id: The signing key's Key Vault identifier + :param algorithm: The signature algorithm used + :type algorithm: ~azure.keyvault.keys.crypto.SignatureAlgorithm + :param bytes key: The unwrapped key's bytes """ - def __init__(self, unwrapped_bytes): - self.unwrapped_bytes = unwrapped_bytes + def __init__(self, key_id, algorithm, key): + self.key_id = key_id + self.algorithm = algorithm + self.key = key -class WrapKeyResult: +class WrapResult: """The result of a wrap key operation. :param str key_id: The wrapping key's Key Vault identifier diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/__init__.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/__init__.py index 50f1b476bea5..2e77052808e3 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/__init__.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/__init__.py @@ -4,7 +4,7 @@ # ------------------------------------ from ._client import CryptographyClient from .. import EncryptionAlgorithm, KeyWrapAlgorithm, SignatureAlgorithm -from .. import EncryptResult, SignResult, WrapKeyResult +from .. import EncryptResult, SignResult, WrapResult __all__ = [ "CryptographyClient", @@ -13,5 +13,5 @@ "KeyWrapAlgorithm", "SignatureAlgorithm", "SignResult", - "WrapKeyResult", + "WrapResult", ] diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/_client.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/_client.py index f07f692bbdb8..8847351eeb7d 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/_client.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/_client.py @@ -6,7 +6,7 @@ from azure.core.tracing.decorator_async import distributed_trace_async from azure.keyvault.keys._shared import AsyncKeyVaultClientBase, parse_vault_id -from .. import DecryptResult, EncryptResult, SignResult, VerifyResult, UnwrapKeyResult, WrapKeyResult +from .. import DecryptResult, EncryptResult, SignResult, VerifyResult, WrapResult, UnwrapResult from .._internal import EllipticCurveKey, RsaKey from ..._models import KeyVaultKey @@ -195,7 +195,7 @@ async def decrypt(self, algorithm: "EncryptionAlgorithm", ciphertext: bytes, **k from azure.keyvault.keys.crypto import EncryptionAlgorithm result = await client.decrypt(EncryptionAlgorithm.rsa_oaep, ciphertext) - print(result.decrypted_bytes) + print(result.plaintext) """ result = await self._client.decrypt( @@ -206,17 +206,17 @@ async def decrypt(self, algorithm: "EncryptionAlgorithm", ciphertext: bytes, **k value=ciphertext, **kwargs ) - return DecryptResult(decrypted_bytes=result.result) + return DecryptResult(key_id=self.key_id, algorithm=algorithm, plaintext=result.result) @distributed_trace_async - async def wrap_key(self, algorithm: "KeyWrapAlgorithm", key: bytes, **kwargs: "Any") -> WrapKeyResult: + async def wrap_key(self, algorithm: "KeyWrapAlgorithm", key: bytes, **kwargs: "Any") -> WrapResult: """ Wrap a key with the client's key. Requires the keys/wrapKey permission. :param algorithm: wrapping algorithm to use :type algorithm: :class:`~azure.keyvault.keys.crypto.enums.KeyWrapAlgorithm` :param bytes key: key to wrap - :rtype: :class:`~azure.keyvault.keys.crypto.WrapKeyResult` + :rtype: :class:`~azure.keyvault.keys.crypto.WrapResult` Example: @@ -246,17 +246,17 @@ async def wrap_key(self, algorithm: "KeyWrapAlgorithm", key: bytes, **kwargs: "A value=key, **kwargs ).result - return WrapKeyResult(key_id=self.key_id, algorithm=algorithm, encrypted_key=result) + return WrapResult(key_id=self.key_id, algorithm=algorithm, encrypted_key=result) @distributed_trace_async - async def unwrap_key(self, algorithm: "KeyWrapAlgorithm", encrypted_key: bytes, **kwargs: "Any") -> UnwrapKeyResult: + async def unwrap_key(self, algorithm: "KeyWrapAlgorithm", encrypted_key: bytes, **kwargs: "Any") -> UnwrapResult: """ Unwrap a key previously wrapped with the client's key. Requires the keys/unwrapKey permission. :param algorithm: wrapping algorithm to use :type algorithm: :class:`~azure.keyvault.keys.crypto.enums.KeyWrapAlgorithm` :param bytes encrypted_key: the wrapped key - :rtype: :class:`~azure.keyvault.keys.crypto.UnwrapKeyResult` + :rtype: :class:`~azure.keyvault.keys.crypto.UnwrapResult` Example: @@ -265,7 +265,7 @@ async def unwrap_key(self, algorithm: "KeyWrapAlgorithm", encrypted_key: bytes, from azure.keyvault.keys.crypto import KeyWrapAlgorithm result = await client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) - unwrapped_bytes = result.unwrapped_bytes + key = result.key """ @@ -277,7 +277,7 @@ async def unwrap_key(self, algorithm: "KeyWrapAlgorithm", encrypted_key: bytes, value=encrypted_key, **kwargs ) - return UnwrapKeyResult(unwrapped_bytes=result.result) + return UnwrapResult(key_id=self.key_id, algorithm=algorithm, key=result.result) @distributed_trace_async async def sign(self, algorithm: "SignatureAlgorithm", digest: bytes, **kwargs: "**Any") -> SignResult: @@ -357,4 +357,4 @@ async def verify( signature=signature, **kwargs ).value - return VerifyResult(result=result) + return VerifyResult(key_id=self.key_id, algorithm=algorithm, is_valid=result) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py b/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py index df2ca7ed7a2e..692e93f4c9ec 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py @@ -86,7 +86,9 @@ def test_encrypt_and_decrypt(self, vault_client, **kwargs): self.assertEqual(result.key_id, imported_key.id) result = crypto_client.decrypt(result.algorithm, result.ciphertext) - self.assertEqual(self.plaintext, result.decrypted_bytes) + self.assertEqual(result.key_id, imported_key.id) + self.assertEqual(EncryptionAlgorithm.rsa_oaep, result.algorithm) + self.assertEqual(self.plaintext, result.plaintext) @ResourceGroupPreparer(name_prefix=name_prefix) @VaultClientPreparer(permissions=NO_GET) @@ -106,7 +108,9 @@ def test_sign_and_verify(self, vault_client, **kwargs): self.assertEqual(result.key_id, imported_key.id) verified = crypto_client.verify(result.algorithm, digest, result.signature) - self.assertTrue(verified.result) + self.assertEqual(result.key_id, imported_key.id) + self.assertEqual(result.algorithm, SignatureAlgorithm.rs256) + self.assertTrue(verified.is_valid) @ResourceGroupPreparer(name_prefix=name_prefix) @VaultClientPreparer(permissions=NO_GET) @@ -124,7 +128,7 @@ def test_wrap_and_unwrap(self, vault_client, **kwargs): self.assertEqual(result.key_id, created_key.id) result = crypto_client.unwrap_key(result.algorithm, result.encrypted_key) - self.assertEqual(key_bytes, result.unwrapped_bytes) + self.assertEqual(key_bytes, result.key) @ResourceGroupPreparer(name_prefix=name_prefix) @VaultClientPreparer() @@ -140,7 +144,7 @@ def test_encrypt_local(self, vault_client, **kwargs): self.assertEqual(result.key_id, key.id) result = crypto_client.decrypt(result.algorithm, result.ciphertext) - self.assertEqual(result.decrypted_bytes, self.plaintext) + self.assertEqual(result.plaintext, self.plaintext) @ResourceGroupPreparer(name_prefix=name_prefix) @VaultClientPreparer() @@ -156,7 +160,7 @@ def test_wrap_local(self, vault_client, **kwargs): self.assertEqual(result.key_id, key.id) result = crypto_client.unwrap_key(result.algorithm, result.encrypted_key) - self.assertEqual(result.unwrapped_bytes, self.plaintext) + self.assertEqual(result.key, self.plaintext) @ResourceGroupPreparer(name_prefix=name_prefix) @VaultClientPreparer() @@ -182,7 +186,7 @@ def test_rsa_verify_local(self, vault_client, **kwargs): self.assertEqual(result.key_id, key.id) result = crypto_client.verify(result.algorithm, digest, result.signature) - self.assertTrue(result.result) + self.assertTrue(result.is_valid) @ResourceGroupPreparer(name_prefix=name_prefix) @VaultClientPreparer() @@ -208,4 +212,4 @@ def test_ec_verify_local(self, vault_client, **kwargs): self.assertEqual(result.key_id, key.id) result = crypto_client.verify(result.algorithm, digest, result.signature) - self.assertTrue(result.result) + self.assertTrue(result.is_valid) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client_async.py b/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client_async.py index 48421ec6980b..9fb097854aca 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client_async.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client_async.py @@ -87,7 +87,9 @@ async def test_encrypt_and_decrypt(self, vault_client, **kwargs): self.assertEqual(result.key_id, imported_key.id) result = await crypto_client.decrypt(result.algorithm, result.ciphertext) - self.assertEqual(self.plaintext, result.decrypted_bytes) + self.assertEqual(result.key_id, imported_key.id) + self.assertEqual(EncryptionAlgorithm.rsa_oaep, result.algorithm) + self.assertEqual(self.plaintext, result.plaintext) @ResourceGroupPreparer(name_prefix=name_prefix) @AsyncVaultClientPreparer(permissions=NO_GET) @@ -108,7 +110,9 @@ async def test_sign_and_verify(self, vault_client, **kwargs): self.assertEqual(result.key_id, imported_key.id) verified = await crypto_client.verify(result.algorithm, digest, result.signature) - self.assertTrue(verified.result) + self.assertEqual(result.key_id, imported_key.id) + self.assertEqual(result.algorithm, SignatureAlgorithm.rs256) + self.assertTrue(verified.is_valid) @ResourceGroupPreparer(name_prefix=name_prefix) @AsyncVaultClientPreparer(permissions=NO_GET) @@ -127,7 +131,7 @@ async def test_wrap_and_unwrap(self, vault_client, **kwargs): self.assertEqual(result.key_id, created_key.id) result = await crypto_client.unwrap_key(result.algorithm, result.encrypted_key) - self.assertEqual(key_bytes, result.unwrapped_bytes) + self.assertEqual(key_bytes, result.key) @ResourceGroupPreparer(name_prefix=name_prefix) @AsyncVaultClientPreparer() @@ -144,7 +148,7 @@ async def test_encrypt_local(self, vault_client, **kwargs): self.assertEqual(result.key_id, key.id) result = await crypto_client.decrypt(result.algorithm, result.ciphertext) - self.assertEqual(result.decrypted_bytes, self.plaintext) + self.assertEqual(result.plaintext, self.plaintext) @ResourceGroupPreparer(name_prefix=name_prefix) @AsyncVaultClientPreparer() @@ -161,7 +165,7 @@ async def test_wrap_local(self, vault_client, **kwargs): self.assertEqual(result.key_id, key.id) result = await crypto_client.unwrap_key(result.algorithm, result.encrypted_key) - self.assertEqual(result.unwrapped_bytes, self.plaintext) + self.assertEqual(result.key, self.plaintext) @ResourceGroupPreparer(name_prefix=name_prefix) @AsyncVaultClientPreparer() @@ -188,7 +192,7 @@ async def test_rsa_verify_local(self, vault_client, **kwargs): self.assertEqual(result.key_id, key.id) result = await crypto_client.verify(result.algorithm, digest, result.signature) - self.assertTrue(result.result) + self.assertTrue(result.is_valid) @ResourceGroupPreparer(name_prefix=name_prefix) @AsyncVaultClientPreparer() @@ -215,4 +219,4 @@ async def test_ec_verify_local(self, vault_client, **kwargs): self.assertEqual(result.key_id, key.id) result = await crypto_client.verify(result.algorithm, digest, result.signature) - self.assertTrue(result.result) + self.assertTrue(result.is_valid) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py index 63b0fee07660..9379e0749dd8 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py @@ -41,7 +41,7 @@ def test_encrypt_decrypt(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import EncryptionAlgorithm result = client.decrypt(EncryptionAlgorithm.rsa_oaep, ciphertext) - print(result.decrypted_bytes) + print(result.plaintext) # [END decrypt] @@ -73,7 +73,7 @@ def test_wrap_unwrap(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import KeyWrapAlgorithm result = client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, encrypted_key) - unwrapped_bytes = result.unwrapped_bytes + key = result.key # [END unwrap] @@ -107,6 +107,6 @@ def test_sign_verify(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import SignatureAlgorithm verified = client.verify(SignatureAlgorithm.rs256, digest, signature) - assert verified.result is True + assert verified.is_valid is True # [END verify] diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto_async.py b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto_async.py index dd66920b3f44..49101a5f45f1 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto_async.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto_async.py @@ -42,7 +42,7 @@ async def test_encrypt_decrypt_async(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import EncryptionAlgorithm result = await client.decrypt(EncryptionAlgorithm.rsa_oaep, ciphertext) - print(result.decrypted_bytes) + print(result.plaintext) # [END decrypt] @@ -107,6 +107,6 @@ async def test_sign_verify_async(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import SignatureAlgorithm verified = await client.verify(SignatureAlgorithm.rs256, digest, signature) - assert verified.result is True + assert verified.is_valid is True # [END verify] From c82a53a31ab5ed4fa29fd268bad8c69fbe5b6d4f Mon Sep 17 00:00:00 2001 From: Isabella Cai Date: Fri, 18 Oct 2019 14:02:16 -0700 Subject: [PATCH 2/2] implemented Charles' comments and added changelog --- sdk/keyvault/azure-keyvault-keys/HISTORY.md | 11 +++++++++-- .../azure/keyvault/keys/crypto/_client.py | 2 +- .../azure/keyvault/keys/crypto/_models.py | 16 +++++++++------- .../azure/keyvault/keys/crypto/aio/_client.py | 2 +- .../tests/test_examples_crypto.py | 2 +- .../tests/test_examples_crypto_async.py | 2 +- 6 files changed, 22 insertions(+), 13 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-keys/HISTORY.md b/sdk/keyvault/azure-keyvault-keys/HISTORY.md index babd04c86dd6..b3aecb3d6941 100644 --- a/sdk/keyvault/azure-keyvault-keys/HISTORY.md +++ b/sdk/keyvault/azure-keyvault-keys/HISTORY.md @@ -11,13 +11,20 @@ detail the new keyword arguments): - `update_key_properties` now has two positional parameters, `name` and (optional) `version` - `import_key` now has positional parameters `name` and `key` -- `CryptographyClient` operations return class instances instead of tuples. The -new classes have the same attributes as the tuples. +- `CryptographyClient` operations return class instances instead of tuples and renamed the following +properties + - Renamed the `decrypted_bytes` property of `DecryptResult` to `plaintext` + - Renamed the `unwrapped_bytes` property of `UnwrapResult` to `key` + - Renamed the `result` property of `VerifyResult` to `is_valid` +- Renamed the `UnwrapKeyResult` and `WrapKeyResult` classes to `UnwrapResult` and `WrapResult` - Renamed `list_keys` to `list_properties_of_keys` - Renamed `Key` to `KeyVaultKey` - `KeyVaultKey` properties `created`, `expires`, and `updated` renamed to `created_on`, `expires_on`, and `updated_on` +### New features: +- Now all `CryptographyClient` returns include `key_id` and `algorithm` properties + ## 4.0.0b4 (2019-10-08) - Enums `JsonWebKeyCurveName`, `JsonWebKeyOperation`, and `JsonWebKeyType` have diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py index 2f56d6c26a1f..efc431c063e9 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py @@ -354,7 +354,7 @@ def verify(self, algorithm, digest, signature, **kwargs): from azure.keyvault.keys.crypto import SignatureAlgorithm verified = client.verify(SignatureAlgorithm.rs256, digest, signature) - assert verified.result is True + assert verified.is_valid """ local_key = self._get_local_key(**kwargs) diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py index fc28bed695c1..4602bbe53abc 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py @@ -59,13 +59,14 @@ def __init__(self, key_id, algorithm, signature): class VerifyResult: """The result of a verify operation. - :param str key_id: The encryption key's Key Vault identifier + :param str key_id: The signing key's Key Vault identifier :param bool is_valid: Whether the signature is valid - :param algorithm: The encryption algorithm used - :type algorithm: ~azure.keyvault.keys.crypto.EncryptionAlgorithm + :param algorithm: The signature algorithm used + :type algorithm: ~azure.keyvault.keys.crypto.SignatureAlgorithm """ def __init__(self, key_id, is_valid, algorithm): + # type: (str, bool, SignatureAlgorithm) -> None self.key_id = key_id self.is_valid = is_valid self.algorithm = algorithm @@ -73,13 +74,14 @@ def __init__(self, key_id, is_valid, algorithm): class UnwrapResult: """The result of an unwrap key operation. - :param str key_id: The signing key's Key Vault identifier - :param algorithm: The signature algorithm used - :type algorithm: ~azure.keyvault.keys.crypto.SignatureAlgorithm - :param bytes key: The unwrapped key's bytes + :param str key_id: Key encryption key's Key Vault identifier + :param algorithm: The key wrap algorithm used + :type algorithm: ~azure.keyvault.keys.crypto.KeyWrapAlgorithm + :param bytes key: The unwrapped key """ def __init__(self, key_id, algorithm, key): + # type: (str, KeyWrapAlgorithm, bytes) -> None self.key_id = key_id self.algorithm = algorithm self.key = key diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/_client.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/_client.py index 8847351eeb7d..2bb41390facc 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/_client.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/aio/_client.py @@ -338,7 +338,7 @@ async def verify( from azure.keyvault.keys.crypto import SignatureAlgorithm verified = await client.verify(SignatureAlgorithm.rs256, digest, signature) - assert verified.result is True + assert verified.is_valid """ diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py index 9379e0749dd8..e00f8bc7632b 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py @@ -107,6 +107,6 @@ def test_sign_verify(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import SignatureAlgorithm verified = client.verify(SignatureAlgorithm.rs256, digest, signature) - assert verified.is_valid is True + assert verified.is_valid # [END verify] diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto_async.py b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto_async.py index 49101a5f45f1..3bb1383c0402 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto_async.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto_async.py @@ -107,6 +107,6 @@ async def test_sign_verify_async(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import SignatureAlgorithm verified = await client.verify(SignatureAlgorithm.rs256, digest, signature) - assert verified.is_valid is True + assert verified.is_valid # [END verify]