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 361d2c13af61..c75d0089bb8b 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 @@ -40,23 +40,12 @@ class CryptographyClient(KeyVaultClientBase): :keyword transport: transport to use. Defaults to :class:`~azure.core.pipeline.transport.RequestsTransport`. :paramtype transport: ~azure.core.pipeline.transport.HttpTransport - Creating a ``CryptographyClient``: - - .. code-block:: python - - from azure.identity import DefaultAzureCredential - from azure.keyvault.keys.crypto import CryptographyClient - - credential = DefaultAzureCredential() - - # create a CryptographyClient using a KeyVaultKey instance - key = key_client.get_key("mykey") - crypto_client = CryptographyClient(key, credential) - - # or a key's id, which must include a version - key_id = "https://.vault.azure.net/keys/mykey/fe4fdcab688c479a9aa80f01ffeac26" - crypto_client = CryptographyClient(key_id, credential) - + .. literalinclude:: ../tests/test_examples_crypto.py + :start-after: [START create_client] + :end-before: [END create_client] + :caption: Create a CryptographyClient + :language: python + :dedent: 8 """ def __init__(self, key, credential, **kwargs): @@ -126,18 +115,12 @@ def encrypt(self, algorithm, plaintext, **kwargs): :param bytes plaintext: bytes to encrypt :rtype: :class:`~azure.keyvault.keys.crypto.EncryptResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import EncryptionAlgorithm - - # the result holds the ciphertext and identifies the encryption key and algorithm used - result = client.encrypt(EncryptionAlgorithm.rsa_oaep, b"plaintext") - ciphertext = result.ciphertext - print(result.key_id) - print(result.algorithm) - + .. literalinclude:: ../tests/test_examples_crypto.py + :start-after: [START encrypt] + :end-before: [END encrypt] + :caption: Encrypt bytes + :language: python + :dedent: 8 """ self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.encrypt, algorithm): @@ -169,15 +152,12 @@ def decrypt(self, algorithm, ciphertext, **kwargs): :param bytes ciphertext: encrypted bytes to decrypt :rtype: :class:`~azure.keyvault.keys.crypto.DecryptResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import EncryptionAlgorithm - - result = client.decrypt(EncryptionAlgorithm.rsa_oaep, ciphertext) - print(result.plaintext) - + .. literalinclude:: ../tests/test_examples_crypto.py + :start-after: [START decrypt] + :end-before: [END decrypt] + :caption: Decrypt bytes + :language: python + :dedent: 8 """ self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.decrypt, algorithm): @@ -206,18 +186,12 @@ def wrap_key(self, algorithm, key, **kwargs): :param bytes key: key to wrap :rtype: :class:`~azure.keyvault.keys.crypto.WrapResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import KeyWrapAlgorithm - - # the result holds the encrypted key and identifies the encryption key and algorithm used - result = client.wrap_key(KeyWrapAlgorithm.rsa_oaep, key_bytes) - encrypted_key = result.encrypted_key - print(result.key_id) - print(result.algorithm) - + .. literalinclude:: ../tests/test_examples_crypto.py + :start-after: [START wrap_key] + :end-before: [END wrap_key] + :caption: Wrap a key + :language: python + :dedent: 8 """ self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.wrap_key, algorithm): @@ -247,15 +221,12 @@ def unwrap_key(self, algorithm, encrypted_key, **kwargs): :param bytes encrypted_key: the wrapped key :rtype: :class:`~azure.keyvault.keys.crypto.UnwrapResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import KeyWrapAlgorithm - - result = client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) - key = result.key - + .. literalinclude:: ../tests/test_examples_crypto.py + :start-after: [START unwrap_key] + :end-before: [END unwrap_key] + :caption: Unwrap a key + :language: python + :dedent: 8 """ self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.unwrap_key, algorithm): @@ -283,23 +254,12 @@ def sign(self, algorithm, digest, **kwargs): :param bytes digest: hashed bytes to sign :rtype: :class:`~azure.keyvault.keys.crypto.SignResult` - Example: - - .. code-block:: python - - import hashlib - from azure.keyvault.keys.crypto import SignatureAlgorithm - - digest = hashlib.sha256(b"plaintext").digest() - - # sign returns a tuple with the signature and the metadata required to verify it - result = client.sign(SignatureAlgorithm.rs256, digest) - - # the result contains the signature and identifies the key and algorithm used - signature = result.signature - print(result.key_id) - print(result.algorithm) - + .. literalinclude:: ../tests/test_examples_crypto.py + :start-after: [START sign] + :end-before: [END sign] + :caption: Sign bytes + :language: python + :dedent: 8 """ self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.sign, algorithm): @@ -331,15 +291,12 @@ def verify(self, algorithm, digest, signature, **kwargs): :param bytes signature: signature to verify :rtype: :class:`~azure.keyvault.keys.crypto.VerifyResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import SignatureAlgorithm - - verified = client.verify(SignatureAlgorithm.rs256, digest, signature) - assert verified.is_valid - + .. literalinclude:: ../tests/test_examples_crypto.py + :start-after: [START verify] + :end-before: [END verify] + :caption: Verify a signature + :language: python + :dedent: 8 """ self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.verify, algorithm): 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 408b11619d4e..487611ad3b5c 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 @@ -39,23 +39,12 @@ class CryptographyClient(AsyncKeyVaultClientBase): :keyword transport: transport to use. Defaults to :class:`~azure.core.pipeline.transport.AioHttpTransport`. :paramtype transport: ~azure.core.pipeline.transport.AsyncHttpTransport - Creating a ``CryptographyClient``: - - .. code-block:: python - - from azure.identity.aio import DefaultAzureCredential - from azure.keyvault.keys.crypto.aio import CryptographyClient - - credential = DefaultAzureCredential() - - # create a CryptographyClient using a KeyVaultKey instance - key = await key_client.get_key("mykey") - crypto_client = CryptographyClient(key, credential) - - # or a key's id, which must include a version - key_id = "https://.vault.azure.net/keys/mykey/fe4fdcab688c479a9aa80f01ffeac26" - crypto_client = CryptographyClient(key_id, credential) - + .. literalinclude:: ../tests/test_examples_crypto_async.py + :start-after: [START create_client] + :end-before: [END create_client] + :caption: Create a CryptographyClient + :language: python + :dedent: 8 """ def __init__(self, key: "Union[KeyVaultKey, str]", credential: "AsyncTokenCredential", **kwargs: "Any") -> None: @@ -121,18 +110,12 @@ async def encrypt(self, algorithm: "EncryptionAlgorithm", plaintext: bytes, **kw :param bytes plaintext: bytes to encrypt :rtype: :class:`~azure.keyvault.keys.crypto.EncryptResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import EncryptionAlgorithm - - # the result holds the ciphertext and identifies the encryption key and algorithm used - result = client.encrypt(EncryptionAlgorithm.rsa_oaep, b"plaintext") - ciphertext = result.ciphertext - print(result.key_id) - print(result.algorithm) - + .. literalinclude:: ../tests/test_examples_crypto_async.py + :start-after: [START encrypt] + :end-before: [END encrypt] + :caption: Encrypt bytes + :language: python + :dedent: 8 """ await self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.encrypt, algorithm): @@ -163,15 +146,12 @@ async def decrypt(self, algorithm: "EncryptionAlgorithm", ciphertext: bytes, **k :param bytes ciphertext: encrypted bytes to decrypt :rtype: :class:`~azure.keyvault.keys.crypto.DecryptResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import EncryptionAlgorithm - - result = await client.decrypt(EncryptionAlgorithm.rsa_oaep, ciphertext) - print(result.plaintext) - + .. literalinclude:: ../tests/test_examples_crypto_async.py + :start-after: [START decrypt] + :end-before: [END decrypt] + :caption: Decrypt bytes + :language: python + :dedent: 8 """ await self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.decrypt, algorithm): @@ -199,18 +179,12 @@ async def wrap_key(self, algorithm: "KeyWrapAlgorithm", key: bytes, **kwargs: "A :param bytes key: key to wrap :rtype: :class:`~azure.keyvault.keys.crypto.WrapResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import KeyWrapAlgorithm - - # the result holds the encrypted key and identifies the encryption key and algorithm used - result = await client.wrap_key(KeyWrapAlgorithm.rsa_oaep, key_bytes) - encrypted_key = result.encrypted_key - print(result.key_id) - print(result.algorithm) - + .. literalinclude:: ../tests/test_examples_crypto_async.py + :start-after: [START wrap_key] + :end-before: [END wrap_key] + :caption: Wrap a key + :language: python + :dedent: 8 """ await self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.wrap_key, algorithm): @@ -239,15 +213,12 @@ async def unwrap_key(self, algorithm: "KeyWrapAlgorithm", encrypted_key: bytes, :param bytes encrypted_key: the wrapped key :rtype: :class:`~azure.keyvault.keys.crypto.UnwrapResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import KeyWrapAlgorithm - - result = await client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) - key = result.key - + .. literalinclude:: ../tests/test_examples_crypto_async.py + :start-after: [START unwrap_key] + :end-before: [END unwrap_key] + :caption: Unwrap a key + :language: python + :dedent: 8 """ await self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.unwrap_key, algorithm): @@ -275,23 +246,12 @@ async def sign(self, algorithm: "SignatureAlgorithm", digest: bytes, **kwargs: " :param bytes digest: hashed bytes to sign :rtype: :class:`~azure.keyvault.keys.crypto.SignResult` - Example: - - .. code-block:: python - - import hashlib - from azure.keyvault.keys.crypto import SignatureAlgorithm - - digest = hashlib.sha256(b"plaintext").digest() - - # sign returns a tuple with the signature and the metadata required to verify it - result = await client.sign(SignatureAlgorithm.rs256, digest) - - # the result contains the signature and identifies the key and algorithm used - signature = result.signature - print(result.key_id) - print(result.algorithm) - + .. literalinclude:: ../tests/test_examples_crypto_async.py + :start-after: [START sign] + :end-before: [END sign] + :caption: Sign bytes + :language: python + :dedent: 8 """ await self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.sign, algorithm): @@ -324,15 +284,12 @@ async def verify( :param bytes signature: signature to verify :rtype: :class:`~azure.keyvault.keys.crypto.VerifyResult` - Example: - - .. code-block:: python - - from azure.keyvault.keys.crypto import SignatureAlgorithm - - verified = await client.verify(SignatureAlgorithm.rs256, digest, signature) - assert verified.is_valid - + .. literalinclude:: ../tests/test_examples_crypto_async.py + :start-after: [START verify] + :end-before: [END verify] + :caption: Verify a signature + :language: python + :dedent: 8 """ await self._initialize(**kwargs) if self._local_provider.supports(KeyOperation.verify, algorithm): diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_examples_crypto.test_encrypt_decrypt.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_examples_crypto.test_encrypt_decrypt.yaml index ed4c596cc339..830a057b3958 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_examples_crypto.test_encrypt_decrypt.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_examples_crypto.test_encrypt_decrypt.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.2.0b2 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + - azsdk-python-keyvault-keys/4.2.1 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/create?api-version=7.1 response: @@ -28,7 +28,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 16:12:46 GMT + - Tue, 22 Sep 2020 19:28:06 GMT expires: - '-1' pragma: @@ -43,16 +43,112 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - conn_type=Ipv4;addr=73.135.72.237;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.10.0 + - 1.1.60.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-identity/1.5.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0/.well-known/openid-configuration + response: + body: + string: '{"token_endpoint":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/token","token_endpoint_auth_methods_supported":["client_secret_post","private_key_jwt","client_secret_basic"],"jwks_uri":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/discovery/v2.0/keys","response_modes_supported":["query","fragment","form_post"],"subject_types_supported":["pairwise"],"id_token_signing_alg_values_supported":["RS256"],"response_types_supported":["code","id_token","code + id_token","id_token token"],"scopes_supported":["openid","profile","email","offline_access"],"issuer":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0","request_uri_parameter_supported":false,"userinfo_endpoint":"https://graph.microsoft.com/oidc/userinfo","authorization_endpoint":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/authorize","device_authorization_endpoint":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/devicecode","http_logout_supported":true,"frontchannel_logout_supported":true,"end_session_endpoint":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/logout","claims_supported":["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],"tenant_region_scope":"WW","cloud_instance_name":"microsoftonline.com","cloud_graph_host_name":"graph.windows.net","msgraph_host":"graph.microsoft.com","rbac_url":"https://pas.windows.net"}' + headers: + access-control-allow-methods: + - GET, OPTIONS + access-control-allow-origin: + - '*' + cache-control: + - max-age=86400, private + content-length: + - '1651' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 22 Sep 2020 19:28:06 GMT + p3p: + - CP="DSP CUR OTPi IND OTRi ONL FIN" + set-cookie: + - fpc=AlwvbNgef3xIsX85sWhxB-Y; expires=Thu, 22-Oct-2020 19:28:07 GMT; path=/; + secure; HttpOnly; SameSite=None + - esctx=AQABAAAAAAB2UyzwtQEKR7-rWbgdcBZI112Co59HUdRlj5l1FjYL-GtWT5odHazVkTgmKjeSpjwk6V6pXsTlY40aysRxzvmAVRu_DKStNsypFc3-cn-EZx2qwe6p0iGDREnfdZw21bK2qZ2gqqSpYf1-WmfY-s7sIBMqYABiSD30KTXPGKjkVGWcz7FFSMBlW6UBi4KLydsgAA; + domain=.login.microsoftonline.com; path=/; secure; HttpOnly; SameSite=None + - x-ms-gateway-slice=estsfd; path=/; secure; samesite=none; httponly + - stsservicecookie=estsfd; path=/; secure; samesite=none; httponly + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ests-server: + - 2.1.11063.12 - WUS2 ProdSlices + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - stsservicecookie=estsfd; fpc=AlwvbNgef3xIsX85sWhxB-Y; x-ms-gateway-slice=estsfd; + esctx=AQABAAAAAAB2UyzwtQEKR7-rWbgdcBZI112Co59HUdRlj5l1FjYL-GtWT5odHazVkTgmKjeSpjwk6V6pXsTlY40aysRxzvmAVRu_DKStNsypFc3-cn-EZx2qwe6p0iGDREnfdZw21bK2qZ2gqqSpYf1-WmfY-s7sIBMqYABiSD30KTXPGKjkVGWcz7FFSMBlW6UBi4KLydsgAA + User-Agent: + - azsdk-python-identity/1.5.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=https://login.microsoftonline.com/common/oauth2/authorize + response: + body: + string: '{"tenant_discovery_endpoint":"https://login.microsoftonline.com/common/.well-known/openid-configuration","api-version":"1.1","metadata":[{"preferred_network":"login.microsoftonline.com","preferred_cache":"login.windows.net","aliases":["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{"preferred_network":"login.partner.microsoftonline.cn","preferred_cache":"login.partner.microsoftonline.cn","aliases":["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{"preferred_network":"login.microsoftonline.de","preferred_cache":"login.microsoftonline.de","aliases":["login.microsoftonline.de"]},{"preferred_network":"login.microsoftonline.us","preferred_cache":"login.microsoftonline.us","aliases":["login.microsoftonline.us","login.usgovcloudapi.net"]},{"preferred_network":"login-us.microsoftonline.com","preferred_cache":"login-us.microsoftonline.com","aliases":["login-us.microsoftonline.com"]}]}' + headers: + access-control-allow-methods: + - GET, OPTIONS + access-control-allow-origin: + - '*' + cache-control: + - max-age=86400, private + content-length: + - '945' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 22 Sep 2020 19:28:06 GMT + p3p: + - CP="DSP CUR OTPi IND OTRi ONL FIN" + set-cookie: + - fpc=AlwvbNgef3xIsX85sWhxB-Y; expires=Thu, 22-Oct-2020 19:28:07 GMT; path=/; + secure; HttpOnly; SameSite=None + - x-ms-gateway-slice=prod; path=/; secure; samesite=none; httponly + - stsservicecookie=estsfd; path=/; secure; samesite=none; httponly + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ests-server: + - 2.1.11063.12 - WUS2 ProdSlices + status: + code: 200 + message: OK - request: body: '{"kty": "RSA"}' headers: @@ -67,12 +163,12 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.2.0b2 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + - azsdk-python-keyvault-keys/4.2.1 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/create?api-version=7.1 response: body: - string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/96ec6cf1a63b47309ea6461a9732f90e","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"pmPK6ag96sTZwpT7p2swqy6uP36ZKkhx5PQV0FzLoYs6lMfi1aQqfvbWKev-cW4bagUX6ifwV9BAiCyowDNcPPwB7hs7NbQCZh4nbqkItyKWj7dtjnJ_9uLQHACwhArsqm1kSBx7I-PjmxJMHLcQDCMxbrp8EgA-gbceU36SrWi7eWoEBmdJt4qbX18_84oUk8L5GWclyTRsj7V6zLJW27RKnY8kF_kKk2M1bKvwg8CVyhtNDukUQtRjg-Vk-yDH1WmA1F3rGI9t2pAePB_swuHEKyQ0-IgR1sGtQH1DFxy4zW8_pIvf_0f0QfZKtxKWb9AiqAp03ppzSFUoCbrtSw","e":"AQAB"},"attributes":{"enabled":true,"created":1596039167,"updated":1596039167,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/59f0b0cc3d5b4050a718effceaf012d4","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"ymr7cgYciYY7XkdJ882XMFcDGDp3SJt5jBMZc0af7Spm_x7L5E_NNHUXdfiMAFd0gz6XPsh5wRS9K4i7fJ8SM_aPm2VZWakqbBLv4BCXHZAxwPITUDZl9rU16v848zt-Ou-5cN17J-V1M6-xa-Yn0wgVFQ58zKpZl8jaLlXXC8JUSgWbvMJgNHt79zTE5821iIzwugCqiNacTYb3u8JJ-TlkKC4eoJ-QyLOFRL3RGXa7Ilpf0rXkc1mU59p8ZFgbHImHrhBWqOqOJPymQ9nVh7pjKz0wCDCkL-IQzdD_JfYQFNMnOiXBhYeDf2jzUWKOIE7k9p1V8KEBBRLU5HQwoQ","e":"AQAB"},"attributes":{"enabled":true,"created":1600802887,"updated":1600802887,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' headers: cache-control: - no-cache @@ -81,7 +177,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 16:12:47 GMT + - Tue, 22 Sep 2020 19:28:07 GMT expires: - '-1' pragma: @@ -93,18 +189,160 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - conn_type=Ipv4;addr=73.135.72.237;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.10.0 + - 1.1.60.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"alg": "RSA-OAEP", "value": "gn4VUa0qnLXkLv9OOjSRlhU4bisRJ2HI0rFApAI3w5ZJJaz7B9OznJr7X7igP2hlzOTI2_VLc0VkQnAH9-QGGp5xmMfD4N8GspAe_Y5omR8uB62VuwkXEfVi9BJT_pVFq382_B1a1iQMh5KgZQeNK5TptNg7JkxOgvFBAQc-E55KnPyyWSv6WKkg6MYEgyW2RIEZiqVJR7sJ0bg_WGvAIhxp8I_ZPk7ztGBoge3RBF1hWRfnMlI9pPl0Y6enVN2AynZOZoztbLugFC2zWnpn_-KNfPdDWIrdxvX2306lnUdCBMpQfgaTYxulV7pB7P4q3jlsNfVnuj2W53FQyoZNsg"}' + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.2.1 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/?api-version=7.1 + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/59f0b0cc3d5b4050a718effceaf012d4","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"ymr7cgYciYY7XkdJ882XMFcDGDp3SJt5jBMZc0af7Spm_x7L5E_NNHUXdfiMAFd0gz6XPsh5wRS9K4i7fJ8SM_aPm2VZWakqbBLv4BCXHZAxwPITUDZl9rU16v848zt-Ou-5cN17J-V1M6-xa-Yn0wgVFQ58zKpZl8jaLlXXC8JUSgWbvMJgNHt79zTE5821iIzwugCqiNacTYb3u8JJ-TlkKC4eoJ-QyLOFRL3RGXa7Ilpf0rXkc1mU59p8ZFgbHImHrhBWqOqOJPymQ9nVh7pjKz0wCDCkL-IQzdD_JfYQFNMnOiXBhYeDf2jzUWKOIE7k9p1V8KEBBRLU5HQwoQ","e":"AQAB"},"attributes":{"enabled":true,"created":1600802887,"updated":1600802887,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '711' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 22 Sep 2020 19:28:07 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.60.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-identity/1.5.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0/.well-known/openid-configuration + response: + body: + string: '{"token_endpoint":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/token","token_endpoint_auth_methods_supported":["client_secret_post","private_key_jwt","client_secret_basic"],"jwks_uri":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/discovery/v2.0/keys","response_modes_supported":["query","fragment","form_post"],"subject_types_supported":["pairwise"],"id_token_signing_alg_values_supported":["RS256"],"response_types_supported":["code","id_token","code + id_token","id_token token"],"scopes_supported":["openid","profile","email","offline_access"],"issuer":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0","request_uri_parameter_supported":false,"userinfo_endpoint":"https://graph.microsoft.com/oidc/userinfo","authorization_endpoint":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/authorize","device_authorization_endpoint":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/devicecode","http_logout_supported":true,"frontchannel_logout_supported":true,"end_session_endpoint":"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/logout","claims_supported":["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],"tenant_region_scope":"WW","cloud_instance_name":"microsoftonline.com","cloud_graph_host_name":"graph.windows.net","msgraph_host":"graph.microsoft.com","rbac_url":"https://pas.windows.net"}' + headers: + access-control-allow-methods: + - GET, OPTIONS + access-control-allow-origin: + - '*' + cache-control: + - max-age=86400, private + content-length: + - '1651' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 22 Sep 2020 19:28:07 GMT + p3p: + - CP="DSP CUR OTPi IND OTRi ONL FIN" + set-cookie: + - fpc=AtKlaP0vFjhFjWQ7A5HppHc; expires=Thu, 22-Oct-2020 19:28:07 GMT; path=/; + secure; HttpOnly; SameSite=None + - esctx=AQABAAAAAAB2UyzwtQEKR7-rWbgdcBZINOhJQTcmi8BrSF6cdviSQygEu3yolIp7Meg2qoGsD4GMEJwEsy9g8nKKWRpqqg07st8C81HTSo4en40UYb5iyoV-6uHORtcauILpxHCE0kWB8FHF9lUa7y-rnSmk09tXgO46t6L1jlx8CIb6rBl0at_ZHntO-25gwT7u8duxqyEgAA; + domain=.login.microsoftonline.com; path=/; secure; HttpOnly; SameSite=None + - x-ms-gateway-slice=estsfd; path=/; secure; samesite=none; httponly + - stsservicecookie=estsfd; path=/; secure; samesite=none; httponly + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ests-server: + - 2.1.11063.12 - WUS2 ProdSlices + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - stsservicecookie=estsfd; fpc=AtKlaP0vFjhFjWQ7A5HppHc; x-ms-gateway-slice=estsfd; + esctx=AQABAAAAAAB2UyzwtQEKR7-rWbgdcBZINOhJQTcmi8BrSF6cdviSQygEu3yolIp7Meg2qoGsD4GMEJwEsy9g8nKKWRpqqg07st8C81HTSo4en40UYb5iyoV-6uHORtcauILpxHCE0kWB8FHF9lUa7y-rnSmk09tXgO46t6L1jlx8CIb6rBl0at_ZHntO-25gwT7u8duxqyEgAA + User-Agent: + - azsdk-python-identity/1.5.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=https://login.microsoftonline.com/common/oauth2/authorize + response: + body: + string: '{"tenant_discovery_endpoint":"https://login.microsoftonline.com/common/.well-known/openid-configuration","api-version":"1.1","metadata":[{"preferred_network":"login.microsoftonline.com","preferred_cache":"login.windows.net","aliases":["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{"preferred_network":"login.partner.microsoftonline.cn","preferred_cache":"login.partner.microsoftonline.cn","aliases":["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{"preferred_network":"login.microsoftonline.de","preferred_cache":"login.microsoftonline.de","aliases":["login.microsoftonline.de"]},{"preferred_network":"login.microsoftonline.us","preferred_cache":"login.microsoftonline.us","aliases":["login.microsoftonline.us","login.usgovcloudapi.net"]},{"preferred_network":"login-us.microsoftonline.com","preferred_cache":"login-us.microsoftonline.com","aliases":["login-us.microsoftonline.com"]}]}' + headers: + access-control-allow-methods: + - GET, OPTIONS + access-control-allow-origin: + - '*' + cache-control: + - max-age=86400, private + content-length: + - '945' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 22 Sep 2020 19:28:07 GMT + p3p: + - CP="DSP CUR OTPi IND OTRi ONL FIN" + set-cookie: + - fpc=AtKlaP0vFjhFjWQ7A5HppHc; expires=Thu, 22-Oct-2020 19:28:07 GMT; path=/; + secure; HttpOnly; SameSite=None + - x-ms-gateway-slice=prod; path=/; secure; samesite=none; httponly + - stsservicecookie=estsfd; path=/; secure; samesite=none; httponly + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ests-server: + - 2.1.11063.12 - WUS2 ProdSlices + status: + code: 200 + message: OK +- request: + body: '{"alg": "RSA-OAEP", "value": "SkqtWNQmT4ynwSV7IRBVR7DIEolC-uLI34GLhX4qUwHvtOgSSWwYLnJUi5w2lY9fTr4xc-TOoo4W0LZGWBNWTVx2Dk_9F_vWNlvVYYgYKciMHEcAzixDl640bE9RBxRdRpPgomh-T6ZuLyU5ysQEIuB3Sa7ROJdUg49MesjY0qF1gaWGlGLqXt0tYOVUyCgKciooAeCvkoMlvcwxCMQZOUwQB2xuNKniYvUoukduvLr6kvvIpGeH9rXtJtEeN34ixb-0vPsvQ7OUQ3e8ufaO5D21FEN8rYHz_ncNTkuYI1-Gk6TMiiZd9Yu_3iJ5pDSyBtRwXr6J7caIdtdoxOl4WQ"}' headers: Accept: - application/json @@ -117,12 +355,12 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.2.0b2 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + - azsdk-python-keyvault-keys/4.2.1 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/96ec6cf1a63b47309ea6461a9732f90e/decrypt?api-version=7.1 + uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/59f0b0cc3d5b4050a718effceaf012d4/decrypt?api-version=7.1 response: body: - string: '{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/96ec6cf1a63b47309ea6461a9732f90e","value":"cGxhaW50ZXh0"}' + string: '{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key67c4112b/59f0b0cc3d5b4050a718effceaf012d4","value":"cGxhaW50ZXh0"}' headers: cache-control: - no-cache @@ -131,7 +369,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 16:12:48 GMT + - Tue, 22 Sep 2020 19:28:07 GMT expires: - '-1' pragma: @@ -143,11 +381,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - conn_type=Ipv4;addr=73.135.72.237;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.10.0 + - 1.1.60.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_examples_crypto_async.test_encrypt_decrypt_async.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_examples_crypto_async.test_encrypt_decrypt_async.yaml index 2a62ff902b88..a2424e9f654b 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_examples_crypto_async.test_encrypt_decrypt_async.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_examples_crypto_async.test_encrypt_decrypt_async.yaml @@ -9,7 +9,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.2.0b2 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + - azsdk-python-keyvault-keys/4.2.1 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/create?api-version=7.1 response: @@ -20,7 +20,7 @@ interactions: cache-control: no-cache content-length: '87' content-type: application/json; charset=utf-8 - date: Wed, 29 Jul 2020 16:12:42 GMT + date: Tue, 22 Sep 2020 19:28:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,14 +28,14 @@ interactions: resource="https://vault.azure.net" x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=73.135.72.237;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.10.0 + x-ms-keyvault-service-version: 1.1.60.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://tedxav4nlf76in6rmu4uqkft.vault.azure.net/keys/crypto-test-encrypt-key56281625/create?api-version=7.1 + url: https://uwasldanaxd7ilup6xz7i362.vault.azure.net/keys/crypto-test-encrypt-key56281625/create?api-version=7.1 - request: body: '{"kty": "RSA"}' headers: @@ -46,32 +46,62 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.2.0b2 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + - azsdk-python-keyvault-keys/4.2.1 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/create?api-version=7.1 response: body: - string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/69c1397af1e54dc6aa6b1686c3f87dce","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oh-baN6Z88m0DXV4aIOFQG85nlR4cGsRp-G1QkiVkSsVenMbtyziRlLpuIklJG-63235gfYKjWk27yWxMbki1DGMktGQQXYD3Yc6cyii7-z9XGsWFBYd0HfqMj7YYC4FaCFc9o-PqRSZdPe647n30gN34dAmc7b-5u9kTU1vM4-uMUGVu9MGYq4PJpFU2VK-YsCdt3HD38zrPkY-arMVROaU12OrAMu_CEloy6kKngKEK04CSuiaz3SfC_JeNphOQxIQQ_ULlw9Q0zPoPJITqe3xXj_21s1HhMyzPgPBUyVe1uLK7P0HpclJnMzt8lU5K7GcljTQz6GIaNGm-03NEQ","e":"AQAB"},"attributes":{"enabled":true,"created":1596039163,"updated":1596039163,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/8393c9879c8e41eda1f540b72f079bcc","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"qDF9NF5qKFBryCWvn7fMEExkmLoOHttqG33VoPfJkziHitFy4TMzoNpm94Y5_OIKFtV5ZohntYgilQ8VdtQDGMjeTybOiMLbefsmIlrw5pUMGoCaRCkan6oYlnEkvHlDz7_el7oeKOOM6VPM7p4gdlVH5IhzXf8XYQXHKFyxC40L8Aj2UOwcgZ6QJOmq8BdERhyc1Tukx38JeJf1NbWlS5Q0jf3KAd6Eck64BdC-aXW7njj2pLdfguiMPUFeBskEfHfUy9B27dmm875u2Yzvg7RvRpj54R-XbilKjRdJ8kMTpuQmJHjAw_zb6kaXjzzwmW3KtuPUSX_Vm5sF76K7Pw","e":"AQAB"},"attributes":{"enabled":true,"created":1600802888,"updated":1600802888,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' headers: cache-control: no-cache content-length: '711' content-type: application/json; charset=utf-8 - date: Wed, 29 Jul 2020 16:12:43 GMT + date: Tue, 22 Sep 2020 19:28:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=73.135.72.237;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.10.0 + x-ms-keyvault-service-version: 1.1.60.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://tedxav4nlf76in6rmu4uqkft.vault.azure.net/keys/crypto-test-encrypt-key56281625/create?api-version=7.1 + url: https://uwasldanaxd7ilup6xz7i362.vault.azure.net/keys/crypto-test-encrypt-key56281625/create?api-version=7.1 - request: - body: '{"alg": "RSA-OAEP", "value": "EjrGZRi_v9dZk4IEa9voPEY9BhcXmaoOnzxcnNrim-cHkrjdqbwLK0vc-6tywgh1rETNXvl_9HGNRovJX9MRgJLyVBmqWQZPhJ1fD8tvfveNA9DxWL6EKlHUz_roN6aKEcziSUBOCv4q3NosMYLGZsS3kgpVg1TM-fW6awoOSQWTa3tjmHVCtOjE09Wd_9uimZuRhd4vkdUaAsxHOqA4YIV5MAQe3k1gDR1SZQjjrIy_NcFqfBzX10H9prPgXLgaR84t5dPr4uv6IEx-E0yoohW15ay_UmCj-GwD-xfPj2YHt3Uhih9NnJqWIlvRINEf0IM_RVRFqhOh9VSgUzKHMQ"}' + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.2.1 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/?api-version=7.1 + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/8393c9879c8e41eda1f540b72f079bcc","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"qDF9NF5qKFBryCWvn7fMEExkmLoOHttqG33VoPfJkziHitFy4TMzoNpm94Y5_OIKFtV5ZohntYgilQ8VdtQDGMjeTybOiMLbefsmIlrw5pUMGoCaRCkan6oYlnEkvHlDz7_el7oeKOOM6VPM7p4gdlVH5IhzXf8XYQXHKFyxC40L8Aj2UOwcgZ6QJOmq8BdERhyc1Tukx38JeJf1NbWlS5Q0jf3KAd6Eck64BdC-aXW7njj2pLdfguiMPUFeBskEfHfUy9B27dmm875u2Yzvg7RvRpj54R-XbilKjRdJ8kMTpuQmJHjAw_zb6kaXjzzwmW3KtuPUSX_Vm5sF76K7Pw","e":"AQAB"},"attributes":{"enabled":true,"created":1600802888,"updated":1600802888,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: no-cache + content-length: '711' + content-type: application/json; charset=utf-8 + date: Tue, 22 Sep 2020 19:28:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.60.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://uwasldanaxd7ilup6xz7i362.vault.azure.net/keys/crypto-test-encrypt-key56281625/?api-version=7.1 +- request: + body: '{"alg": "RSA-OAEP", "value": "Ke5GRukmTUpUNJ9Xf2FtK2ftkHsKhV04fv9HKpCQ6-CLnPr8OpMd99hi6cLqRXd97tRmiPk3420oJm5wmDghU_oJYo4jQucpOWtBtGsv1ZLIC00K_1Q5MLcvGuGLp9ZvkNWW7ZGAFid-i20i1BGhCVPk98HV9G97jwgy-JJGYtgTSSNA6ha69Ia1e0m9SV4RjkXC9gpSypEIYqkei7reUCo8oYbMDHPcobUAvpvjFJS1KDpw0kfp7JSz6wr-mygm6QUuc9plQ2x-vUbDsqcRqsEX7wL2JtfWqymWog5k_n1Jf9nbJbr2vaKEC_odbkO2tDUFECMbhJdVpzMqLhpRpw"}' headers: Accept: - application/json @@ -80,28 +110,28 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.2.0b2 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + - azsdk-python-keyvault-keys/4.2.1 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/69c1397af1e54dc6aa6b1686c3f87dce/decrypt?api-version=7.1 + uri: https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/8393c9879c8e41eda1f540b72f079bcc/decrypt?api-version=7.1 response: body: - string: '{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/69c1397af1e54dc6aa6b1686c3f87dce","value":"cGxhaW50ZXh0"}' + string: '{"kid":"https://vaultname.vault.azure.net/keys/crypto-test-encrypt-key56281625/8393c9879c8e41eda1f540b72f079bcc","value":"cGxhaW50ZXh0"}' headers: cache-control: no-cache content-length: '151' content-type: application/json; charset=utf-8 - date: Wed, 29 Jul 2020 16:12:44 GMT + date: Tue, 22 Sep 2020 19:28:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=73.135.72.237;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.10.0 + x-ms-keyvault-service-version: 1.1.60.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://tedxav4nlf76in6rmu4uqkft.vault.azure.net/keys/crypto-test-encrypt-key56281625/69c1397af1e54dc6aa6b1686c3f87dce/decrypt?api-version=7.1 + url: https://uwasldanaxd7ilup6xz7i362.vault.azure.net/keys/crypto-test-encrypt-key56281625/8393c9879c8e41eda1f540b72f079bcc/decrypt?api-version=7.1 version: 1 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 51b3243bd5b0..bd1356ab51f1 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py @@ -2,11 +2,6 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -import functools -import hashlib -import os - -from azure.keyvault.keys import KeyClient from azure.keyvault.keys.crypto import CryptographyClient from devtools_testutils import ResourceGroupPreparer, KeyVaultPreparer @@ -26,11 +21,21 @@ def __init__(self, *args, **kwargs): @CryptoClientPreparer() def test_encrypt_decrypt(self, key_client, credential, **kwargs): key_name = self.get_resource_name("crypto-test-encrypt-key") - key = key_client.create_rsa_key(key_name) + key_client.create_rsa_key(key_name) + + # [START create_client] + # create a CryptographyClient using a KeyVaultKey instance + key = key_client.get_key(key_name) + crypto_client = CryptographyClient(key, credential) + + # or a key's id, which must include a version + key_id = "https://.vault.azure.net/keys//fe4fdcab688c479a9aa80f01ffeac26" + crypto_client = CryptographyClient(key_id, credential) + # [END create_client] + client = CryptographyClient(key, credential) # [START encrypt] - from azure.keyvault.keys.crypto import EncryptionAlgorithm # the result holds the ciphertext and identifies the encryption key and algorithm used @@ -38,20 +43,15 @@ def test_encrypt_decrypt(self, key_client, credential, **kwargs): ciphertext = result.ciphertext print(result.key_id) print(result.algorithm) - # [END encrypt] # [START decrypt] - from azure.keyvault.keys.crypto import EncryptionAlgorithm result = client.decrypt(EncryptionAlgorithm.rsa_oaep, ciphertext) print(result.plaintext) - # [END decrypt] - pass - @ResourceGroupPreparer(random_name_enabled=True) @KeyVaultPreparer() @CryptoClientPreparer() @@ -62,8 +62,7 @@ def test_wrap_unwrap(self, key_client, credential, **kwargs): key_bytes = b"5063e6aaa845f150200547944fd199679c98ed6f99da0a0b2dafeaf1f4684496fd532c1c229968cb9dee44957fcef7ccef59ceda0b362e56bcd78fd3faee5781c623c0bb22b35beabde0664fd30e0e824aba3dd1b0afffc4a3d955ede20cf6a854d52cfd" - # [START wrap] - + # [START wrap_key] from azure.keyvault.keys.crypto import KeyWrapAlgorithm # the result holds the encrypted key and identifies the encryption key and algorithm used @@ -71,16 +70,14 @@ def test_wrap_unwrap(self, key_client, credential, **kwargs): encrypted_key = result.encrypted_key print(result.key_id) print(result.algorithm) + # [END wrap_key] - # [END wrap] - - # [START unwrap] + # [START unwrap_key] from azure.keyvault.keys.crypto import KeyWrapAlgorithm result = client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, encrypted_key) key = result.key - - # [END unwrap] + # [END unwrap_key] @ResourceGroupPreparer(random_name_enabled=True) @KeyVaultPreparer() @@ -91,27 +88,21 @@ def test_sign_verify(self, key_client, credential, **kwargs): client = CryptographyClient(key, credential) # [START sign] - import hashlib from azure.keyvault.keys.crypto import SignatureAlgorithm digest = hashlib.sha256(b"plaintext").digest() - # sign returns a tuple with the signature and the metadata required to verify it + # sign returns the signature and the metadata required to verify it result = client.sign(SignatureAlgorithm.rs256, digest) - - # the result contains the signature and identifies the key and algorithm used print(result.key_id) print(result.algorithm) signature = result.signature - # [END sign] # [START verify] - from azure.keyvault.keys.crypto import SignatureAlgorithm - verified = client.verify(SignatureAlgorithm.rs256, digest, signature) - assert verified.is_valid - + result = client.verify(SignatureAlgorithm.rs256, digest, signature) + assert result.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 47111080ee92..53cdd146078f 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 @@ -2,11 +2,6 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -import functools -import hashlib -import os - -from azure.keyvault.keys.aio import KeyClient from azure.keyvault.keys.crypto.aio import CryptographyClient from devtools_testutils import ResourceGroupPreparer, KeyVaultPreparer from _shared.test_case_async import KeyVaultTestCase @@ -25,32 +20,37 @@ def __init__(self, *args, **kwargs): @CryptoClientPreparer() async def test_encrypt_decrypt_async(self, key_client, credential, **kwargs): key_name = self.get_resource_name("crypto-test-encrypt-key") - key = await key_client.create_rsa_key(key_name) + await key_client.create_rsa_key(key_name) + + # [START create_client] + # create a CryptographyClient using a KeyVaultKey instance + key = await key_client.get_key(key_name) + crypto_client = CryptographyClient(key, credential) + + # or a key's id, which must include a version + key_id = "https://.vault.azure.net/keys//fe4fdcab688c479a9aa80f01ffeac26" + crypto_client = CryptographyClient(key_id, credential) + # [END create_client] + client = CryptographyClient(key, credential) # [START encrypt] - from azure.keyvault.keys.crypto import EncryptionAlgorithm - # encrypt returns a tuple with the ciphertext and the metadata required to decrypt it + # the result holds the ciphertext and identifies the encryption key and algorithm used result = await client.encrypt(EncryptionAlgorithm.rsa_oaep, b"plaintext") print(result.key_id) print(result.algorithm) ciphertext = result.ciphertext - # [END encrypt] # [START decrypt] - from azure.keyvault.keys.crypto import EncryptionAlgorithm result = await client.decrypt(EncryptionAlgorithm.rsa_oaep, ciphertext) print(result.plaintext) - # [END decrypt] - pass - @ResourceGroupPreparer(random_name_enabled=True) @KeyVaultPreparer() @CryptoClientPreparer() @@ -61,8 +61,7 @@ async def test_wrap_unwrap_async(self, key_client, credential, **kwargs): key_bytes = b"5063e6aaa845f150200547944fd199679c98ed6f99da0a0b2dafeaf1f4684496fd532c1c229968cb9dee44957fcef7ccef59ceda0b362e56bcd78fd3faee5781c623c0bb22b35beabde0664fd30e0e824aba3dd1b0afffc4a3d955ede20cf6a854d52cfd" - # [START wrap] - + # [START wrap_key] from azure.keyvault.keys.crypto import KeyWrapAlgorithm # wrap returns a tuple with the wrapped bytes and the metadata required to unwrap the key @@ -70,15 +69,13 @@ async def test_wrap_unwrap_async(self, key_client, credential, **kwargs): print(result.key_id) print(result.algorithm) encrypted_key = result.encrypted_key + # [END wrap_key] - # [END wrap] - - # [START unwrap] + # [START unwrap_key] from azure.keyvault.keys.crypto import KeyWrapAlgorithm result = await client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, encrypted_key) - - # [END unwrap] + # [END unwrap_key] @ResourceGroupPreparer(random_name_enabled=True) @KeyVaultPreparer() @@ -89,25 +86,21 @@ async def test_sign_verify_async(self, key_client, credential, **kwargs): client = CryptographyClient(key, credential) # [START sign] - import hashlib from azure.keyvault.keys.crypto import SignatureAlgorithm digest = hashlib.sha256(b"plaintext").digest() - # sign returns a tuple with the signature and the metadata required to verify it + # sign returns the signature and the metadata required to verify it result = await client.sign(SignatureAlgorithm.rs256, digest) print(result.key_id) print(result.algorithm) signature = result.signature - # [END sign] # [START verify] - from azure.keyvault.keys.crypto import SignatureAlgorithm verified = await client.verify(SignatureAlgorithm.rs256, digest, signature) assert verified.is_valid - # [END verify]