diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/aio/client.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/aio/client.py index f6bc2298dc63..d04d85928de7 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/aio/client.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/aio/client.py @@ -8,7 +8,7 @@ from azure.core.exceptions import ResourceExistsError, ResourceNotFoundError from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async -from azure.keyvault.keys.models import DeletedKey, JsonWebKey, Key, KeyBase, KeyOperationResult +from azure.keyvault.keys.models import DeletedKey, JsonWebKey, Key, KeyBase from azure.keyvault.keys._shared import AsyncKeyVaultClientBase from ..crypto.aio import CryptographyClient @@ -517,75 +517,3 @@ async def import_key( self.vault_url, name, key=key, hsm=hsm, key_attributes=attributes, tags=tags, **kwargs ) return Key._from_key_bundle(bundle) - - @distributed_trace_async - async def wrap_key( - self, name: str, algorithm: str, value: bytes, version: Optional[str] = None, **kwargs: "**Any" - ) -> KeyOperationResult: - """Wraps a symmetric key using a specified key. - - The WRAP operation supports encryption of a symmetric key using a key - encryption key that has previously been stored in an Azure Key Vault. - The WRAP operation is only strictly necessary for symmetric keys stored - in Azure Key Vault since protection with an asymmetric key can be - performed using the public portion of the key. This operation is - supported for asymmetric keys as a convenience for callers that have a - key-reference but do not have access to the public key material. This - operation requires the keys/wrapKey permission. - - :param name: The name of the key. - :type name: str - :param version: The version of the key. - :type version: str - :param algorithm: algorithm identifier. Possible values include: - 'RSA-OAEP', 'RSA-OAEP-256', 'RSA1_5' - :type algorithm: str or - ~azure.keyvault.keys.models.JsonWebKeyEncryptionAlgorithm - :param value: - :type value: bytes - :returns: The wrapped symmetric key. - :rtype: ~azure.keyvault.keys._models.KeyOperationResult - - """ - if version is None: - version = "" - - bundle = await self._client.wrap_key( - self.vault_url, name, key_version=version, algorithm=algorithm, value=value, **kwargs - ) - return KeyOperationResult(id=bundle.kid, value=bundle.result) - - @distributed_trace_async - async def unwrap_key( - self, name: str, algorithm: str, value: bytes, version: Optional[str] = None, **kwargs: "**Any" - ) -> KeyOperationResult: - """Unwraps a symmetric key using the specified key that was initially used - for wrapping that key. - - The UNWRAP operation supports decryption of a symmetric key using the - target key encryption key. This operation is the reverse of the WRAP - operation. The UNWRAP operation applies to asymmetric and symmetric - keys stored in Azure Key Vault since it uses the private portion of the - key. This operation requires the keys/unwrapKey permission. - - :param name: The name of the key. - :type name: str - :param version: The version of the key. - :type version: str - :param algorithm: algorithm identifier. Possible values include: - 'RSA-OAEP', 'RSA-OAEP-256', 'RSA1_5' - :type algorithm: str or - ~azure.keyvault.keys.models.JsonWebKeyEncryptionAlgorithm - :param value: - :type value: bytes - :returns: The unwrapped symmetric key. - :rtype: ~azure.keyvault.keys._models.KeyOperationResult - - """ - if version is None: - version = "" - - bundle = await self._client.unwrap_key( - self.vault_url, name, key_version=version, algorithm=algorithm, value=value, **kwargs - ) - return KeyOperationResult(id=bundle.kid, value=bundle.result) diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/__init__.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/__init__.py new file mode 100644 index 000000000000..c5d7ba47647d --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/__init__.py @@ -0,0 +1,30 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from .algorithm import ( + Algorithm, + AsymmetricEncryptionAlgorithm, + SymmetricEncryptionAlgorithm, + AuthenticatedSymmetricEncryptionAlgorithm, + SignatureAlgorithm, +) +from .ec_key import EllipticCurveKey +from .key import Key +from .rsa_key import RsaKey +from .transform import CryptoTransform, BlockCryptoTransform, AuthenticatedCryptoTransform, SignatureTransform + +__all__ = { + "Key", + "EllipticCurveKey", + "RsaKey", + "Algorithm", + "AsymmetricEncryptionAlgorithm", + "SymmetricEncryptionAlgorithm", + "AuthenticatedCryptoTransform", + "SignatureAlgorithm", + "CryptoTransform", + "BlockCryptoTransform", + "AuthenticatedSymmetricEncryptionAlgorithm", + "SignatureTransform", +} diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/_internal.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/_internal.py new file mode 100644 index 000000000000..1b7670efc43a --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/_internal.py @@ -0,0 +1,95 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ + +import codecs +from base64 import b64encode, b64decode + +from cryptography.hazmat.primitives.asymmetric import utils + + +def _bytes_to_int(b): + if not b or not isinstance(b, bytes): + raise ValueError("b must be non-empty byte string") + + return int(codecs.encode(b, "hex"), 16) + + +def _int_to_bytes(i): + h = hex(i) + if len(h) > 1 and h[0:2] == "0x": + h = h[2:] + + # need to strip L in python 2.x + h = h.strip("L") + + if len(h) % 2: + h = "0" + h + return codecs.decode(h, "hex") + + +def _bstr_to_b64url(bstr): + """Serialize bytes into base-64 string. + :param str: Object to be serialized. + :rtype: str + """ + encoded = b64encode(bstr).decode() + return encoded.strip("=").replace("+", "-").replace("/", "_") + + +def _str_to_b64url(s): + """Serialize str into base-64 string. + :param str: Object to be serialized. + :rtype: str + """ + return _bstr_to_b64url(s.encode(encoding="utf8")) + + +def _b64_to_bstr(b64str): + """Deserialize base64 encoded string into string. + :param str b64str: response string to be deserialized. + :rtype: bytearray + :raises: TypeError if string format invalid. + """ + padding = "=" * (3 - (len(b64str) + 3) % 4) + b64str = b64str + padding + encoded = b64str.replace("-", "+").replace("_", "/") + return b64decode(encoded) + + +def _b64_to_str(b64str): + """Deserialize base64 encoded string into string. + :param str b64str: response string to be deserialized. + :rtype: str + :raises: TypeError if string format invalid. + """ + return _b64_to_bstr(b64str).decode("utf8") + + +def _int_to_bigendian_8_bytes(i): + b = _int_to_bytes(i) + + if len(b) > 8: + raise ValueError("the specified integer is to large to be represented by 8 bytes") + + if len(b) < 8: + b = (b"\0" * (8 - len(b))) + b + + return b + + +def encode_key_vault_ecdsa_signature(signature): + """ + ASN.1 DER encode a Key Vault ECDSA signature. + + Key Vault returns ECDSA signatures as the concatenated bytes of two equal-size integers. ``cryptography`` expects + ECDSA signatures be ASN.1 DER encoded. + + :param bytes signature: ECDSA signature returned by Key Vault + :return: signature encoded for use by ``cryptography`` + """ + mid = len(signature) // 2 + r = _bytes_to_int(signature[:mid]) + s = _bytes_to_int(signature[mid:]) + return utils.encode_dss_signature(r, s) diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithm.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithm.py new file mode 100644 index 000000000000..7270b14ff43c --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithm.py @@ -0,0 +1,73 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from abc import abstractmethod + +_alg_registry = {} + + +class Algorithm(object): + _name = None + + @classmethod + def name(cls): + return cls._name + + @classmethod + def register(cls): + _alg_registry[cls._name] = cls + + @staticmethod + def resolve(name): + if name not in _alg_registry: + return None + return _alg_registry[name]() + + +class AsymmetricEncryptionAlgorithm(Algorithm): + @abstractmethod + def create_encryptor(self, key): + raise NotImplementedError() + + @abstractmethod + def create_decryptor(self, key): + raise NotImplementedError() + + +class SymmetricEncryptionAlgorithm(Algorithm): + @abstractmethod + def create_encryptor(self, key, iv): + raise NotImplementedError() + + @abstractmethod + def create_decryptor(self, key, iv): + raise NotImplementedError() + + +class AuthenticatedSymmetricEncryptionAlgorithm(Algorithm): + @abstractmethod + def create_encryptor(self, key, iv, auth_data, auth_tag): + raise NotImplementedError() + + @abstractmethod + def create_decryptor(self, key, iv, auth_data, auth_tag): + raise NotImplementedError() + + +class SignatureAlgorithm(Algorithm): + _default_hash_algorithm = None + + @property + def default_hash_algorithm(self): + return self._default_hash_algorithm + + @abstractmethod + def create_signature_transform(self, key): + raise NotImplementedError() + + +class HashAlgorithm(Algorithm): + @abstractmethod + def create_digest(self): + raise NotImplementedError() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/__init__.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/__init__.py new file mode 100644 index 000000000000..c5bdf8e518fb --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/__init__.py @@ -0,0 +1,35 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from .aes_cbc import Aes128Cbc, Aes192Cbc, Aes256Cbc +from .aes_cbc_hmac import Aes128CbcHmacSha256, Aes192CbcHmacSha384, Aes256CbcHmacSha512 +from .aes_kw import AesKw128, AesKw192, AesKw256 +from .ecdsa import Ecdsa256, Es256, Es384, Es512 +from .rsa_encryption import Rsa1_5, RsaOaep, RsaOaep256 +from .rsa_signing import Ps256, Ps384, Ps512, Rs256, Rs384, Rs512 + +__all__ = [ + "Aes128Cbc", + "Aes192Cbc", + "Aes256Cbc", + "Aes128CbcHmacSha256", + "Aes192CbcHmacSha384", + "Aes256CbcHmacSha512", + "AesKw128", + "AesKw192", + "AesKw256", + "Ecdsa256", + "Es256", + "Es384", + "Es512", + "Ps256", + "Ps384", + "Ps512", + "Rsa1_5", + "Rs256", + "Rs384", + "Rs512", + "RsaOaep", + "RsaOaep256", +] diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc.py new file mode 100644 index 000000000000..821f9cf1743d --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc.py @@ -0,0 +1,124 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from abc import abstractmethod + +from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import padding + +from ..algorithm import SymmetricEncryptionAlgorithm +from ..transform import BlockCryptoTransform + + +class _AesCbcCryptoTransform(BlockCryptoTransform): + def __init__(self, key, iv): + super(_AesCbcCryptoTransform, self).__init__(key) + self._cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=default_backend()) + + def transform(self, data): + return self.update(data) + self.finalize(data) + + @abstractmethod + def block_size(self): + pass + +class _AesCbcDecryptor(_AesCbcCryptoTransform): + def __init__(self, key, iv): + super(_AesCbcDecryptor, self).__init__(key, iv) + self._ctx = self._cipher.decryptor() + self._padder = padding.PKCS7(self.block_size).unpadder() + + def update(self, data): + padded = self._ctx.update(data) + return self._padder.update(padded) + + def finalize(self, data): + padded = self._ctx.finalize() + return self._padder.update(padded) + self._padder.finalize() + + @property + def block_size(self): + # return self._cipher.block_size + raise NotImplementedError() + + +class _AesCbcEncryptor(_AesCbcCryptoTransform): + def __init__(self, key, iv): + super(_AesCbcEncryptor, self).__init__(key, iv) + self._ctx = self._cipher.encryptor() + self._padder = padding.PKCS7(self.block_size).padder() + + def update(self, data): + padded = self._padder.update(data) + return self._ctx.update(padded) + + def finalize(self, data): + padded = self._padder.finalize() + return self._ctx.update(padded) + self._ctx.finalize() + + @property + def block_size(self): + # return self._cipher.block_size + raise NotImplementedError() + + +class _AesCbc(SymmetricEncryptionAlgorithm): + _key_size = 256 + _block_size = 128 + + def block_size(self): + return self._block_size + + def block_size_in_bytes(self): + return self._block_size >> 3 + + def key_size(self): + return self._key_size + + def key_size_in_bytes(self): + return self._key_size >> 3 + + def create_encryptor(self, key, iv): + key, iv = self._validate_input(key, iv) + + return _AesCbcEncryptor(key, iv) + + def create_decryptor(self, key, iv): + key, iv = self._validate_input(key, iv) + + return _AesCbcDecryptor(key, iv) + + def _validate_input(self, key, iv): + if not key: + raise ValueError("key") + if len(key) < self.key_size_in_bytes(): + raise ValueError("key must be at least %d bits" % self.key_size) + + if not iv: + raise ValueError("iv") + if not len(iv) == self.block_size_in_bytes(): + raise ValueError("iv must be %d bits" % self.block_size) + + return key[: self.key_size_in_bytes], iv + + +class Aes128Cbc(_AesCbc): + _name = "A128CBC" + _key_size = 128 + + +class Aes192Cbc(_AesCbc): + _name = "A192CBC" + _key_size = 192 + + +class Aes256Cbc(_AesCbc): + _name = "A256CBC" + _key_size = 256 + + +Aes128Cbc.register() +Aes192Cbc.register() +Aes256Cbc.register() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc_hmac.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc_hmac.py new file mode 100644 index 000000000000..efb80716441d --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc_hmac.py @@ -0,0 +1,147 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from abc import abstractmethod + +from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import padding, hashes, hmac + +from ..algorithm import AuthenticatedSymmetricEncryptionAlgorithm +from ..transform import AuthenticatedCryptoTransform +from .._internal import _int_to_bigendian_8_bytes + + +class _AesCbcHmacCryptoTransform(AuthenticatedCryptoTransform): + def __init__(self, key, iv, auth_data, auth_tag): + self._aes_key = key[: len(key) // 2] + self._hmac_key = key[len(key) // 2 :] + hash_algo = {256: hashes.SHA256(), 384: hashes.SHA384(), 512: hashes.SHA512()}[len(key) * 8] + + self._cipher = Cipher(algorithms.AES(self._aes_key), modes.CBC(iv), backend=default_backend()) + self._tag = auth_tag or bytearray() + self._hmac = hmac.HMAC(self._hmac_key, hash_algo, backend=default_backend()) + self._auth_data_length = _int_to_bigendian_8_bytes(len(auth_data) * 8) + + # prime the hash + self._hmac.update(auth_data) + self._hmac.update(iv) + + def tag(self): + return self._tag + + def block_size(self): + # return self._cipher.block_size + raise NotImplementedError() + + @abstractmethod + def update(self, data): + raise NotImplementedError() + + @abstractmethod + def finalize(self): + raise NotImplementedError() + + def transform(self, data): + return self.update(data) + self.finalize() + + +class _AesCbcHmacEncryptor(_AesCbcHmacCryptoTransform): + def __init__(self, key, iv, auth_data, auth_tag): + super(_AesCbcHmacEncryptor, self).__init__(key, iv, auth_data, auth_tag) + self._ctx = self._cipher.encryptor() + self._padder = padding.PKCS7(self.block_size).padder() + self._tag[:] = [] + + def update(self, data): + padded = self._padder.update(data) + cipher_text = self._ctx.update(padded) + self._hmac.update(cipher_text) + return cipher_text + + def finalize(self): + padded = self._padder.finalize() + cipher_text = self._ctx.update(padded) + self._ctx.finalize() + self._hmac.update(cipher_text) + self._hmac.update(self._auth_data_length) + self._tag.extend(self._hmac.finalize()[: len(self._hmac_key)]) + return cipher_text + + def block_size(self): + raise NotImplementedError() + + +class _AesCbcHmacDecryptor(_AesCbcHmacCryptoTransform): + def __init__(self, key, iv, auth_data, auth_tag): + super(_AesCbcHmacDecryptor, self).__init__(key, iv, auth_data, auth_tag) + self._ctx = self._cipher.decryptor() + self._padder = padding.PKCS7(self.block_size).unpadder() + + def update(self, data): + self._hmac.update(data) + padded = self._ctx.update(data) + return self._padder.update(padded) + + def finalize(self): + self._hmac.update(self._auth_data_length) + self._hmac.verify(self.tag) + padded = self._ctx.finalize() + return self._padder.update(padded) + self._padder.finalize() + + # override transform from the base so we can verify the entire hash before we start decrypting + def transform(self, data): + self._hmac.update(data) + self._hmac.update(self._auth_data_length) + self._hmac.verify(self.tag) + padded = self._ctx.update(data) + self._ctx.finalize() + return self._padder.update(padded) + self._padder.finalize() + + def block_size(self): + raise NotImplementedError() + + +class _AesCbcHmac(AuthenticatedSymmetricEncryptionAlgorithm): + _key_size = 256 + + @property + def block_size(self): + return self._key_size // 2 + + @property + def block_size_in_bytes(self): + return self.block_size >> 3 + + @property + def key_size(self): + return self._key_size + + @property + def key_size_in_bytes(self): + return self._key_size >> 3 + + def create_encryptor(self, key, iv, auth_data, auth_tag=None): + return _AesCbcHmacEncryptor(key, iv, auth_data, auth_tag) + + def create_decryptor(self, key, iv, auth_data, auth_tag): + return _AesCbcHmacDecryptor(key, iv, auth_data, auth_tag) + + +class Aes128CbcHmacSha256(_AesCbcHmac): + _key_size = 256 + _name = "A128CBC-HS256" + + +class Aes192CbcHmacSha384(_AesCbcHmac): + _key_size = 384 + _name = "A192CBC-HS384" + + +class Aes256CbcHmacSha512(_AesCbcHmac): + _key_size = 512 + _name = "A256CBC-HS512" + + +Aes128CbcHmacSha256.register() +Aes192CbcHmacSha384.register() +Aes256CbcHmacSha512.register() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_kw.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_kw.py new file mode 100644 index 000000000000..4f0b24e1598b --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_kw.py @@ -0,0 +1,67 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from cryptography.hazmat.primitives.keywrap import aes_key_wrap, aes_key_unwrap +from cryptography.hazmat.backends import default_backend + +from ..algorithm import AsymmetricEncryptionAlgorithm +from ..transform import CryptoTransform + + +class _AesKeyWrapTransform(CryptoTransform): + def transform(self, data): + return aes_key_wrap(self._key, data, default_backend()) + + +class _AesKeyUnwrapTransform(CryptoTransform): + def transform(self, data): + return aes_key_unwrap(self._key, data, default_backend()) + + +class _AesKeyWrap(AsymmetricEncryptionAlgorithm): + _key_size = 256 + + @property + def key_size(self): + return self._key_size + + @property + def key_size_in_bytes(self): + return self._key_size >> 3 + + def create_encryptor(self, key): + key = self._validate_input(key) + return _AesKeyWrapTransform(key) + + def create_decryptor(self, key): + key = self._validate_input(key) + return _AesKeyUnwrapTransform(key) + + def _validate_input(self, key): + if not key: + raise ValueError("key") + if len(key) < self.key_size_in_bytes: + raise ValueError("key must be at least %d bits" % self.key_size) + + return key[: self.key_size_in_bytes] + + +class AesKw128(_AesKeyWrap): + _key_size = 128 + _name = "A128KW" + + +class AesKw192(_AesKeyWrap): + _key_size = 192 + _name = "A192KW" + + +class AesKw256(_AesKeyWrap): + _key_size = 256 + _name = "A256KW" + + +AesKw128.register() +AesKw192.register() +AesKw256.register() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/ecdsa.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/ecdsa.py new file mode 100644 index 000000000000..07f6a19f9712 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/ecdsa.py @@ -0,0 +1,53 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import ec +from cryptography.hazmat.primitives.asymmetric import utils + +from ..algorithm import SignatureAlgorithm +from ..transform import SignatureTransform + + +class _EcdsaSignatureTransform(SignatureTransform): + def __init__(self, key, hash_algorithm): + self._key = key + self._hash_algorithm = hash_algorithm + + def sign(self, digest): + return self._key.sign(digest, ec.ECDSA(utils.Prehashed(self._hash_algorithm))) + + def verify(self, digest, signature): + return self._key.verify(signature, digest, ec.ECDSA(utils.Prehashed(self._hash_algorithm))) + + +class _Ecdsa(SignatureAlgorithm): + def create_signature_transform(self, key): + return _EcdsaSignatureTransform(key, self.default_hash_algorithm) + + +class Ecdsa256(_Ecdsa): + _name = "ES256K" + _default_hash_algorithm = hashes.SHA256() + + +class Es256(_Ecdsa): + _name = "ES256" + _default_hash_algorithm = hashes.SHA256() + + +class Es384(_Ecdsa): + _name = "ES384" + _default_hash_algorithm = hashes.SHA384() + + +class Es512(_Ecdsa): + _name = "ES512" + _default_hash_algorithm = hashes.SHA512() + + +Ecdsa256.register() +Es256.register() +Es384.register() +Es512.register() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_encryption.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_encryption.py new file mode 100644 index 000000000000..e3b72fa8db59 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_encryption.py @@ -0,0 +1,78 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import padding + +from ..algorithm import AsymmetricEncryptionAlgorithm +from ..transform import CryptoTransform + + +class _Rsa1_5Encryptor(CryptoTransform): + def transform(self, data): + return self._key.encrypt(data, padding.PKCS1v15()) + + +class _Rsa1_5Decryptor(CryptoTransform): + def transform(self, data): + return self._key.decrypt(data, padding.PKCS1v15()) + + +class Rsa1_5(AsymmetricEncryptionAlgorithm): # pylint:disable=client-incorrect-naming-convention + _name = "RSA1_5" + + def create_encryptor(self, key): + return _Rsa1_5Encryptor(key) + + def create_decryptor(self, key): + return _Rsa1_5Decryptor(key) + + +class _RsaOaepDecryptor(CryptoTransform): + def __init__(self, key, hash_cls): + self._hash_cls = hash_cls + super(_RsaOaepDecryptor, self).__init__(key) + + def transform(self, data): + oaep_padding = padding.OAEP( + mgf=padding.MGF1(algorithm=self._hash_cls()), algorithm=self._hash_cls(), label=None + ) + return self._key.decrypt(data, oaep_padding) + + +class _RsaOaepEncryptor(CryptoTransform): + def __init__(self, key, hash_cls): + self._hash_cls = hash_cls + super(_RsaOaepEncryptor, self).__init__(key) + + def transform(self, data): + oaep_padding = padding.OAEP( + mgf=padding.MGF1(algorithm=self._hash_cls()), algorithm=self._hash_cls(), label=None + ) + return self._key.encrypt(data, oaep_padding) + + +class RsaOaep(AsymmetricEncryptionAlgorithm): + _name = "RSA-OAEP" + + def create_encryptor(self, key): + return _RsaOaepEncryptor(key, hashes.SHA1) + + def create_decryptor(self, key): + return _RsaOaepDecryptor(key, hashes.SHA1) + + +class RsaOaep256(AsymmetricEncryptionAlgorithm): + _name = "RSA-OAEP-256" + + def create_encryptor(self, key): + return _RsaOaepEncryptor(key, hashes.SHA256) + + def create_decryptor(self, key): + return _RsaOaepDecryptor(key, hashes.SHA256) + + +Rsa1_5.register() +RsaOaep.register() +RsaOaep256.register() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_signing.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_signing.py new file mode 100644 index 000000000000..ffa4628a435b --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_signing.py @@ -0,0 +1,73 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import padding, utils + +from ..algorithm import SignatureAlgorithm +from ..transform import SignatureTransform + + +class RsaSignatureTransform(SignatureTransform): + def __init__(self, key, padding_function, hash_algorithm): + self._key = key + self._padding_function = padding_function + self._hash_algorithm = hash_algorithm + + def sign(self, digest): + return self._key.sign(digest, self._padding_function(digest), self._hash_algorithm) + + def verify(self, digest, signature): + self._key.verify(signature, digest, self._padding_function(digest), utils.Prehashed(self._hash_algorithm)) + + +class RsaSsaPkcs1v15(SignatureAlgorithm): + def create_signature_transform(self, key): + return RsaSignatureTransform(key, lambda _: padding.PKCS1v15(), self._default_hash_algorithm) + + +class RsaSsaPss(SignatureAlgorithm): + def create_signature_transform(self, key): + return RsaSignatureTransform(key, self._get_padding, self._default_hash_algorithm) + + def _get_padding(self, digest): + return padding.PSS(mgf=padding.MGF1(self._default_hash_algorithm), salt_length=len(digest)) + + +class Ps256(RsaSsaPss): + _name = "PS256" + _default_hash_algorithm = hashes.SHA256() + + +class Ps384(RsaSsaPss): + _name = "PS384" + _default_hash_algorithm = hashes.SHA384() + + +class Ps512(RsaSsaPss): + _name = "PS512" + _default_hash_algorithm = hashes.SHA512() + + +class Rs256(RsaSsaPkcs1v15): + _name = "RS256" + _default_hash_algorithm = hashes.SHA256() + + +class Rs384(RsaSsaPkcs1v15): + _name = "RS384" + _default_hash_algorithm = hashes.SHA384() + + +class Rs512(RsaSsaPkcs1v15): + _name = "RS512" + _default_hash_algorithm = hashes.SHA512() + + +Ps256.register() +Ps384.register() +Ps512.register() +Rs256.register() +Rs384.register() +Rs512.register() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/sha_2.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/sha_2.py new file mode 100644 index 000000000000..26c947808dc6 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/sha_2.py @@ -0,0 +1,50 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import hashes + +from ..algorithm import HashAlgorithm +from ..transform import DigestTransform + + +class _Sha2DigestTransform(DigestTransform): + def __init__(self, algorithm): + self._digest = hashes.Hash(algorithm=algorithm, backend=default_backend()) + + def update(self, data): + return self._digest.update(data) + + def finalize(self, data): + return self._digest.finalize() + + +class _Sha2HashAlgorithm(HashAlgorithm): + + _algorithm_cls = None + + def create_digest(self): + return _Sha2DigestTransform(self._algorithm_cls()) # pylint:disable=not-callable + + +class Sha256(_Sha2HashAlgorithm): + _algorithm_cls = hashes.SHA256 + _name = "SHA256" + + +class Sha384(_Sha2HashAlgorithm): + _algorithm_cls = hashes.SHA384 + _name = "SHA384" + + +class Sha512(_Sha2HashAlgorithm): + _algorithm_cls = hashes.SHA512 + _name = "SHA512" + + +Sha256.register() + +Sha384.register() + +Sha512.register() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/ec_key.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/ec_key.py new file mode 100644 index 000000000000..f9220f21e2d5 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/ec_key.py @@ -0,0 +1,83 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +import uuid + +from cryptography.exceptions import InvalidSignature +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.asymmetric.ec import ( + EllipticCurvePublicNumbers, + SECP256R1, + SECP384R1, + SECP521R1, + SECP256K1, +) + +from ._internal import _bytes_to_int, encode_key_vault_ecdsa_signature +from .key import Key +from .algorithms.ecdsa import Es256, Es512, Es384, Ecdsa256 + +_crypto_crv_to_kv_crv = {"secp256r1": "P-256", "secp384r1": "P-384", "secp521r1": "P-521", "secp256k1": "P-256K"} +_kv_crv_to_crypto_cls = { + "P-256": SECP256R1, + "P-256K": SECP256K1, + "P-384": SECP384R1, + "P-521": SECP521R1, + "SECP256K1": SECP256K1, +} +_curve_to_default_algo = { + "P-256": Es256.name(), + "P-256K": Ecdsa256.name(), + "P-384": Es384.name(), + "P-521": Es512.name(), + "SECP256K1": Ecdsa256.name(), +} + + +class EllipticCurveKey(Key): + _supported_signature_algorithms = _curve_to_default_algo.values() + + def __init__(self, x, y, kid=None, curve=None): + super(EllipticCurveKey, self).__init__() + + self._kid = kid or str(uuid.uuid4()) + self._default_algo = _curve_to_default_algo[curve] + curve_cls = _kv_crv_to_crypto_cls[curve] + self._ec_impl = EllipticCurvePublicNumbers(x, y, curve_cls()).public_key(default_backend()) + + @classmethod + def from_jwk(cls, jwk): + if jwk.kty != "EC" and jwk.kty != "EC-HSM": + raise ValueError("The specified key must be of type 'EC' or 'EC-HSM'") + + if not jwk.x or not jwk.y: + raise ValueError("jwk must have values for 'x' and 'y'") + + return cls(_bytes_to_int(jwk.x), _bytes_to_int(jwk.y), kid=jwk.kid, curve=jwk.crv) + + def decrypt(self, cipher_text, **kwargs): + raise NotImplementedError() + + def encrypt(self, plain_text, **kwargs): + raise NotImplementedError() + + def wrap_key(self, key, **kwargs): + raise NotImplementedError() + + def unwrap_key(self, encrypted_key, **kwargs): + raise NotImplementedError() + + def sign(self, digest, **kwargs): + raise NotImplementedError() + + def verify(self, digest, signature, **kwargs): + algorithm = self._get_algorithm("verify", **kwargs) + signer = algorithm.create_signature_transform(self._ec_impl) + dss_signature = encode_key_vault_ecdsa_signature(signature) + try: + # cryptography's verify methods return None, and raise when verification fails + signer.verify(digest, dss_signature) + return True + except InvalidSignature: + return False diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/jose.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/jose.py new file mode 100644 index 000000000000..b6b7fb2d3190 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/jose.py @@ -0,0 +1,129 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ + +import json +import os +from ._internal import _str_to_b64url, _b64_to_str +from .symmetric_key import SymmetricKey +from .key import Key + + +def protect(plaintext, kek=None, alg=None, cek=None, enc=None): # pylint:disable=unused-argument + # if neither the kek or the cek is specified raise an error + if not kek and not cek: + raise ValueError( + "Either kek must be specified for key encryption sharing, " + "or cek must be specified for direct encryption key sharing" + ) + + # key encryption key can be any key (symmetric or asymmetric) + if kek and not isinstance(kek, Key): + raise TypeError("The specified kek must be a valid Key") + + # only symmetric keys are valid for the content encryption key + if cek and not isinstance(cek, SymmetricKey): + raise TypeError("The specified cek must be a valid SymmetricKey") + + # create the cek if not specified + cek = cek or SymmetricKey() + + # kid is the kek id if were using key encryption sharing else it's the cek id for direct sharing + kid = kek.kid if kek else cek.kid + + # alg is 'dir' for direct sharing otherwise use the specified alg + # or the default key wrap algorithm if not specified + alg = "dir" if not kek else alg or kek.default_key_wrap_algorithm + + # use the specified enc or the default encryption algorithm of the cek if not specified + enc = enc or cek.default_encryption_algorithm + + jwe = JweObject() + jwe.unprotected = JweHeader(alg=alg, kid=kid, enc=enc) + jwe.iv = os.urandom(16) + jwe.ciphertext = cek.encrypt() + + # add the encrypted key if we're using key encryption sharing + if kek: + jwe.encrypted_key = kek.wrap_key(key=cek) + + +class JoseObject(object): + def deserialize(self, s): + d = json.loads(s) + self.__dict__ = d # pylint:disable=attribute-defined-outside-init + return self + + def deserialize_b64(self, s): + self.deserialize(_b64_to_str(s)) + return self + + def serialize(self): + return json.dumps(self.__dict__) + + def serialize_b64url(self): + return _str_to_b64url(self.serialize()) + + +class JoseHeader(JoseObject): + def to_compact_header(self): + return _str_to_b64url(json.dumps(self.__dict__)) + + +class JweHeader(JoseHeader): + def __init__(self, alg=None, kid=None, enc=None): + self.alg = alg + self.kid = kid + self.enc = enc + + @staticmethod + def from_compact_header(compact): + header = JweHeader() + header.__dict__ = json.loads(_b64_to_str(compact)) # pylint:disable=attribute-defined-outside-init + return header + + +class JweObject(JoseObject): + def __init__(self): + self.unprotected = None + self.protected = None + self.encrypted_key = None + self.iv = None + self.ciphertext = None + self.tag = None + + def to_flattened_jwe(self): + if not (self.protected, self.encrypted_key, self.iv, self.ciphertext, self.tag): + raise ValueError("JWE is not complete.") + + return json.dumps(self.__dict__) + + +class JwsHeader(JoseHeader): + def __init__(self): + self.alg = None + self.kid = None + self.at = None + self.ts = None + self.p = None + self.typ = None + + @staticmethod + def from_compact_header(compact): + header = JwsHeader() + header.__dict__ = json.loads(_b64_to_str(compact)) # pylint:disable=attribute-defined-outside-init + return header + + +class JwsObject(JoseObject): + def __init__(self): + self.protected = None + self.payload = None + self.signature = None + + def to_flattened_jws(self): + if not (self.protected, self.payload, self.signature): + raise ValueError("JWS is not complete.") + + return json.dumps(self.__dict__) diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py new file mode 100644 index 000000000000..eaea89e9b948 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py @@ -0,0 +1,89 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ + +from abc import ABCMeta, abstractmethod +from six import with_metaclass +from .algorithm import Algorithm + + +class Key(with_metaclass(ABCMeta, object)): + _supported_encryption_algorithms = [] + _supported_key_wrap_algorithms = [] + _supported_signature_algorithms = [] + + def __init__(self): + self._kid = None + + @property + def default_encryption_algorithm(self): + return None + + @property + def default_key_wrap_algorithm(self): + return None + + @property + def default_signature_algorithm(self): + return None + + @property + def supported_encryption_algorithms(self): + return self._supported_encryption_algorithms + + @property + def supported_key_wrap_algorithms(self): + return self._supported_key_wrap_algorithms + + @property + def supported_signature_algorithms(self): + return self._supported_signature_algorithms + + @property + def kid(self): + return self._kid + + @abstractmethod + def decrypt(self, cipher_text, **kwargs): + raise NotImplementedError() + + @abstractmethod + def encrypt(self, plain_text, **kwargs): + raise NotImplementedError() + + @abstractmethod + def wrap_key(self, key, **kwargs): + raise NotImplementedError() + + @abstractmethod + def unwrap_key(self, encrypted_key, **kwargs): + raise NotImplementedError() + + @abstractmethod + def sign(self, digest, **kwargs): + raise NotImplementedError() + + @abstractmethod + def verify(self, digest, signature, **kwargs): + raise NotImplementedError() + + def _get_algorithm(self, op, **kwargs): + default_algorithm, supported_algorithms = { + "encrypt": (self.default_encryption_algorithm, self.supported_encryption_algorithms), + "decrypt": (self.default_encryption_algorithm, self.supported_encryption_algorithms), + "wrapKey": (self.default_key_wrap_algorithm, self.supported_key_wrap_algorithms), + "unwrapKey": (self.default_key_wrap_algorithm, self.supported_key_wrap_algorithms), + "sign": (self.default_signature_algorithm, self.supported_signature_algorithms), + "verify": (self.default_signature_algorithm, self.supported_signature_algorithms), + }[op] + + algorithm = kwargs.get("algorithm", default_algorithm) + + if not isinstance(algorithm, Algorithm): + algorithm = Algorithm.resolve(algorithm) + + if not algorithm or not supported_algorithms or algorithm.name() not in supported_algorithms: + raise ValueError("unsupported algorithm '{}'".format(algorithm)) + + return algorithm diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/rsa_key.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/rsa_key.py new file mode 100644 index 000000000000..e9960f7a2e03 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/rsa_key.py @@ -0,0 +1,240 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +import codecs +import uuid + +from cryptography.exceptions import InvalidSignature +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.asymmetric.rsa import ( + RSAPrivateNumbers, + RSAPublicNumbers, + generate_private_key, + rsa_crt_dmp1, + rsa_crt_dmq1, + rsa_crt_iqmp, + RSAPrivateKey, +) + +from azure.keyvault.keys.models import JsonWebKey +from ._internal import _bytes_to_int, _int_to_bytes +from .key import Key +from .algorithms import Ps256, Ps384, Ps512, Rsa1_5, RsaOaep, RsaOaep256, Rs256, Rs384, Rs512 + + +class RsaKey(Key): # pylint:disable=too-many-public-methods + PUBLIC_KEY_DEFAULT_OPS = ["encrypt", "wrapKey", "verify"] + PRIVATE_KEY_DEFAULT_OPS = ["encrypt", "decrypt", "wrapKey", "unwrapKey", "verify", "sign"] + + _supported_encryption_algorithms = [Rsa1_5.name(), RsaOaep.name(), RsaOaep256.name()] + _supported_key_wrap_algorithms = [Rsa1_5.name(), RsaOaep.name(), RsaOaep256.name()] + _supported_signature_algorithms = [ + Ps256.name(), + Ps384.name(), + Ps512.name(), + Rs256.name(), + Rs384.name(), + Rs512.name(), + ] + + def __init__(self, kid=None): + super(RsaKey, self).__init__() + self._kid = kid + self.kty = None + self.key_ops = None + self._rsa_impl = None + + @property + def n(self): + return _int_to_bytes(self._public_key_material().n) + + @property + def e(self): + return _int_to_bytes(self._public_key_material().e) + + @property + def p(self): + return _int_to_bytes(self._public_key_material().p) if self.is_private_key() else None + + @property + def q(self): + return _int_to_bytes(self._private_key_material().q) if self.is_private_key() else None + + @property + def b(self): + return _int_to_bytes(self._private_key_material().b) if self.is_private_key() else None + + @property + def d(self): + return _int_to_bytes(self._private_key_material().d) if self.is_private_key() else None + + @property + def dq(self): + return _int_to_bytes(self._private_key_material().dmq1) if self.is_private_key() else None + + @property + def dp(self): + return _int_to_bytes(self._private_key_material().dmp1) if self.is_private_key() else None + + @property + def qi(self): + return _int_to_bytes(self._private_key_material().iqmp) if self.is_private_key() else None + + @property + def private_key(self): + return self._rsa_impl if self.is_private_key() else None + + @property + def public_key(self): + return self._rsa_impl.public_key() if self.is_private_key() else self._rsa_impl + + @staticmethod + def generate(kid=None, kty="RSA", size=2048, e=65537): + key = RsaKey() + key.kid = kid or str(uuid.uuid4()) + key.kty = kty + key.key_ops = RsaKey.PRIVATE_KEY_DEFAULT_OPS + # pylint:disable=protected-access + key._rsa_impl = generate_private_key(public_exponent=e, key_size=size, backend=default_backend()) + return key + + @classmethod + def from_jwk(cls, jwk): + if jwk.kty != "RSA" and jwk.kty != "RSA-HSM": + raise ValueError('The specified jwk must have a key type of "RSA" or "RSA-HSM"') + + if not jwk.n or not jwk.e: + raise ValueError("Invalid RSA jwk, both n and e must be have values") + + rsa_key = cls(kid=jwk.kid) + rsa_key.kty = jwk.kty + rsa_key.key_ops = jwk.key_ops + + pub = RSAPublicNumbers(n=_bytes_to_int(jwk.n), e=_bytes_to_int(jwk.e)) + + # if the private key values are specified construct a private key + # only the secret primes and private exponent are needed as other fields can be calculated + if jwk.p and jwk.q and jwk.d: + # convert the values of p, q, and d from bytes to int + p = _bytes_to_int(jwk.p) + q = _bytes_to_int(jwk.q) + d = _bytes_to_int(jwk.d) + + # convert or compute the remaining private key numbers + dmp1 = _bytes_to_int(jwk.dp) if jwk.dp else rsa_crt_dmp1(private_exponent=d, p=p) + dmq1 = _bytes_to_int(jwk.dq) if jwk.dq else rsa_crt_dmq1(private_exponent=d, q=q) + iqmp = _bytes_to_int(jwk.qi) if jwk.qi else rsa_crt_iqmp(p=p, q=q) + + # create the private key from the jwk key values + priv = RSAPrivateNumbers(p=p, q=q, d=d, dmp1=dmp1, dmq1=dmq1, iqmp=iqmp, public_numbers=pub) + key_impl = priv.private_key(default_backend()) + + # if the necessary private key values are not specified create the public key + else: + key_impl = pub.public_key(default_backend()) + + rsa_key._rsa_impl = key_impl # pylint:disable=protected-access + + return rsa_key + + def to_jwk(self, include_private=False): + jwk = JsonWebKey( + kid=self.kid, + kty=self.kty, + key_ops=self.key_ops if include_private else RsaKey.PUBLIC_KEY_DEFAULT_OPS, + n=self.n, + e=self.e, + ) + + if include_private: + jwk.q = self.q + jwk.p = self.p + jwk.d = self.d + jwk.dq = self.dq + jwk.dp = self.dp + jwk.qi = self.qi + + return jwk + + @property + def default_encryption_algorithm(self): + return RsaOaep.name() + + @property + def default_key_wrap_algorithm(self): + return RsaOaep.name() + + @property + def default_signature_algorithm(self): + return Rs256.name() + + def encrypt(self, plain_text, **kwargs): + algorithm = self._get_algorithm("encrypt", **kwargs) + encryptor = algorithm.create_encryptor(self._rsa_impl) + return encryptor.transform(plain_text) + + def decrypt(self, cipher_text, **kwargs): + if not self.is_private_key(): + raise NotImplementedError("The current RsaKey does not support decrypt") + + algorithm = self._get_algorithm("decrypt", **kwargs) + decryptor = algorithm.create_decryptor(self._rsa_impl) + return decryptor.transform(cipher_text) + + def sign(self, digest, **kwargs): + if not self.is_private_key(): + raise NotImplementedError("The current RsaKey does not support sign") + + algorithm = self._get_algorithm("sign", **kwargs) + signer = algorithm.create_signature_transform(self._rsa_impl) + return signer.sign(digest) + + def verify(self, digest, signature, **kwargs): + algorithm = self._get_algorithm("verify", **kwargs) + signer = algorithm.create_signature_transform(self._rsa_impl) + try: + # cryptography's verify methods return None, and raise when verification fails + signer.verify(digest, signature) + return True + except InvalidSignature: + return False + + def wrap_key(self, key, **kwargs): + algorithm = self._get_algorithm("wrapKey", **kwargs) + encryptor = algorithm.create_encryptor(self._rsa_impl) + return encryptor.transform(key) + + def unwrap_key(self, encrypted_key, **kwargs): + if not self.is_private_key(): + raise NotImplementedError("The current RsaKey does not support unwrap") + + algorithm = self._get_algorithm("unwrapKey", **kwargs) + decryptor = algorithm.create_decryptor(self._rsa_impl) + return decryptor.transform(encrypted_key) + + def is_private_key(self): + return isinstance(self._rsa_impl, RSAPrivateKey) + + def _public_key_material(self): + return self.public_key.public_numbers() + + def _private_key_material(self): + return self.private_key.private_numbers() if self.private_key else None + + +def _bytes_to_int(b): + return int(codecs.encode(b, "hex"), 16) + + +def _int_to_bytes(i): + h = hex(i) + if len(h) > 1 and h[0:2] == "0x": + h = h[2:] + + # need to strip L in python 2.x + h = h.strip("L") + + if len(h) % 2: + h = "0" + h + return codecs.decode(h, "hex") diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/symmetric_key.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/symmetric_key.py new file mode 100644 index 000000000000..92cc806710da --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/symmetric_key.py @@ -0,0 +1,128 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ + +import uuid +import os +from .key import Key +from .algorithms.aes_cbc import Aes256Cbc, Aes192Cbc, Aes128Cbc +from .algorithms.aes_cbc_hmac import Aes256CbcHmacSha512, Aes192CbcHmacSha384, Aes128CbcHmacSha256 +from .algorithms.aes_kw import AesKw256, AesKw192, AesKw128 + +key_size_128 = 128 >> 3 +key_size_192 = 192 >> 3 +key_size_256 = 256 >> 3 +key_size_384 = 384 >> 3 +key_size_512 = 512 >> 3 + +_default_key_size = key_size_256 + +_supported_key_sizes = [key_size_128, key_size_192, key_size_256, key_size_384, key_size_512] + +_default_enc_alg_by_size = { + key_size_128: Aes128Cbc.name(), + key_size_192: Aes192Cbc.name(), + key_size_256: Aes128CbcHmacSha256.name(), + key_size_384: Aes192CbcHmacSha384.name(), + key_size_512: Aes256CbcHmacSha512.name(), +} + +_default_kw_alg_by_size = { + key_size_128: AesKw128.name(), + key_size_192: AesKw192.name(), + key_size_256: AesKw256.name(), + key_size_384: AesKw256.name(), + key_size_512: AesKw256.name(), +} + + +class SymmetricKey(Key): + def __init__(self, kid=None, key_bytes=None, key_size=None): + super(SymmetricKey, self).__init__() + + self._kid = kid or str(uuid.uuid4()) + + if not key_bytes: + key_size = key_size or _default_key_size + + if key_size not in _supported_key_sizes: + raise ValueError("The key size must be 128, 192, 256, 384 or 512 bits of data") + + key_bytes = os.urandom(key_size) + + if len(key_bytes) not in _supported_key_sizes: + raise ValueError("The key size must be 128, 192, 256, 384 or 512 bits of data") + + self._key = key_bytes + + @property + def kid(self): + return self._kid + + @property + def default_encryption_algorithm(self): + return _default_enc_alg_by_size[len(self._key)] + + @property + def default_key_wrap_algorithm(self): + return _default_kw_alg_by_size[len(self._key)] + + @property + def supported_encryption_algorithms(self): + supported = [] + key_size = len(self._key) + + if key_size >= key_size_128: + supported.append(Aes128Cbc.name()) + if key_size >= key_size_192: + supported.append(Aes192Cbc.name()) + if key_size >= key_size_256: + supported.append(Aes256Cbc.name()) + supported.append(Aes128CbcHmacSha256.name()) + if key_size >= key_size_384: + supported.append(Aes192CbcHmacSha384.name()) + if key_size >= key_size_512: + supported.append(Aes256CbcHmacSha512.name()) + + return supported + + @property + def supported_key_wrap_algorithms(self): + supported = [] + key_size = len(self._key) + + if key_size >= key_size_128: + supported.append(AesKw128.name()) + if key_size >= key_size_192: + supported.append(AesKw192.name()) + if key_size >= key_size_256: + supported.append(AesKw256.name()) + + return supported + + def encrypt(self, plain_text, iv, **kwargs): # pylint:disable=arguments-differ + algorithm = self._get_algorithm("encrypt", **kwargs) + encryptor = algorithm.create_encryptor(key=self._key, iv=iv) + return encryptor.transform(plain_text, **kwargs) + + def decrypt(self, cipher_text, iv, **kwargs): # pylint:disable=arguments-differ + algorithm = self._get_algorithm("decrypt", **kwargs) + decryptor = algorithm.create_decryptor(key=self._key, iv=iv) + return decryptor.transform(cipher_text, **kwargs) + + def wrap_key(self, key, **kwargs): + algorithm = self._get_algorithm("wrapKey", **kwargs) + encryptor = algorithm.create_encryptor(key=self._key) + return encryptor.transform(key, **kwargs) + + def unwrap_key(self, encrypted_key, **kwargs): + algorithm = self._get_algorithm("decrypt", **kwargs) + decryptor = algorithm.create_decryptor(key=self._key) + return decryptor.transform(encrypted_key, **kwargs) + + def sign(self, digest, **kwargs): + raise NotImplementedError() + + def verify(self, digest, signature, **kwargs): + raise NotImplementedError() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py new file mode 100644 index 000000000000..8571ae7ac9f5 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py @@ -0,0 +1,62 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ + +from abc import ABCMeta, abstractmethod +from six import with_metaclass + + +class CryptoTransform(with_metaclass(ABCMeta, object)): + def __init__(self, key): + self._key = key + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self._key = None + + @abstractmethod + def transform(self, data): + raise NotImplementedError() + + +class BlockCryptoTransform(CryptoTransform): + @abstractmethod + def block_size(self): + raise NotImplementedError() + + @abstractmethod + def update(self, data): + raise NotImplementedError() + + @abstractmethod + def finalize(self, data): + raise NotImplementedError() + + +class AuthenticatedCryptoTransform(with_metaclass(ABCMeta, object)): + @abstractmethod + def tag(self): + raise NotImplementedError() + + +class SignatureTransform(with_metaclass(ABCMeta, object)): + @abstractmethod + def sign(self, digest): + raise NotImplementedError() + + @abstractmethod + def verify(self, digest, signature): + raise NotImplementedError() + + +class DigestTransform(with_metaclass(ABCMeta, object)): + @abstractmethod + def update(self, data): + raise NotImplementedError() + + @abstractmethod + def finalize(self, data): + raise NotImplementedError() 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 8a2819472a01..1dc576643e3f 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 @@ -2,11 +2,12 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -from azure.core.exceptions import HttpResponseError +from azure.core.exceptions import AzureError, HttpResponseError from azure.keyvault.keys.models import Key from azure.keyvault.keys._shared import AsyncKeyVaultClientBase, parse_vault_id from .. import DecryptResult, EncryptResult, SignResult, VerifyResult, UnwrapKeyResult, WrapKeyResult +from .._internal import EllipticCurveKey, RsaKey try: from typing import TYPE_CHECKING @@ -18,6 +19,7 @@ from typing import Any, Optional, Union from azure.core.credentials import TokenCredential from .. import EncryptionAlgorithm, KeyWrapAlgorithm, SignatureAlgorithm + from .._internal import Key as _Key class CryptographyClient(AsyncKeyVaultClientBase): @@ -40,16 +42,22 @@ def __init__(self, key: "Union[Key, str]", credential: "TokenCredential", **kwar if isinstance(key, Key): self._key = key self._key_id = parse_vault_id(key.id) + self._allowed_ops = frozenset(self._key.key_material.key_ops) elif isinstance(key, str): self._key = None self._key_id = parse_vault_id(key) - self._get_key_forbidden = None # type: Optional[bool] + self._keys_get_forbidden = None # type: Optional[bool] + + # will be replaced with actual permissions before any local operations are attempted, if we can get the key + self._allowed_ops = frozenset() else: raise ValueError("'key' must be a Key instance or a key ID string including a version") if not self._key_id.version: raise ValueError("'key' must include a version") + self._internal_key = None # type: Optional[_Key] + super(CryptographyClient, self).__init__(vault_url=self._key_id.vault_url, credential=credential, **kwargs) @property @@ -69,14 +77,34 @@ async def get_key(self) -> "Optional[Key]": :rtype: :class:`~azure.keyvault.keys.models.Key` or None """ - if not (self._key or self._get_key_forbidden): + if not (self._key or self._keys_get_forbidden): try: self._key = await self._client.get_key(self._key_id.vault_url, self._key_id.name, self._key_id.version) + self._allowed_ops = frozenset(self._key.key_material.key_ops) except HttpResponseError as ex: - self._get_key_forbidden = ex.status_code == 403 + # if we got a 403, we don't have keys/get permission and won't try to get the key again + # (other errors may be transient) + self._keys_get_forbidden = ex.status_code == 403 return self._key - async def encrypt(self, algorithm: "EncryptionAlgorithm", plaintext: bytes, **kwargs: "**Any") -> EncryptResult: + async def _get_local_key(self) -> "Optional[_Key]": + """Gets an object implementing local operations. Will be ``None``, if the client was instantiated with a key + id and lacks keys/get permission.""" + + if not self._internal_key: + key = await self.get_key() + if not key: + return None + + if key.key_material.kty.lower().startswith("ec"): + self._internal_key = EllipticCurveKey.from_jwk(key.key_material) + else: + self._internal_key = RsaKey.from_jwk(key.key_material) + + return self._internal_key + + async def encrypt(self, algorithm: "EncryptionAlgorithm", plaintext: bytes, **kwargs: "Any") -> EncryptResult: + # pylint:disable=line-too-long """ Encrypt bytes using the client's key. Requires the keys/encrypt permission. @@ -99,10 +127,16 @@ async def encrypt(self, algorithm: "EncryptionAlgorithm", plaintext: bytes, **kw """ - result = await self._client.encrypt( - self._key_id.vault_url, self._key_id.name, self._key_id.version, algorithm, plaintext, **kwargs - ) - return EncryptResult(key_id=self.key_id, algorithm=algorithm, ciphertext=result.result, authentication_tag=None) + local_key = await self._get_local_key() + if local_key: + if "encrypt" not in self._allowed_ops: + raise AzureError("This client doesn't have 'keys/encrypt' permission") + result = local_key.encrypt(plaintext, algorithm=algorithm.value) + else: + result = await self._client.encrypt( + self._key_id.vault_url, self._key_id.name, self._key_id.version, algorithm, plaintext, **kwargs + ).result + return EncryptResult(key_id=self.key_id, algorithm=algorithm, ciphertext=result, authentication_tag=None) async def decrypt(self, algorithm: "EncryptionAlgorithm", ciphertext: bytes, **kwargs: "**Any") -> DecryptResult: """ @@ -132,11 +166,16 @@ async def decrypt(self, algorithm: "EncryptionAlgorithm", ciphertext: bytes, **k raise ValueError("'authentication_tag' is required when 'authentication_data' is specified") result = await self._client.decrypt( - self._key_id.vault_url, self._key_id.name, self._key_id.version, algorithm, ciphertext, **kwargs + vault_base_url=self._key_id.vault_url, + key_name=self._key_id.name, + key_version=self._key_id.version, + algorithm=algorithm, + value=ciphertext, + **kwargs ) return DecryptResult(decrypted_bytes=result.result) - async def wrap(self, algorithm: "KeyWrapAlgorithm", key: bytes, **kwargs: "**Any") -> WrapKeyResult: + async def wrap_key(self, algorithm: "KeyWrapAlgorithm", key: bytes, **kwargs: "Any") -> WrapKeyResult: """ Wrap a key with the client's key. Requires the keys/wrapKey permission. @@ -152,16 +191,27 @@ async def wrap(self, algorithm: "KeyWrapAlgorithm", key: bytes, **kwargs: "**Any from azure.keyvault.keys.crypto import KeyWrapAlgorithm # wrap returns a tuple with the wrapped bytes and the metadata required to unwrap the key - key_id, wrap_algorithm, wrapped_bytes = await client.wrap(KeyWrapAlgorithm.rsa_oaep, key_bytes) + key_id, wrap_algorithm, wrapped_bytes = await client.wrap_key(KeyWrapAlgorithm.rsa_oaep, key_bytes) """ - result = await self._client.wrap_key( - self._key_id.vault_url, self._key_id.name, self._key_id.version, algorithm=algorithm, value=key, **kwargs - ) - return WrapKeyResult(key_id=self.key_id, algorithm=algorithm, encrypted_key=result.result) - - async def unwrap(self, algorithm: "KeyWrapAlgorithm", encrypted_key: bytes, **kwargs: "**Any") -> UnwrapKeyResult: + local_key = await self._get_local_key() + if local_key: + if "wrapKey" not in self._allowed_ops: + raise AzureError("This client doesn't have 'keys/wrapKey' permission") + result = local_key.wrap_key(key, algorithm=algorithm.value) + else: + result = await self._client.wrap_key( + self._key_id.vault_url, + self._key_id.name, + self._key_id.version, + algorithm=algorithm, + value=key, + **kwargs + ).result + return WrapKeyResult(key_id=self.key_id, algorithm=algorithm, encrypted_key=result) + + async def unwrap_key(self, algorithm: "KeyWrapAlgorithm", encrypted_key: bytes, **kwargs: "Any") -> UnwrapKeyResult: """ Unwrap a key previously wrapped with the client's key. Requires the keys/unwrapKey permission. @@ -176,7 +226,7 @@ async def unwrap(self, algorithm: "KeyWrapAlgorithm", encrypted_key: bytes, **kw from azure.keyvault.keys.crypto import KeyWrapAlgorithm - result = await client.unwrap(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) + result = await client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) unwrapped_bytes = result.unwrapped_bytes """ @@ -215,7 +265,12 @@ async def sign(self, algorithm: "SignatureAlgorithm", digest: bytes, **kwargs: " """ result = await self._client.sign( - self._key_id.vault_url, self._key_id.name, self._key_id.version, algorithm, digest, **kwargs + vault_base_url=self._key_id.vault_url, + key_name=self._key_id.name, + key_version=self._key_id.version, + algorithm=algorithm, + value=digest, + **kwargs ) return SignResult(key_id=self.key_id, algorithm=algorithm, signature=result.result) @@ -246,7 +301,19 @@ async def verify( """ - result = await self._client.verify( - self._key_id.vault_url, self._key_id.name, self._key_id.version, algorithm, digest, signature, **kwargs - ) - return VerifyResult(result=result.value) + local_key = await self._get_local_key() + if local_key: + if "verify" not in self._allowed_ops: + raise AzureError("This client doesn't have 'keys/verify' permission") + result = local_key.verify(digest, signature, algorithm=algorithm.value) + else: + result = await self._client.verify( + vault_base_url=self._key_id.vault_url, + key_name=self._key_id.name, + key_version=self._key_id.version, + algorithm=algorithm, + digest=digest, + signature=signature, + **kwargs + ).value + return VerifyResult(result=result) 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 8e8377d7a9c4..b012898361ad 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 @@ -3,9 +3,10 @@ # Licensed under the MIT License. # ------------------------------------ import six -from azure.core.exceptions import HttpResponseError +from azure.core.exceptions import AzureError, HttpResponseError from . import DecryptResult, EncryptResult, SignResult, VerifyResult, UnwrapKeyResult, WrapKeyResult +from ._internal import EllipticCurveKey, RsaKey from ..models import Key from .._shared import KeyVaultClientBase, parse_vault_id @@ -19,6 +20,7 @@ from typing import Any, Optional, Union from azure.core.credentials import TokenCredential from . import EncryptionAlgorithm, KeyWrapAlgorithm, SignatureAlgorithm + from ._internal import Key as _Key class CryptographyClient(KeyVaultClientBase): @@ -43,16 +45,22 @@ def __init__(self, key, credential, **kwargs): if isinstance(key, Key): self._key = key self._key_id = parse_vault_id(key.id) + self._allowed_ops = frozenset(self._key.key_material.key_ops) elif isinstance(key, six.text_type): self._key = None self._key_id = parse_vault_id(key) - self._get_key_forbidden = None # type: Optional[bool] + self._keys_get_forbidden = None # type: Optional[bool] + + # will be replaced with actual permissions before any local operations are attempted, if we can get the key + self._allowed_ops = frozenset() else: raise ValueError("'key' must be a Key instance or a key ID string including a version") if not self._key_id.version: raise ValueError("'key' must include a version") + self._internal_key = None # type: Optional[_Key] + super(CryptographyClient, self).__init__(vault_url=self._key_id.vault_url, credential=credential, **kwargs) @property @@ -74,15 +82,36 @@ def get_key(self): :rtype: :class:`~azure.keyvault.keys.models.Key` or ``None`` """ - if not (self._key or self._get_key_forbidden): + if not (self._key or self._keys_get_forbidden): try: self._key = self._client.get_key(self._key_id.vault_url, self._key_id.name, self._key_id.version) + self._allowed_ops = frozenset(self._key.key_material.key_ops) except HttpResponseError as ex: - self._get_key_forbidden = ex.status_code == 403 + # if we got a 403, we don't have keys/get permission and won't try to get the key again + # (other errors may be transient) + self._keys_get_forbidden = ex.status_code == 403 return self._key + def _get_local_key(self): + # type: () -> Optional[_Key] + """Gets an object implementing local operations. Will be ``None``, if the client was instantiated with a key + id and lacks keys/get permission.""" + + if not self._internal_key: + key = self.get_key() + if not key: + return None + + if key.key_material.kty.lower().startswith("ec"): + self._internal_key = EllipticCurveKey.from_jwk(key.key_material) + else: + self._internal_key = RsaKey.from_jwk(key.key_material) + + return self._internal_key + def encrypt(self, algorithm, plaintext, **kwargs): # type: (EncryptionAlgorithm, bytes, **Any) -> EncryptResult + # pylint:disable=line-too-long """ Encrypt bytes using the client's key. Requires the keys/encrypt permission. @@ -105,15 +134,21 @@ def encrypt(self, algorithm, plaintext, **kwargs): """ - result = self._client.encrypt( - vault_base_url=self._key_id.vault_url, - key_name=self._key_id.name, - key_version=self._key_id.version, - algorithm=algorithm, - value=plaintext, - **kwargs - ) - return EncryptResult(key_id=self.key_id, algorithm=algorithm, ciphertext=result.result, authentication_tag=None) + local_key = self._get_local_key() + if local_key: + if "encrypt" not in self._allowed_ops: + raise AzureError("This client doesn't have 'keys/encrypt' permission") + result = local_key.encrypt(plaintext, algorithm=algorithm.value) + else: + result = self._client.encrypt( + vault_base_url=self._key_id.vault_url, + key_name=self._key_id.name, + key_version=self._key_id.version, + algorithm=algorithm, + value=plaintext, + **kwargs + ).result + return EncryptResult(key_id=self.key_id, algorithm=algorithm, ciphertext=result, authentication_tag=None) def decrypt(self, algorithm, ciphertext, **kwargs): # type: (EncryptionAlgorithm, bytes, **Any) -> DecryptResult @@ -153,7 +188,7 @@ def decrypt(self, algorithm, ciphertext, **kwargs): ) return DecryptResult(decrypted_bytes=result.result) - def wrap(self, algorithm, key, **kwargs): + def wrap_key(self, algorithm, key, **kwargs): # type: (KeyWrapAlgorithm, bytes, **Any) -> WrapKeyResult """ Wrap a key with the client's key. Requires the keys/wrapKey permission. @@ -170,21 +205,28 @@ def wrap(self, algorithm, key, **kwargs): from azure.keyvault.keys.crypto import KeyWrapAlgorithm # wrap returns a tuple with the wrapped bytes and the metadata required to unwrap the key - key_id, wrap_algorithm, wrapped_bytes = client.wrap(KeyWrapAlgorithm.rsa_oaep, key_bytes) + key_id, wrap_algorithm, wrapped_bytes = client.wrap_key(KeyWrapAlgorithm.rsa_oaep, key_bytes) """ - result = self._client.wrap_key( - vault_base_url=self._key_id.vault_url, - key_name=self._key_id.name, - key_version=self._key_id.version, - algorithm=algorithm, - value=key, - **kwargs - ) - return WrapKeyResult(key_id=self.key_id, algorithm=algorithm, encrypted_key=result.result) - - def unwrap(self, algorithm, encrypted_key, **kwargs): + local_key = self._get_local_key() + if local_key: + if "wrapKey" not in self._allowed_ops: + raise AzureError("This client doesn't have 'keys/wrapKey' permission") + result = local_key.wrap_key(key, algorithm=algorithm.value) + else: + result = self._client.wrap_key( + self._key_id.vault_url, + self._key_id.name, + self._key_id.version, + algorithm=algorithm, + value=key, + **kwargs + ).result + + return WrapKeyResult(key_id=self.key_id, algorithm=algorithm, encrypted_key=result) + + def unwrap_key(self, algorithm, encrypted_key, **kwargs): # type: (KeyWrapAlgorithm, bytes, **Any) -> UnwrapKeyResult """ Unwrap a key previously wrapped with the client's key. Requires the keys/unwrapKey permission. @@ -200,7 +242,7 @@ def unwrap(self, algorithm, encrypted_key, **kwargs): from azure.keyvault.keys.crypto import KeyWrapAlgorithm - result = client.unwrap(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) + result = client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) unwrapped_bytes = result.unwrapped_bytes """ @@ -270,14 +312,21 @@ def verify(self, algorithm, digest, signature, **kwargs): assert verified.result is True """ + # def verify(self, vault_base_url, key_name, key_version, algorithm, digest, signature, cls=None, **kwargs): - result = self._client.verify( - vault_base_url=self._key_id.vault_url, - key_name=self._key_id.name, - key_version=self._key_id.version, - algorithm=algorithm, - digest=digest, - signature=signature, - **kwargs - ) - return VerifyResult(result=result.value) + local_key = self._get_local_key() + if local_key: + if "verify" not in self._allowed_ops: + raise AzureError("This client doesn't have 'keys/verify' permission") + result = local_key.verify(digest, signature, algorithm=algorithm.value) + else: + result = self._client.verify( + vault_base_url=self._key_id.vault_url, + key_name=self._key_id.name, + key_version=self._key_id.version, + algorithm=algorithm, + digest=digest, + signature=signature, + **kwargs + ).value + return VerifyResult(result=result) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_ec_verify_local.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_ec_verify_local.yaml new file mode 100644 index 000000000000..9b19ac489b3a --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_ec_verify_local.yaml @@ -0,0 +1,686 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-384/create?api-version=7.0 + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: + - no-cache + content-length: + - '87' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + www-authenticate: + - Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 401 + message: Unauthorized +- request: + body: '{"kty": "EC", "crv": "P-384"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '29' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-384/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault44021012.vault.azure.net/keys/ec-verify-P-384/7860e1bd60294c06b6fe85ade9fd185f","kty":"EC","key_ops":["sign","verify"],"crv":"P-384","x":"_w84ZW-i_1wjln_aIlV5LbzwOfRQQx9mlrZcMslDio4oDklNohtuSTi1ctaysXmj","y":"9lObf8l70YwkOTThE7I1-_D-TYr3MYOp304to9_hWeIBOzAOewsjjHPUQGxUNaAq"},"attributes":{"enabled":true,"created":1566426667,"updated":1566426667,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '404' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "ES384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-384/7860e1bd60294c06b6fe85ade9fd185f/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault44021012.vault.azure.net/keys/ec-verify-P-384/7860e1bd60294c06b6fe85ade9fd185f","value":"gmovxdePB2-j-K03nC5MR5pNr9buMDIotBsSIZLnW2YQdlSHpeWwdQmMAIu4SxGELT0GEpEliy77MRTfgCQybPMEBeFqGa5vznwzoRCJr-juVjS8DnRVglKWf7j99qD4"}' + headers: + cache-control: + - no-cache + content-length: + - '240' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB", + "alg": "ES384", "value": "gmovxdePB2-j-K03nC5MR5pNr9buMDIotBsSIZLnW2YQdlSHpeWwdQmMAIu4SxGELT0GEpEliy77MRTfgCQybPMEBeFqGa5vznwzoRCJr-juVjS8DnRVglKWf7j99qD4"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '235' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-384/7860e1bd60294c06b6fe85ade9fd185f/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "EC", "crv": "P-256"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '29' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-256/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault44021012.vault.azure.net/keys/ec-verify-P-256/56c7a1933fbc4c4a89741142e2770477","kty":"EC","key_ops":["sign","verify"],"crv":"P-256","x":"2S2F3F-8kv5VLVo1-IEOdi2HKdkp0Qk9bEUecujC7SA","y":"24HA0IjQU3SNR9VFENgIcDPOKBCEaDaweeo_fZqMkaI"},"attributes":{"enabled":true,"created":1566426667,"updated":1566426667,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '362' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "ES256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-256/56c7a1933fbc4c4a89741142e2770477/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault44021012.vault.azure.net/keys/ec-verify-P-256/56c7a1933fbc4c4a89741142e2770477","value":"pUn7ssS7E-BlvVImo2TkNpXJDxjJpOqUxZYLnuj4JbTd1sc07iFiL6PhTGBkYMixuQ_hamz_nXFxIJ-I4AjceA"}' + headers: + cache-control: + - no-cache + content-length: + - '198' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg", "alg": "ES256", + "value": "pUn7ssS7E-BlvVImo2TkNpXJDxjJpOqUxZYLnuj4JbTd1sc07iFiL6PhTGBkYMixuQ_hamz_nXFxIJ-I4AjceA"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '172' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-256/56c7a1933fbc4c4a89741142e2770477/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "EC", "crv": "P-256K"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '30' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-256K/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault44021012.vault.azure.net/keys/ec-verify-P-256K/b76c64f2f7824e0eb7aa16bf79b1cfd4","kty":"EC","key_ops":["sign","verify"],"crv":"P-256K","x":"f7XunthcYcTTcSpa_VLy182GNGASz5jcOJU3A0OsxR0","y":"yl-f7HlSKqQtcCFvcBE_-HJ4-2wVDkDk3tKoPkxe0AQ"},"attributes":{"enabled":true,"created":1566426668,"updated":1566426668,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '364' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "ES256K", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '73' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-256K/b76c64f2f7824e0eb7aa16bf79b1cfd4/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault44021012.vault.azure.net/keys/ec-verify-P-256K/b76c64f2f7824e0eb7aa16bf79b1cfd4","value":"dvbneCxrec28umBZdIodgwWfitwYl4u5gteSWN30MWZFnQx93vMTsdeCPicEoVAZKeY6TKyYacydaIuQKiw6kA"}' + headers: + cache-control: + - no-cache + content-length: + - '199' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg", "alg": "ES256K", + "value": "dvbneCxrec28umBZdIodgwWfitwYl4u5gteSWN30MWZFnQx93vMTsdeCPicEoVAZKeY6TKyYacydaIuQKiw6kA"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '173' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-256K/b76c64f2f7824e0eb7aa16bf79b1cfd4/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "EC", "crv": "P-521"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '29' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-521/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault44021012.vault.azure.net/keys/ec-verify-P-521/c86a1abf06e040b984aa635c21610d41","kty":"EC","key_ops":["sign","verify"],"crv":"P-521","x":"AcR0iO0gOQJfVN5kA9zMcN40ghKzOAwDbx-4aKS3byD7gJ-LkYBLqB6U1xqIrL25vY6B7HKmuWFvuUpWCR-QkZfe","y":"AJ8Yd9vHAfK2m9aD9znLdv5TnHalTtXOHE2xKqsoTSNNke1EUI2EmDFRHuF-8l5ps0l2Wg4PXpDIj_EKhtdm7ZaM"},"attributes":{"enabled":true,"created":1566426668,"updated":1566426668,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '452' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "ES512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-521/c86a1abf06e040b984aa635c21610d41/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault44021012.vault.azure.net/keys/ec-verify-P-521/c86a1abf06e040b984aa635c21610d41","value":"AHRTKw2ZzQZcsA6lWv7yrKuDC2Ou3tHmKQUaT9s1D0Xn7--GjdL3d6EJ35OxiYccb1nxO9R-H9bKpnAsG7H2Dj7cAY24Xh5goQ8f_rZd26wjdnrLfjtNWqPgBlDYaEQWTlHX9SqT44JygaPYh0aushlpm-ZNRvXfE8YxHKfLoAYm8X7V"}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ", + "alg": "ES512", "value": "AHRTKw2ZzQZcsA6lWv7yrKuDC2Ou3tHmKQUaT9s1D0Xn7--GjdL3d6EJ35OxiYccb1nxO9R-H9bKpnAsG7H2Dj7cAY24Xh5goQ8f_rZd26wjdnrLfjtNWqPgBlDYaEQWTlHX9SqT44JygaPYh0aushlpm-ZNRvXfE8YxHKfLoAYm8X7V"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '305' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault44021012.vault.azure.net/keys/ec-verify-P-521/c86a1abf06e040b984aa635c21610d41/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_and_decrypt.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_and_decrypt.yaml index 80e7d5b968fc..d01796713c76 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_and_decrypt.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_and_decrypt.yaml @@ -13,19 +13,22 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: PUT uri: https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd?api-version=7.0 response: body: - string: '' + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' headers: cache-control: - no-cache content-length: - - '0' + - '87' + content-type: + - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:56:33 GMT + - Thu, 22 Aug 2019 13:39:26 GMT expires: - '-1' pragma: @@ -42,26 +45,25 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"key": {"n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", - "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", - "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", - "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + body: '{"key": {"e": "AQAB", "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", "key_ops": ["encrypt", "decrypt", "sign", "verify", "wrapKey", "unwrapKey"], - "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", - "kty": "RSA", "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3", + "kty": "RSA", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", - "e": "AQAB"}}' + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3", + "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU"}}' headers: Accept: - application/json @@ -74,12 +76,12 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: PUT uri: https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd?api-version=7.0 response: body: - string: '{"key":{"kid":"https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/06669bf3be054e00baff271677b662de","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU","e":"AQAB"},"attributes":{"enabled":true,"created":1564091794,"updated":1564091794,"recoveryLevel":"Purgeable"}}' + string: '{"key":{"kid":"https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/88547854a5b8474da6dcc95dd975f632","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU","e":"AQAB"},"attributes":{"enabled":true,"created":1566481167,"updated":1566481167,"recoveryLevel":"Purgeable"}}' headers: cache-control: - no-cache @@ -88,7 +90,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:56:34 GMT + - Thu, 22 Aug 2019 13:39:27 GMT expires: - '-1' pragma: @@ -102,16 +104,66 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/88547854a5b8474da6dcc95dd975f632?api-version=7.0 + response: + body: + string: '{"error":{"code":"Forbidden","message":"Operation is not allowed.\r\nOperation: + \"get\"\r\nCaller: appid=3525c2f5-9605-4d01-b30b-59272b48be7f;oid=00000000-0000-0000-0000-000000000000;numgroups=0;iss=https://sts.windows.net/00000000-0000-0000-0000-000000000000/\r\nVault: + vault899e11dd;location=westus","innererror":{"code":"ForbiddenByPolicy"}}}' + headers: + cache-control: + - no-cache + content-length: + - '345' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 22 Aug 2019 13:39:27 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 403 + message: Forbidden - request: body: '{"value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ", "alg": "RSA-OAEP"}' @@ -127,12 +179,12 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/06669bf3be054e00baff271677b662de/encrypt?api-version=7.0 + uri: https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/88547854a5b8474da6dcc95dd975f632/encrypt?api-version=7.0 response: body: - string: '{"kid":"https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/06669bf3be054e00baff271677b662de","value":"EccW1iW_fq68ZQZFOvJ9DX_Tnf4kud6daHTOyXZCjhcyBr8TwEDOef_uJppgEvh9NbxL2XFHPpKOyBTRWOR2wpwGfYKzTDh2QJToXsbXq5zs4Gh2VqM7ar42o9umGGDueGeleATKNMsz-WIGO_P1ErnP-VbqqRvgqv72iBQKLRi855qGfSa3uKho-GMV3s8lnIgbgVozwLNg5vgj1bjq7rIZALq_x6a6opn8RCN9eQCrc-2kYjA_NBql-CDaQV1wA2acOqAHLyfpK5JihWUBkzTD1dVFsQw3stdUIrcLf3LYDwe3Ti9kxh6KPJv-4PjCbyiG5sQwJ66DmyeFFpuB-Q"}' + string: '{"kid":"https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/88547854a5b8474da6dcc95dd975f632","value":"hMW24BWx8Fupb4j7lbcQrZ9qCemeDcBnvZ1muwb-bB8zEWUr2CV8Z0GOpPuG2CgdxNPOfRZpMPpyvMsehlx_lQQvLTlwH3oiXkczv70iC63jQKR4OS_4wTZ4xeNgYcXGhJLD-uNh61ci82afM1x8osoidPzbLSZFeqSUse2yG7GpxqtmuAy8Ecj-I9OwmTyAGnXEeHiPzLcQ6NzWj5P08CZdH4e0KIFGGJN-PiQHmAaXs2XfX-VbTmnwIXdE6GtwCpuk0FMnwmHO36Ov3cUGocD7VkgsurA0ScN-GThJjmeFCuMSPjxhmEb_bsPqdHvov9LYMyBLe8D4CnTY0gmHTw"}' headers: cache-control: - no-cache @@ -141,7 +193,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:56:33 GMT + - Thu, 22 Aug 2019 13:39:27 GMT expires: - '-1' pragma: @@ -155,18 +207,18 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "EccW1iW_fq68ZQZFOvJ9DX_Tnf4kud6daHTOyXZCjhcyBr8TwEDOef_uJppgEvh9NbxL2XFHPpKOyBTRWOR2wpwGfYKzTDh2QJToXsbXq5zs4Gh2VqM7ar42o9umGGDueGeleATKNMsz-WIGO_P1ErnP-VbqqRvgqv72iBQKLRi855qGfSa3uKho-GMV3s8lnIgbgVozwLNg5vgj1bjq7rIZALq_x6a6opn8RCN9eQCrc-2kYjA_NBql-CDaQV1wA2acOqAHLyfpK5JihWUBkzTD1dVFsQw3stdUIrcLf3LYDwe3Ti9kxh6KPJv-4PjCbyiG5sQwJ66DmyeFFpuB-Q", + body: '{"value": "hMW24BWx8Fupb4j7lbcQrZ9qCemeDcBnvZ1muwb-bB8zEWUr2CV8Z0GOpPuG2CgdxNPOfRZpMPpyvMsehlx_lQQvLTlwH3oiXkczv70iC63jQKR4OS_4wTZ4xeNgYcXGhJLD-uNh61ci82afM1x8osoidPzbLSZFeqSUse2yG7GpxqtmuAy8Ecj-I9OwmTyAGnXEeHiPzLcQ6NzWj5P08CZdH4e0KIFGGJN-PiQHmAaXs2XfX-VbTmnwIXdE6GtwCpuk0FMnwmHO36Ov3cUGocD7VkgsurA0ScN-GThJjmeFCuMSPjxhmEb_bsPqdHvov9LYMyBLe8D4CnTY0gmHTw", "alg": "RSA-OAEP"}' headers: Accept: @@ -180,12 +232,12 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/06669bf3be054e00baff271677b662de/decrypt?api-version=7.0 + uri: https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/88547854a5b8474da6dcc95dd975f632/decrypt?api-version=7.0 response: body: - string: '{"kid":"https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/06669bf3be054e00baff271677b662de","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + string: '{"kid":"https://vault899e11dd.vault.azure.net/keys/keycrypt899e11dd/88547854a5b8474da6dcc95dd975f632","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' headers: cache-control: - no-cache @@ -194,7 +246,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:56:33 GMT + - Thu, 22 Aug 2019 13:39:27 GMT expires: - '-1' pragma: @@ -208,11 +260,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_local.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_local.yaml new file mode 100644 index 000000000000..29a30cf449d7 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_local.yaml @@ -0,0 +1,428 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault256a0f5b.vault.azure.net/keys/encrypt-local/create?api-version=7.0 + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: + - no-cache + content-length: + - '87' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:37 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + www-authenticate: + - Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 401 + message: Unauthorized +- request: + body: '{"key_size": 4096, "kty": "RSA"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault256a0f5b.vault.azure.net/keys/encrypt-local/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"tuLvr9yL8AB5OXpzE_bu6RdwqF10RWpDmH255yxaedCXFHts8JNcAu9KmNDHyUUdgFIBCnjAJk69mNrIcqWumKQRQ7jhjXOBjm0nGzzZmAB17SwfIx3NicDRXSNjsO4E1mLa-Icyu5uzMJbk14MJA2SuAyKyTOcYJdL_FwpoBGyBtCr-VivXXydY5nk6Gowv_HQON0-DfTAGVT23pj4vsIyUXUdr2kkggMSRfpvDr6LbrReoCgiCXzZOsEb9nk0XaIpJjiMqmn2aAijiAXym9imm8LTcqZNsSomJy9cjXQy7-iFigu4fnPL8Ln1buWq8n4SugKfoOSO4qyKn1MzxWWM2bU3ydjIM-Y8S3loS4mLtJRlQNAHCwpVsPhNf_jvhjUJ5ys98q5C1uhp9sdMhW7Nnk_MoMRmsGmflOvmGJMXl1hOL4-5kd8jLpZTS3mDq3IQeZiswm7mSaJ6KXb6GDvD8UeHOu42kxG00vAc091ZiK2tx7f148XrbWLmDxpd62rm3AoVTyz9pyEQCTEvUWUTQbqamHMabSuYgFuv5VX28iGFUZpLU022e5OHccqs-u8s9-FRUeUPpAlis9RGI-ygQSEae9UWijGhmdJ4xXt3Jd5foin-ozAfJ5xdjesRx4pxKsfHcmwefcNrvlyWP6B_j0UCOp05apGUHMCGrghk","e":"AQAB"},"attributes":{"enabled":true,"created":1566426700,"updated":1566426700,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '990' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ", + "alg": "RSA-OAEP"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '299' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a/encrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a","value":"fxMA_leHBfCAl5v7BkC6v703UwGWok_voSIQmWLCk6RJFNn3BWGtvyzJNAIOJV7KG2Cirv6hKxPEpFmGr_gy8cgracOOyXa7_F-QCcuK0KDgHPYtdoWkAHqqVOdFKR0KFkZ8faUQwh99njhCqIbJFfyRDvPB8GAtylc7Zs-NdZWz6QYqZpHm1NIyDDV1RlZs_qMX2YceoafHUofBVOzSxo7NyrtG8CHkYX1-qvQYGpz8YTJT6xEHDwXfRXEm7WUegXD2F7vnrVf-mx1asVp3saefti1Rb_0ZHwlZrXo17BkBSSpGTfrySeGubWBdVfjoTTrOO6VweIMflkUW_OERZCN25FBz3JAA9zafHO5HiRiAqkze2AqPABJa5IL0LtuCok565Pl9VCugn88iXCA8ZUbDcmWcNc0JrtE6iU3TD9ZeITagxRU6cVDMxM3l4r6FVQvBoNXKMug9IJS3xMYiIjcBFzOhdJt_XlX3osugmyb9mtD60_M6YYculhezRuxRv07g0po5NQFA1Rx8nPzfjsQ7wU6VGrNMATXRdvY-dhR7Iw0tbciq_kh7tAm72z5rUf96EoNx5vTXuEgjNK5QKyOggb8oZJi-DkDp3XEa9PQCLD_GVoWK1uAFspIJT54OAEuvSfxytO71zdMOE3Qac1469-XVobpLfAKGWkOopxU"}' + headers: + cache-control: + - no-cache + content-length: + - '793' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"value": "fxMA_leHBfCAl5v7BkC6v703UwGWok_voSIQmWLCk6RJFNn3BWGtvyzJNAIOJV7KG2Cirv6hKxPEpFmGr_gy8cgracOOyXa7_F-QCcuK0KDgHPYtdoWkAHqqVOdFKR0KFkZ8faUQwh99njhCqIbJFfyRDvPB8GAtylc7Zs-NdZWz6QYqZpHm1NIyDDV1RlZs_qMX2YceoafHUofBVOzSxo7NyrtG8CHkYX1-qvQYGpz8YTJT6xEHDwXfRXEm7WUegXD2F7vnrVf-mx1asVp3saefti1Rb_0ZHwlZrXo17BkBSSpGTfrySeGubWBdVfjoTTrOO6VweIMflkUW_OERZCN25FBz3JAA9zafHO5HiRiAqkze2AqPABJa5IL0LtuCok565Pl9VCugn88iXCA8ZUbDcmWcNc0JrtE6iU3TD9ZeITagxRU6cVDMxM3l4r6FVQvBoNXKMug9IJS3xMYiIjcBFzOhdJt_XlX3osugmyb9mtD60_M6YYculhezRuxRv07g0po5NQFA1Rx8nPzfjsQ7wU6VGrNMATXRdvY-dhR7Iw0tbciq_kh7tAm72z5rUf96EoNx5vTXuEgjNK5QKyOggb8oZJi-DkDp3XEa9PQCLD_GVoWK1uAFspIJT54OAEuvSfxytO71zdMOE3Qac1469-XVobpLfAKGWkOopxU", + "alg": "RSA-OAEP"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '715' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a/decrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: + - no-cache + content-length: + - '377' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ", + "alg": "RSA-OAEP-256"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '303' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a/encrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a","value":"SRT3xtejh0BkWk9IIXqJO6NhQEEJqSJsL4FSvAnERUai6MuutreXP9iMGeMuh0RVgbhIM0LlrBrV8cKVJVeXs_XQ57Xq2q6LJi3uxMHAlYN60chTj2e5S4Tjz2URHUONz3HFg7ozmWEaV_KtvwdMaR4B5jskvQpHjh_5zf0093_e7XNvuLWQP4YL6gqe6TflN9sRW-1Wopf0qroBQnbx_21EHh3BdKx8izByaRoD8w88WAkGjiZb527Hfp5bnEoDAV2Lhd-YUPJxHj9F9K-uMjD5aa0bmX3AzlhVGmvu4Ot1HBrYrP3iyCgq8z0d7xjYDPtFA_MdKL9FLgRyDAojCoG5GqAj0Bmz89V_zhFDsiumoey3YcvjyLEod-9iNFu2M61StZDQ1mgqnJvakKMa_FGHEwPxLfxakxVRl1HuWza-5UVXBWB6tU3qbcRkZu735iDs5FsgsXIKC9LiYBqT-nmDvg5mJaK3cOflMXppwuQ5oX9tJ6BWu1u7Ro5GXUiTexuSgUGeAp8jfuNgw4pWNEp9qZK3KeDgSOi2Tf63-WJQbdVnb10VuPuZFobG1yXbb895aMKGQj1WS4e46K1AMDUlKliy4kHpb-zRXmp2gFqFkYLuNbZGEzjlD9mndMf_pbllOfc_hI5kMZsdyodp-8oNHvfPk4X33OgzKTqMQk0"}' + headers: + cache-control: + - no-cache + content-length: + - '793' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"value": "SRT3xtejh0BkWk9IIXqJO6NhQEEJqSJsL4FSvAnERUai6MuutreXP9iMGeMuh0RVgbhIM0LlrBrV8cKVJVeXs_XQ57Xq2q6LJi3uxMHAlYN60chTj2e5S4Tjz2URHUONz3HFg7ozmWEaV_KtvwdMaR4B5jskvQpHjh_5zf0093_e7XNvuLWQP4YL6gqe6TflN9sRW-1Wopf0qroBQnbx_21EHh3BdKx8izByaRoD8w88WAkGjiZb527Hfp5bnEoDAV2Lhd-YUPJxHj9F9K-uMjD5aa0bmX3AzlhVGmvu4Ot1HBrYrP3iyCgq8z0d7xjYDPtFA_MdKL9FLgRyDAojCoG5GqAj0Bmz89V_zhFDsiumoey3YcvjyLEod-9iNFu2M61StZDQ1mgqnJvakKMa_FGHEwPxLfxakxVRl1HuWza-5UVXBWB6tU3qbcRkZu735iDs5FsgsXIKC9LiYBqT-nmDvg5mJaK3cOflMXppwuQ5oX9tJ6BWu1u7Ro5GXUiTexuSgUGeAp8jfuNgw4pWNEp9qZK3KeDgSOi2Tf63-WJQbdVnb10VuPuZFobG1yXbb895aMKGQj1WS4e46K1AMDUlKliy4kHpb-zRXmp2gFqFkYLuNbZGEzjlD9mndMf_pbllOfc_hI5kMZsdyodp-8oNHvfPk4X33OgzKTqMQk0", + "alg": "RSA-OAEP-256"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '719' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a/decrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: + - no-cache + content-length: + - '377' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ", + "alg": "RSA1_5"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '297' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a/encrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a","value":"pdg5-pfeRqiWbbbh-4k95TNFM_32ZdVPjasx_6d0GGA6DGjLc8F485dMGACzW32saAaNpVqwg92l-0wdOkl2gTQfIUv0maYaK6DgQllp5rlkxGeL6WjXsqnQT0r5yaA0i2ZLLf0Dv2ASJMEaTWQVxMq82xxK0NfjxAjytd4O62DXGvtyKZs9qFbyi8T7KkWWNHRXidZm6nEbgI2rasjwWKUwCYsMca7pRUvVNjnNckQrIZwDDgNs1u581XMSuLflBL7XOUvYUShl9tRdUl31VewlY10_sZcKRo3hYYPx5gnWp1qC8cOhSGnEUsw2g4XiCWOIOj99wl3TQnzQFT4qBZgQyOe6FPU94AYJmSRbYbDj7GqqdX1lvi_daPx1iEWd4FuKb6XdK4lWr8c3-MlBOB359q5nwE7AvksLq3HfTf4Rj1gcwrdirubelHaYx_gwLGz___dKwBLvgJ8impQTVYRjCdUHzqmRFFGdw_OHQHyaWxZsc4AY8pb08jfci9EigeqBiOtl5Zc-kfK8F620SBLnIUdQXaDK_BPWz5-5VmJn3XWnBLy0dF0_6pZJEjyVBIcmaZ4UNOiYRGKaO4CSMUNsIWT8iBrYoVkH9dI5NjO3QdDqmMHrq30NoWurBkA9BdcPVJg9B7pqcNFV-MBuut1qadlMQvv6tvZkg4Qm4ew"}' + headers: + cache-control: + - no-cache + content-length: + - '793' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"value": "pdg5-pfeRqiWbbbh-4k95TNFM_32ZdVPjasx_6d0GGA6DGjLc8F485dMGACzW32saAaNpVqwg92l-0wdOkl2gTQfIUv0maYaK6DgQllp5rlkxGeL6WjXsqnQT0r5yaA0i2ZLLf0Dv2ASJMEaTWQVxMq82xxK0NfjxAjytd4O62DXGvtyKZs9qFbyi8T7KkWWNHRXidZm6nEbgI2rasjwWKUwCYsMca7pRUvVNjnNckQrIZwDDgNs1u581XMSuLflBL7XOUvYUShl9tRdUl31VewlY10_sZcKRo3hYYPx5gnWp1qC8cOhSGnEUsw2g4XiCWOIOj99wl3TQnzQFT4qBZgQyOe6FPU94AYJmSRbYbDj7GqqdX1lvi_daPx1iEWd4FuKb6XdK4lWr8c3-MlBOB359q5nwE7AvksLq3HfTf4Rj1gcwrdirubelHaYx_gwLGz___dKwBLvgJ8impQTVYRjCdUHzqmRFFGdw_OHQHyaWxZsc4AY8pb08jfci9EigeqBiOtl5Zc-kfK8F620SBLnIUdQXaDK_BPWz5-5VmJn3XWnBLy0dF0_6pZJEjyVBIcmaZ4UNOiYRGKaO4CSMUNsIWT8iBrYoVkH9dI5NjO3QdDqmMHrq30NoWurBkA9BdcPVJg9B7pqcNFV-MBuut1qadlMQvv6tvZkg4Qm4ew", + "alg": "RSA1_5"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '713' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a/decrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault256a0f5b.vault.azure.net/keys/encrypt-local/80bf9bd019404b4fa40ac219d148858a","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: + - no-cache + content-length: + - '377' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_rsa_verify_local.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_rsa_verify_local.yaml new file mode 100644 index 000000000000..09aa07c38a9e --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_rsa_verify_local.yaml @@ -0,0 +1,2104 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/create?api-version=7.0 + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: + - no-cache + content-length: + - '87' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + www-authenticate: + - Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 401 + message: Unauthorized +- request: + body: '{"key_size": 2048, "kty": "RSA"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"qlNc94sJVkQIef8fj5cBYA6xyFWUKV8je_Xt11QV6vxP8qp9MZ8NBsfSfWqh86loaqATCwrXsHRqxvq6_TBjsdjUfUeRbDlXhxhWJ3VO7azVa4hBAHmCYLLrOfcrD7yIp32bAZld26pWkw4dE5CY8u74xgwaZinXpNbbHEVZ47MIQdsTgYzjwDF0FROAEXGgjcRzdrRnJpXIA1UNT_rKdByjm9T7qgUgpQZ9yRbrY5XHoumFAemqAb953cv1acgOcLNkHvZCb3wO1XS1ChynHgGSrwGPJ3-LkDqnUZW2kTU5Tx7edY-OpMszIyQ-wQI1QeFOFffwfGG9ov2fEdbqeQ","e":"AQAB"},"attributes":{"enabled":true,"created":1566427084,"updated":1566427084,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '651' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "PS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e","value":"RrH9PBhkC47U7UmqdctV3XCGam4KfmTMGCFmr7pHU7JYMS1TMPHq7HMgk5tP19QIK4FZ9idjQUjFotCR-V6rOeNJ-Wj4sh70EJkTfzAP_FnRdCT_2eTW9UKTyB-mtzoMXW642Oy2ed89H1HjGKKGoHgqamxH5Uew0LFsLnEEgaawk473MsXx2l69_bP62E5KXtP2VNCc0QcAkT_C7IV28eNI8JmHT9arOtzliWyL8Ye3-MwokReRRRpYPaZ7UcgwiyjJc2O6mWQYMh5VPd5lxJWeSMUAM3p0J2Xq3eY9hKXOWUQyWUoKn65zuOD1D10Mr9Fo6HkmWZQY7AI3XeRlFA"}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg", "alg": "PS256", + "value": "RrH9PBhkC47U7UmqdctV3XCGam4KfmTMGCFmr7pHU7JYMS1TMPHq7HMgk5tP19QIK4FZ9idjQUjFotCR-V6rOeNJ-Wj4sh70EJkTfzAP_FnRdCT_2eTW9UKTyB-mtzoMXW642Oy2ed89H1HjGKKGoHgqamxH5Uew0LFsLnEEgaawk473MsXx2l69_bP62E5KXtP2VNCc0QcAkT_C7IV28eNI8JmHT9arOtzliWyL8Ye3-MwokReRRRpYPaZ7UcgwiyjJc2O6mWQYMh5VPd5lxJWeSMUAM3p0J2Xq3eY9hKXOWUQyWUoKn65zuOD1D10Mr9Fo6HkmWZQY7AI3XeRlFA"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "PS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e","value":"dM4zWvzN0IpELBJ4C_KjSy2zQMf5oTqBA6dxXgjGG0VFxmHvYd92EfL0lyteXfDLQDlKiELR4D-crZMXx12EDv5x2Y80t7cDWMdcjPG5aZqe0Zb90fVYB5vvQzdl7RfSiKActj_YSkIyBIBNSQbzcApoMWIgtBpJQTzMI3JdMJmVBx4eXJg1edarNQhEqw93Qw4c3sy8m2tvj9Xgzn62Ko1S7yNibqR9JBUHiSMrvEMd5-I1mgQVZKE5y8cYXgJslyDSAXoYz0W-hojUL1pvdx3L_zSxTZlqRyvWCPhnMMu0eRL4YOi0S2x5rT0R1DJioyuZ7qXo-VkVRP1JLeEtvw"}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB", + "alg": "PS384", "value": "dM4zWvzN0IpELBJ4C_KjSy2zQMf5oTqBA6dxXgjGG0VFxmHvYd92EfL0lyteXfDLQDlKiELR4D-crZMXx12EDv5x2Y80t7cDWMdcjPG5aZqe0Zb90fVYB5vvQzdl7RfSiKActj_YSkIyBIBNSQbzcApoMWIgtBpJQTzMI3JdMJmVBx4eXJg1edarNQhEqw93Qw4c3sy8m2tvj9Xgzn62Ko1S7yNibqR9JBUHiSMrvEMd5-I1mgQVZKE5y8cYXgJslyDSAXoYz0W-hojUL1pvdx3L_zSxTZlqRyvWCPhnMMu0eRL4YOi0S2x5rT0R1DJioyuZ7qXo-VkVRP1JLeEtvw"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '449' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "PS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e","value":"aX_38iSC4z_tmfLLPrnfvF2gkI6rZSRDeeCtZ-RPlreWNPGEo8S_F6lgTMFpgw1fkt6FunCi1PtUPwuNfLGjBhkQvX57ZuqXBrcDcOJZRr2DufVDBmCe5gYOSQxDmAs_Q0euBmqpjobleBETE19DOEBY9ICRy7QZvD2tkxwhwDB7dW9vieHYRRf0PvausCnNrJneHCMYRCzSQiId2xUQkW3KQEAIz6P_wAMsTW3TRWomjuApAvq8C32TisQhwmVvMHl5ViVoSnXRdIAF7lSVSlTyJ9PIv5_XBLRFK4tVPWLTWbuI5EctajtQ4J02RjynVGbSZ5leTGNKHN167Rx9qw"}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ", + "alg": "PS512", "value": "aX_38iSC4z_tmfLLPrnfvF2gkI6rZSRDeeCtZ-RPlreWNPGEo8S_F6lgTMFpgw1fkt6FunCi1PtUPwuNfLGjBhkQvX57ZuqXBrcDcOJZRr2DufVDBmCe5gYOSQxDmAs_Q0euBmqpjobleBETE19DOEBY9ICRy7QZvD2tkxwhwDB7dW9vieHYRRf0PvausCnNrJneHCMYRCzSQiId2xUQkW3KQEAIz6P_wAMsTW3TRWomjuApAvq8C32TisQhwmVvMHl5ViVoSnXRdIAF7lSVSlTyJ9PIv5_XBLRFK4tVPWLTWbuI5EctajtQ4J02RjynVGbSZ5leTGNKHN167Rx9qw"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '471' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e","value":"BYwDkDA15VKVrFEVsHgDPuW1kf5RaW0t32m_46lbPRVQATKuJaKNa6ubR5RHXdLnnbaPZpbWlNjE0ykUdWY7l_thpsgPpxEpCyc5CMLms5Zuee_aipexhVWpBe168yXsQKCpaxbmZU5DQfC70WlF4Oc8g3Z9fQbnSTrKErGElkDiLUEt6PrU4y5hf3tftCxMr8kMzR4DkosQZ0nTnj1es37GkRVt0jGanfe4hf5s63u9APC8nN5qQygfNG8w8Ezq4SGQXF9aZx5vU2fdSPH7-bz8JyhpJl5OFNbvWGkBIj02os0JoyjUzk-spvCUpG2CQa8mWmH7l3MIU5s3ffoPcQ"}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg", "alg": "RS256", + "value": "BYwDkDA15VKVrFEVsHgDPuW1kf5RaW0t32m_46lbPRVQATKuJaKNa6ubR5RHXdLnnbaPZpbWlNjE0ykUdWY7l_thpsgPpxEpCyc5CMLms5Zuee_aipexhVWpBe168yXsQKCpaxbmZU5DQfC70WlF4Oc8g3Z9fQbnSTrKErGElkDiLUEt6PrU4y5hf3tftCxMr8kMzR4DkosQZ0nTnj1es37GkRVt0jGanfe4hf5s63u9APC8nN5qQygfNG8w8Ezq4SGQXF9aZx5vU2fdSPH7-bz8JyhpJl5OFNbvWGkBIj02os0JoyjUzk-spvCUpG2CQa8mWmH7l3MIU5s3ffoPcQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e","value":"I0gsv5nlTr9AF3DskdScvKHMMINOEWYEqyyTs_gLPpNovVpIAt3PTB1FkebxpvVi3rnLSq2s-TD0hFsVl14u16YFts_Fzbe3yqrNfjfBj1vMjm6kI-2tJbzHoLFfELtCz_3kMrv9e4ll2N_jyjuQxv9NDMauvLMIt4KwTR1wguXQEpwFerHgQD0HvbXTNKt4ZEv_6G4acg6uG6UEkIiBpYuPlugyMNCOcqC1-A8Rr5WCmM4fl7VZNlWMLVGb_6NLCoFGQRGzzKbd0cSShf-esICfp7LPHj0ENSihG7jUeh4tFv1kVNAnhCLT9jIKD6wWVUOKPU1jSl-eUk2IZZRTGQ"}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB", + "alg": "RS384", "value": "I0gsv5nlTr9AF3DskdScvKHMMINOEWYEqyyTs_gLPpNovVpIAt3PTB1FkebxpvVi3rnLSq2s-TD0hFsVl14u16YFts_Fzbe3yqrNfjfBj1vMjm6kI-2tJbzHoLFfELtCz_3kMrv9e4ll2N_jyjuQxv9NDMauvLMIt4KwTR1wguXQEpwFerHgQD0HvbXTNKt4ZEv_6G4acg6uG6UEkIiBpYuPlugyMNCOcqC1-A8Rr5WCmM4fl7VZNlWMLVGb_6NLCoFGQRGzzKbd0cSShf-esICfp7LPHj0ENSihG7jUeh4tFv1kVNAnhCLT9jIKD6wWVUOKPU1jSl-eUk2IZZRTGQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '449' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e","value":"b4g2MEEesOk4BcbPlDnpLpdjeDTQE7J_qoSAXYH1Xg1EeyPHiJ4gv-71JJcUPNQaGzz4jmzLrmI1d_kjUSnYTswHYWX-hgrC2Z0-hkFTupmKjJ--JnkQMnBGr4BzP_2WIXwnRBbZP-c5J38HpFwjekFJ1FUlNcc5ecnQHC9FmrVbZYngBUfNOHfrDBJ6ZpedOKSBxZcOrF4GYJW1eSoMptdDsMEgOKBrKhr-Jos9ZvIgOj9vQmsS-4Lk3oW10q6OJIV6157zgCxpMloVbuWeTFeqtOFI1IOCXgBn8PTxazjugyGVlLkyPlTMSa3oU1pWxGq3QjEcCKP7hkNqiVxQ8Q"}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ", + "alg": "RS512", "value": "b4g2MEEesOk4BcbPlDnpLpdjeDTQE7J_qoSAXYH1Xg1EeyPHiJ4gv-71JJcUPNQaGzz4jmzLrmI1d_kjUSnYTswHYWX-hgrC2Z0-hkFTupmKjJ--JnkQMnBGr4BzP_2WIXwnRBbZP-c5J38HpFwjekFJ1FUlNcc5ecnQHC9FmrVbZYngBUfNOHfrDBJ6ZpedOKSBxZcOrF4GYJW1eSoMptdDsMEgOKBrKhr-Jos9ZvIgOj9vQmsS-4Lk3oW10q6OJIV6157zgCxpMloVbuWeTFeqtOFI1IOCXgBn8PTxazjugyGVlLkyPlTMSa3oU1pWxGq3QjEcCKP7hkNqiVxQ8Q"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '471' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-2048/517f83f106c448f9bee7bfe57d9be23e/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"key_size": 3072, "kty": "RSA"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"0oZkGXzwe-gBHnpGH55HTYhrKxNzFRl1boQSICDBLQCTSEopmzeKjoi6FzSz7saTt1Fd54IZwCxQ1Px0ivufV7ZkOxKeT3Df96mNVKMQ4CIZxAu8YD_znB9ROCgBUPCB7ehPJ39wyZz50k8pE2N18HdLiFyflvXoKEKUHxIgsf4SNTG8uKzYCbqnynmMU2w5J0m8V3ySuuae_AyA_7W6KUrJnT3kixRhjOtprme07WEBLAaQGlLIzbD-fWrsS0FUFKxRnNGSaPBW4uII9bh9fqhSJ7ZyR5wufeIkVvuYVPXuGZ3c1gCnXhKyG9nFfd1bgqkYfmOMJ587TqdcEhZ_qrHNaKb0uo7gywzy5rvHpEfDHPdXN-O26G41xEmhperYvHKDKfT8OAxKL-4VY3Kmv82JwI_5SecuMmaXrJ0NwTyZ-q4FYa95O_wPyx8G4-A_pg1hoarE2Tw0GL9oNWj9xvFSNUHROJWzhdTsq2ycSsqRos-Bta7TwTh4zJgcvkGl","e":"AQAB"},"attributes":{"enabled":true,"created":1566427086,"updated":1566427086,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '821' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "PS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf","value":"uqY6m8vtPPElFd4hUI_rsR7Z2oRSZeCK3gY0k_KGGl1LvcIZY18z2R4_5bLmxLE0zvEYVpOxEmy_h8FbOxk6VDVawidyXu8tRR0P-1wAvyOf-2Hg52i005nHNGOYm4TImIYgaWMn6IMVGnN3e7rpwrNGkWshYsaJ2dQpQDHKfg9_KEcTNQOJx0xLLb0sxW0M9Nkf6EaTdFgD3O2oK7qrNS2cpIhfzJLRrLnEkUapyY19m0lCP8zSYJVcwed77ccAh8XalsUaXzG4tDCGUEOisUEPwO8pbYnbjO7G3PWzK9LyPXHphPobMxQPLLTaWwfcPl9f7yklwjifT0LJfzixEEJRVov-zefa6oEE3qXCIe_daY03qm5f2HaRhpS7ODL4rNLqeBLAlvPKYQ05s4A-wdYAs0nk4B2cXa-5oalmpLI0te6mqsf4BcegmBm1jSCu-XQJkbmBRWmw3HId-0DJT5IQw6RYDL-kja9qxbs_zZjpgGwFyupn81PfanLRNIsL"}' + headers: + cache-control: + - no-cache + content-length: + - '624' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg", "alg": "PS256", + "value": "uqY6m8vtPPElFd4hUI_rsR7Z2oRSZeCK3gY0k_KGGl1LvcIZY18z2R4_5bLmxLE0zvEYVpOxEmy_h8FbOxk6VDVawidyXu8tRR0P-1wAvyOf-2Hg52i005nHNGOYm4TImIYgaWMn6IMVGnN3e7rpwrNGkWshYsaJ2dQpQDHKfg9_KEcTNQOJx0xLLb0sxW0M9Nkf6EaTdFgD3O2oK7qrNS2cpIhfzJLRrLnEkUapyY19m0lCP8zSYJVcwed77ccAh8XalsUaXzG4tDCGUEOisUEPwO8pbYnbjO7G3PWzK9LyPXHphPobMxQPLLTaWwfcPl9f7yklwjifT0LJfzixEEJRVov-zefa6oEE3qXCIe_daY03qm5f2HaRhpS7ODL4rNLqeBLAlvPKYQ05s4A-wdYAs0nk4B2cXa-5oalmpLI0te6mqsf4BcegmBm1jSCu-XQJkbmBRWmw3HId-0DJT5IQw6RYDL-kja9qxbs_zZjpgGwFyupn81PfanLRNIsL"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '598' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "PS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf","value":"LBTS3DbaxmoIpKrlc2LCB99f_gzvJFw-rIUqOdYVeUqVE23jbqxgNQztc5SYUXVkRzirFfUxfKuaDddlD7H2LYN6hjmtqCkmVOQwnC6V01QHWlqF_MnTvRwRbOeenidu2SYb7T09mYfcduJ7EC6kcaHUBkfWYna-Wy-cnzQHgoZQealBQSIRtT8_HDZwhT8jIG6ALrlGpu3-JGUd0bpXfArOIANasVEr3slivbEV7SY5Jmre5ZTdnyoSl6-3PMAK2CLAdWDZ-S6RCjB-f8v2wi3-cVKNRQOhl-paXcqKq82h6S2wHO-7s7d7BaXdDojBtRLfg9rYahs7RnrsACmAQd-hDwZVxWnbRYNE1Sh37VxRLzWNbgiczU15sV1sdAQMfnQnrZkuAuC6NvXY6hA6oe4_RyfNXjofXYr7Ce9U93WYEKlyCknd73eavZh99n2oT33z428SoujC_dGSjykFJDMciANo54KJtyc_149JABST0AkIOg7-y5fP9_vPpyWb"}' + headers: + cache-control: + - no-cache + content-length: + - '624' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB", + "alg": "PS384", "value": "LBTS3DbaxmoIpKrlc2LCB99f_gzvJFw-rIUqOdYVeUqVE23jbqxgNQztc5SYUXVkRzirFfUxfKuaDddlD7H2LYN6hjmtqCkmVOQwnC6V01QHWlqF_MnTvRwRbOeenidu2SYb7T09mYfcduJ7EC6kcaHUBkfWYna-Wy-cnzQHgoZQealBQSIRtT8_HDZwhT8jIG6ALrlGpu3-JGUd0bpXfArOIANasVEr3slivbEV7SY5Jmre5ZTdnyoSl6-3PMAK2CLAdWDZ-S6RCjB-f8v2wi3-cVKNRQOhl-paXcqKq82h6S2wHO-7s7d7BaXdDojBtRLfg9rYahs7RnrsACmAQd-hDwZVxWnbRYNE1Sh37VxRLzWNbgiczU15sV1sdAQMfnQnrZkuAuC6NvXY6hA6oe4_RyfNXjofXYr7Ce9U93WYEKlyCknd73eavZh99n2oT33z428SoujC_dGSjykFJDMciANo54KJtyc_149JABST0AkIOg7-y5fP9_vPpyWb"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '619' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "PS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf","value":"iyEfs52puzpXc9qbNWxfEQSHJqmeNFhFEFtq_brkAfgP9zR87SMexA1A24EqIBXMVIuNQjEZtY1RpcrdcNrhQ8-TNChTueyXF308KRzsIkKCbF7gyP6lMbMDEQBCY3kcSAvkJ-ZDurySJtduGnQxf4MKqrd3neSpoTZFnm04cWapmL4vck5_TSUFcAy46y8GtANu04tvMMC0UsvgpCrlefDrUY4sw6YIPYc-L3cCqmSHg83cXhtr-QhPJhl47UNNyP9UtHGNrtjlrls0kLGK-W3Ye2MgYJ68RFQCAI0Pq9bvOTHJJYjCac-M5ejc9w80jdu6O6L9p7TuoBXtbPERppk_bvSrc0jz1UIO-RJAtrVn9wwEEzeGbCRmmOnRYABJE_eA0JpbBw6nIubm1i3ouCDLElKAreLEXB67GwksXnKfJo6uFOLCJjpjR3CTxuL_alaYK1HpXCGH0NuNImtyIGH2K-v-yrLv0DTTWD_zwKRqblgWuH9rXwqAe49etapW"}' + headers: + cache-control: + - no-cache + content-length: + - '624' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ", + "alg": "PS512", "value": "iyEfs52puzpXc9qbNWxfEQSHJqmeNFhFEFtq_brkAfgP9zR87SMexA1A24EqIBXMVIuNQjEZtY1RpcrdcNrhQ8-TNChTueyXF308KRzsIkKCbF7gyP6lMbMDEQBCY3kcSAvkJ-ZDurySJtduGnQxf4MKqrd3neSpoTZFnm04cWapmL4vck5_TSUFcAy46y8GtANu04tvMMC0UsvgpCrlefDrUY4sw6YIPYc-L3cCqmSHg83cXhtr-QhPJhl47UNNyP9UtHGNrtjlrls0kLGK-W3Ye2MgYJ68RFQCAI0Pq9bvOTHJJYjCac-M5ejc9w80jdu6O6L9p7TuoBXtbPERppk_bvSrc0jz1UIO-RJAtrVn9wwEEzeGbCRmmOnRYABJE_eA0JpbBw6nIubm1i3ouCDLElKAreLEXB67GwksXnKfJo6uFOLCJjpjR3CTxuL_alaYK1HpXCGH0NuNImtyIGH2K-v-yrLv0DTTWD_zwKRqblgWuH9rXwqAe49etapW"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '641' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf","value":"ezyDE5l4PjJE4_fTShVb_H6M2jr1jHKfwbd2jt8sFBVpvY67la_U1e9KwzdYTCFP0qsMboSJyJEpi1ACxH0u4IH_QGWjwIxY8TBR94IeolW_mMVlM2XaMmfdXl4e4rf2Wjfm_4pLR_88y-VHH4JD3AgYNJQqLW9Mao3yyUfgYw8ezNqHUkC71OPt_6Nqz9a3YMIuPFgJyV4g-w_yhtwPabRmIG_3wEXNvLGBIH5joQYfIThD01Dsnv_LzjRs30NnS8RjrokqxKIT1R_LX0pK8QFh0uVC5yzn2SS2ycqt0sZuxYu4G3XnAC1YyhT_Zx9YJj7-NqXB92UWO4xkLDqEkCSDtbUGxlgItWT0uDLLAugb4BSDIU3EU6t5zpZX289aJNqDJ7rkUyCWHPsCOaJrm4crvUcw136itBl8nsfosvvBv-3m71t2dL0S-50GorP4lFhuwlzUi05xQ47BduXtqKgxkboUWwjHUMsAPI5SPTmwwrRyNfLeiw9QBGucIhwc"}' + headers: + cache-control: + - no-cache + content-length: + - '624' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg", "alg": "RS256", + "value": "ezyDE5l4PjJE4_fTShVb_H6M2jr1jHKfwbd2jt8sFBVpvY67la_U1e9KwzdYTCFP0qsMboSJyJEpi1ACxH0u4IH_QGWjwIxY8TBR94IeolW_mMVlM2XaMmfdXl4e4rf2Wjfm_4pLR_88y-VHH4JD3AgYNJQqLW9Mao3yyUfgYw8ezNqHUkC71OPt_6Nqz9a3YMIuPFgJyV4g-w_yhtwPabRmIG_3wEXNvLGBIH5joQYfIThD01Dsnv_LzjRs30NnS8RjrokqxKIT1R_LX0pK8QFh0uVC5yzn2SS2ycqt0sZuxYu4G3XnAC1YyhT_Zx9YJj7-NqXB92UWO4xkLDqEkCSDtbUGxlgItWT0uDLLAugb4BSDIU3EU6t5zpZX289aJNqDJ7rkUyCWHPsCOaJrm4crvUcw136itBl8nsfosvvBv-3m71t2dL0S-50GorP4lFhuwlzUi05xQ47BduXtqKgxkboUWwjHUMsAPI5SPTmwwrRyNfLeiw9QBGucIhwc"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '598' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf","value":"SuIp3xGIBbCtL1xTTficrnQNjGMJ4kuIUF_UXmjPO_sDfeTvgatYV043ZWoqmv9xGeiIpBtkmeaPwXuicSxu69tVIAxgpvFXbfw9NxAIO-kwbt6eAdSfvpLob2mOzvhF3EPqjfXNTDKM1L1fs1VYN6JPiQ1Fn6w5KvtEgRJQ1JPeFv4p2xQRaZ_pd0KK9sWVPZnMATXJCPLifG58PgQ5fCdBG9dHimniZ_jvZ926xK7vNGnivqK6AW94wlwuLjGEoiO5b6seIVPxpVbFYRs4izeAYnAanTSXVdTK-M5jCQN0RyWf8mILHhLM2TbwMmHNgLkA7aZzue4pXjNrfHMHpSjVoZVqHUAJXyJWXszWApWCKW3JT23VsgDp66aklvMhFa4B1M5CLXj7FfyZAHsbOlx5NT_e6W7M9mSF8PedygqZA_nQb7IAei810u9CYQDOsNLQXwWMBRNDDmMnX43ubYyzzg19bJ8fzKzQCVc5dJdDpGNfPWR1s1KeR2r2obA2"}' + headers: + cache-control: + - no-cache + content-length: + - '624' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB", + "alg": "RS384", "value": "SuIp3xGIBbCtL1xTTficrnQNjGMJ4kuIUF_UXmjPO_sDfeTvgatYV043ZWoqmv9xGeiIpBtkmeaPwXuicSxu69tVIAxgpvFXbfw9NxAIO-kwbt6eAdSfvpLob2mOzvhF3EPqjfXNTDKM1L1fs1VYN6JPiQ1Fn6w5KvtEgRJQ1JPeFv4p2xQRaZ_pd0KK9sWVPZnMATXJCPLifG58PgQ5fCdBG9dHimniZ_jvZ926xK7vNGnivqK6AW94wlwuLjGEoiO5b6seIVPxpVbFYRs4izeAYnAanTSXVdTK-M5jCQN0RyWf8mILHhLM2TbwMmHNgLkA7aZzue4pXjNrfHMHpSjVoZVqHUAJXyJWXszWApWCKW3JT23VsgDp66aklvMhFa4B1M5CLXj7FfyZAHsbOlx5NT_e6W7M9mSF8PedygqZA_nQb7IAei810u9CYQDOsNLQXwWMBRNDDmMnX43ubYyzzg19bJ8fzKzQCVc5dJdDpGNfPWR1s1KeR2r2obA2"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '619' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf","value":"Hay8ewYtJxnjkTJPKO-Op8l8OaqelR55GCksK0oj0Fp8yMkzgZIIaD4fOhFy4dNLd0KvDx8K_cVgz_vwJTg39yJ_a9mFDXaCljmunS3mKT69QTz2PAJHJHokzZlyXGhPvdj3UwpV8wp8HAwMsu0AoJB7hRnBA5jQSvy2HUhk1O64-0sR_KACPQ_aAyGj_fA3x-yGQE1G37v1gd5enDcLSkpxgDLJcj6C2jVEIB2_N8SuthWW4fXYcR8-kqgSPHo0fM2sWQWK4sUiKdxt0XYbjJF748O5Vws2h-vQrUBzU4npxKR6yqfiiZK_LEr5IVVhM8dlZeuuIHwlX-Ch3I_tpYyY91ua8OgoAZH72N8m-YzQUy17IAMQgRRuEHBcxr1rALPxwiqZRWNJKyp3IhTwDGIE5xRdHP8n0uYBOcvI29kad4vAIpuUl4PKpldwoGuulexXqAoTjyMmIVAadV2IVyhFsPZ0UNdLPjjoGOyAIveP0UZr95-vM934KllWixzE"}' + headers: + cache-control: + - no-cache + content-length: + - '624' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ", + "alg": "RS512", "value": "Hay8ewYtJxnjkTJPKO-Op8l8OaqelR55GCksK0oj0Fp8yMkzgZIIaD4fOhFy4dNLd0KvDx8K_cVgz_vwJTg39yJ_a9mFDXaCljmunS3mKT69QTz2PAJHJHokzZlyXGhPvdj3UwpV8wp8HAwMsu0AoJB7hRnBA5jQSvy2HUhk1O64-0sR_KACPQ_aAyGj_fA3x-yGQE1G37v1gd5enDcLSkpxgDLJcj6C2jVEIB2_N8SuthWW4fXYcR8-kqgSPHo0fM2sWQWK4sUiKdxt0XYbjJF748O5Vws2h-vQrUBzU4npxKR6yqfiiZK_LEr5IVVhM8dlZeuuIHwlX-Ch3I_tpYyY91ua8OgoAZH72N8m-YzQUy17IAMQgRRuEHBcxr1rALPxwiqZRWNJKyp3IhTwDGIE5xRdHP8n0uYBOcvI29kad4vAIpuUl4PKpldwoGuulexXqAoTjyMmIVAadV2IVyhFsPZ0UNdLPjjoGOyAIveP0UZr95-vM934KllWixzE"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '641' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-3072/1c502d19de584ab593abc47c14d9abbf/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"key_size": 4096, "kty": "RSA"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"7ieFeO6BG6ca-JKcWQmDxCGWkVgdE9RZ1d_gEtWPwAzTQwiDriieVmSMkgPj89l_8otbrJQcNrqDa2UxSA_XzC-t5QSySYg2gy4Y8-GDs45-jP3M0OUm-WrnWhxnRakJ64_hdT-v_49cdONRth4-eUOLcQN_5v1z6z5BcuEtCpweTCKSFFxvP3c5cpVkTUSDAg4p0UyGuJZI7dJcTMR8no-lZzxYAQQ8yro2aXlUzGVU2VrdV7YYfOwvRPNL39VJ48JaBb7J57cfsTtM9eKN6zcyyczYuame8mFuJK5EqI1H5KbCXnnKpR8TY_kpBQ4YNiWcNrFiX3-86itDsbs-dxOtiri9LzgyLhv-HVg5Vjcrc4pHjzbeSBgS-NilglQWz_Ts79xAxD_KBiXwGqr7VxDJAtxWZ_Nk-HK_W14hCntriud_UDXHMh7HW0dmDh-LmVGUAVgeNX1cmoNfZu8RfnLxxZIVRGq31H4u9cl-ymPuFQkXhfX2BxmjPWDcbBY-YoJAEdUNNQT9KessgnvD1msMcRk0_NeLm6wpAc9w_CQrKvBH0TLu4r_KTTvQ2Q1K7yt1ykMbbYpj_C_bfLvuAVtQ5eEW7GEDJTY-culeWhrRXNkvFjol7iw4EEqpsqChZhnQwlWpFHw0FdACkVXx510VYvvXj789fkmKNXV3Cx0","e":"AQAB"},"attributes":{"enabled":true,"created":1566427087,"updated":1566427087,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '992' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "PS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d","value":"3s4PFgEJj8imUCjl1lxj1naOyKV8KhjpFWpIybQcOdvpCfRpLaFZDvPwUbFRJ-PU5-txxGangZb02ovld78_r3iyfh_oeTKBbasFoE_B4rr0GiB2UPdKfgGDTe8z5i8gyXLMa2OZMYlaHzlyQ89Rka_u9-SvoIa-41yZslT34CecksIs-2VX8FCoBiJPw9SUYD8sC-aZKcafHgpkb6fPbJsgS0j5gzYmSg-2RwYcE11cxj-0H5bT2pZcYSxQ2g3qaIJEUpNI0ffZVJoG84JpwhY9IIetZ7OrZk2ecnw3AASo3CiPWgW8oP6faF0gppuJexvf3YHWLk34wYU4TVX8GIg20Av88X2fdLuM6iKk6sQjoAf1QkUA6SPMNy9mHpy0dX_BMIRwLOVZAI6V5LTbZpraa_MpHsKQKm8CIBTrs1eIsZnWcQd7c4x8kkCQHP8Gi903gUmEiuNKM0thdHE9zttWnFIFESPFnBW4Wd831caLESg5K0-q8u-Y-SMHUACA_BIlJHPIzbxeWjIJozKjjMQG8bqIfgqgE99jbffm9h9rLkVTxewR_Y23f4SozKxGJ_khNkXOA86fdL1dYLrX3FaJEI3qzyqSPPZgl4TPObhTC-CqCCHlqLWVwYysE7kkGJsl0iK28g-znn9EJkns7_IzTaaB1zeMl0j7-3F7e8o"}' + headers: + cache-control: + - no-cache + content-length: + - '795' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg", "alg": "PS256", + "value": "3s4PFgEJj8imUCjl1lxj1naOyKV8KhjpFWpIybQcOdvpCfRpLaFZDvPwUbFRJ-PU5-txxGangZb02ovld78_r3iyfh_oeTKBbasFoE_B4rr0GiB2UPdKfgGDTe8z5i8gyXLMa2OZMYlaHzlyQ89Rka_u9-SvoIa-41yZslT34CecksIs-2VX8FCoBiJPw9SUYD8sC-aZKcafHgpkb6fPbJsgS0j5gzYmSg-2RwYcE11cxj-0H5bT2pZcYSxQ2g3qaIJEUpNI0ffZVJoG84JpwhY9IIetZ7OrZk2ecnw3AASo3CiPWgW8oP6faF0gppuJexvf3YHWLk34wYU4TVX8GIg20Av88X2fdLuM6iKk6sQjoAf1QkUA6SPMNy9mHpy0dX_BMIRwLOVZAI6V5LTbZpraa_MpHsKQKm8CIBTrs1eIsZnWcQd7c4x8kkCQHP8Gi903gUmEiuNKM0thdHE9zttWnFIFESPFnBW4Wd831caLESg5K0-q8u-Y-SMHUACA_BIlJHPIzbxeWjIJozKjjMQG8bqIfgqgE99jbffm9h9rLkVTxewR_Y23f4SozKxGJ_khNkXOA86fdL1dYLrX3FaJEI3qzyqSPPZgl4TPObhTC-CqCCHlqLWVwYysE7kkGJsl0iK28g-znn9EJkns7_IzTaaB1zeMl0j7-3F7e8o"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '769' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "PS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d","value":"B878i2hZNpCduKYuACVAvEhKJnQfzKr6wGj-Kz1zv4Ci9YbbwYFGSUz_8xJA45eaF_KCmRzMGEi2pH05HTgoqDWBweKRcBWNSfykM4-F98on4YtjaMhul4JMILGYKa99ObgubR_mjOHnUs4af9zRQ8b66qqXKPVbAlV3G4QODQGHP5PRr0VHWpmIwY9xzyvEruPuhbeX8SRZhPxsykkdvsbi2mENa5vyXc-mwoktAPOQic5Ppzl-x3YXXvf4tUU4U9rFL0gRiUf5wkZvOfnXi2aG492JXkkdSHZUWjfadfR6NmPDo3l43G2fxGs5B8Rzi0jQcPxc3VWgVmBprjU-VJe_puiRA59afVWjkl3dRnuqNcymywfmqgMNBpzc343bOKwvbUv7lJ05K_IBCtga5O3EERltte3dk2JILwOSDg6U7JqJzQj9uz_ojmwce4NENzlk2s1qdgVBXmupCG1E81skGbCaHKXQuAo23YnzbTVzCTaLgV6tWzY7xTgR0C8B6AakavhZAWfrSB2R_vGPykS-QYuOyqVLs6fRmJnkOED603dDugtg6KYtvXVhCgMmkDbkHvlOFut1hlIL55Cv5hVUlUlnnvGGj-wp8YFcub4VVSuMApTIPKrdWqZbwKroZ1KmdirpMUKFv_iwmmTTGB2WLeSZTR8TJ_tp7WXCd04"}' + headers: + cache-control: + - no-cache + content-length: + - '795' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB", + "alg": "PS384", "value": "B878i2hZNpCduKYuACVAvEhKJnQfzKr6wGj-Kz1zv4Ci9YbbwYFGSUz_8xJA45eaF_KCmRzMGEi2pH05HTgoqDWBweKRcBWNSfykM4-F98on4YtjaMhul4JMILGYKa99ObgubR_mjOHnUs4af9zRQ8b66qqXKPVbAlV3G4QODQGHP5PRr0VHWpmIwY9xzyvEruPuhbeX8SRZhPxsykkdvsbi2mENa5vyXc-mwoktAPOQic5Ppzl-x3YXXvf4tUU4U9rFL0gRiUf5wkZvOfnXi2aG492JXkkdSHZUWjfadfR6NmPDo3l43G2fxGs5B8Rzi0jQcPxc3VWgVmBprjU-VJe_puiRA59afVWjkl3dRnuqNcymywfmqgMNBpzc343bOKwvbUv7lJ05K_IBCtga5O3EERltte3dk2JILwOSDg6U7JqJzQj9uz_ojmwce4NENzlk2s1qdgVBXmupCG1E81skGbCaHKXQuAo23YnzbTVzCTaLgV6tWzY7xTgR0C8B6AakavhZAWfrSB2R_vGPykS-QYuOyqVLs6fRmJnkOED603dDugtg6KYtvXVhCgMmkDbkHvlOFut1hlIL55Cv5hVUlUlnnvGGj-wp8YFcub4VVSuMApTIPKrdWqZbwKroZ1KmdirpMUKFv_iwmmTTGB2WLeSZTR8TJ_tp7WXCd04"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '790' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "PS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d","value":"EK8ssJrW6ZPsU787owS87V8N_jmLsZKApSOGD0VgA7RyWk9qarfBE5kSpK5EvskEol8Bn-ueE-H1PWssvkctqECo7TKTTIUyyx7Gka1QrM4_lezx5gMEUoaHRkZkuIQmFmu2IRMcGrAaQJoZ5I8gwltdvuI9nHbcdgidHMgst49WSzvr-9ybiRnh3BeMjRIDkuMTrTpB0lkifvvGnrDa4DM1NbDIOxuMtRdxB_sBORb4Ecpx8PsCFhtOUylEhA9mIWtc8Zqm_KZu524bwz28G_RX5XEpcimaFea8vKXUTeZGHffSyhr7VrnDONM1GaVe5ZRetyMr2osJpn1ZB26OUpRCuDMZCD7biLjCAZ2nCXCYHV9LQxefArtpdIg_YZsMig8U3TkqAZkv5O0PdNbfR5Sx5oqVmlFJCcDT4iCy0rKAxKxahwPmPOLxJc3bmD8jGMx_wCpUIacS4k3kVmCRu7xCLVhMjVeOgUqmldypTcGuWtcoTPrkY7RiPD38Drv5ChKzYoeBeQxIGKN9WIK1uF8gBN0JEKm1SxxM1V-dkazQRbY8b2DOp4BcNluYncS7v7OewAQ-ym24rGaFdXZ0OHYktvhRsLwKkNEDUlbgf7zAUJdRpXScCniNeGdRxVOkUEfbCZ8rehu1sp3O0ComdXK2rzPgfi554Zo44lsOblI"}' + headers: + cache-control: + - no-cache + content-length: + - '795' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ", + "alg": "PS512", "value": "EK8ssJrW6ZPsU787owS87V8N_jmLsZKApSOGD0VgA7RyWk9qarfBE5kSpK5EvskEol8Bn-ueE-H1PWssvkctqECo7TKTTIUyyx7Gka1QrM4_lezx5gMEUoaHRkZkuIQmFmu2IRMcGrAaQJoZ5I8gwltdvuI9nHbcdgidHMgst49WSzvr-9ybiRnh3BeMjRIDkuMTrTpB0lkifvvGnrDa4DM1NbDIOxuMtRdxB_sBORb4Ecpx8PsCFhtOUylEhA9mIWtc8Zqm_KZu524bwz28G_RX5XEpcimaFea8vKXUTeZGHffSyhr7VrnDONM1GaVe5ZRetyMr2osJpn1ZB26OUpRCuDMZCD7biLjCAZ2nCXCYHV9LQxefArtpdIg_YZsMig8U3TkqAZkv5O0PdNbfR5Sx5oqVmlFJCcDT4iCy0rKAxKxahwPmPOLxJc3bmD8jGMx_wCpUIacS4k3kVmCRu7xCLVhMjVeOgUqmldypTcGuWtcoTPrkY7RiPD38Drv5ChKzYoeBeQxIGKN9WIK1uF8gBN0JEKm1SxxM1V-dkazQRbY8b2DOp4BcNluYncS7v7OewAQ-ym24rGaFdXZ0OHYktvhRsLwKkNEDUlbgf7zAUJdRpXScCniNeGdRxVOkUEfbCZ8rehu1sp3O0ComdXK2rzPgfi554Zo44lsOblI"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '812' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d","value":"I49J4iQcMPjR-Ys1IkZ5XOEnUrZ2PxV5KlDhzoYge1Ne3gpsdK5-Fhi56c775spWNxMMzRwoX6_14lAbJmnyAo5ezKy5k7jFNmM1ndF6HyIb9P__UMqZW2tjQfK4icXNvZPFc9CsegJ-Ef-T3jn2tLKIGOAMJoiZYDizHU2zo_821YvS5wBhf45rOkHvF8M6OfDyhohb8LXtrXpAzxtGIf0T14-E9-1_xrJqJgebB3TM71Fu0_uwe1b7ZWXMruZ3YCyV3FoNXuIdETLfnvXeCLRPvZKnqcNo7T0GHRsYIaNUmHOk_ww-80L4M-v6S2aPyfoqs218SfLQZYBsnjAQxuWH-ngmgeNC3DXFNZBRIgAlrN_ZGm88M1JLmvqfmRY41jPev9VyxP-2sU6p7LsoDbY6So56EcnX7bL0r0d_UcbEzxP9qFgFbrVyNEDyQtbSSQgv3HX_JNrG27JnLx2fB-ZamY197VOmUqTi2qroGUM_RK4jeKxB7q4rbffLibMFUS4ewGlNv4jmHu2xj-_D9TiXbg6LEG3MWHQ_bZLit9O8NHy7YCscsBSBFFTXUAxxVlKsc8d_1TDuvG673viTonUExS7rSetuWdt-DpRPycTkDmuSYwAYe_99ii82YzJ9wnBN2ywcYVGLUQATSdg7eXuLH_NjVzWMBTFXPYAUTc8"}' + headers: + cache-control: + - no-cache + content-length: + - '795' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg", "alg": "RS256", + "value": "I49J4iQcMPjR-Ys1IkZ5XOEnUrZ2PxV5KlDhzoYge1Ne3gpsdK5-Fhi56c775spWNxMMzRwoX6_14lAbJmnyAo5ezKy5k7jFNmM1ndF6HyIb9P__UMqZW2tjQfK4icXNvZPFc9CsegJ-Ef-T3jn2tLKIGOAMJoiZYDizHU2zo_821YvS5wBhf45rOkHvF8M6OfDyhohb8LXtrXpAzxtGIf0T14-E9-1_xrJqJgebB3TM71Fu0_uwe1b7ZWXMruZ3YCyV3FoNXuIdETLfnvXeCLRPvZKnqcNo7T0GHRsYIaNUmHOk_ww-80L4M-v6S2aPyfoqs218SfLQZYBsnjAQxuWH-ngmgeNC3DXFNZBRIgAlrN_ZGm88M1JLmvqfmRY41jPev9VyxP-2sU6p7LsoDbY6So56EcnX7bL0r0d_UcbEzxP9qFgFbrVyNEDyQtbSSQgv3HX_JNrG27JnLx2fB-ZamY197VOmUqTi2qroGUM_RK4jeKxB7q4rbffLibMFUS4ewGlNv4jmHu2xj-_D9TiXbg6LEG3MWHQ_bZLit9O8NHy7YCscsBSBFFTXUAxxVlKsc8d_1TDuvG673viTonUExS7rSetuWdt-DpRPycTkDmuSYwAYe_99ii82YzJ9wnBN2ywcYVGLUQATSdg7eXuLH_NjVzWMBTFXPYAUTc8"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '769' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d","value":"Ap8Ly3ljXfotSR3ObZesZPoFTj4UEWHszcLWbz_6QcOyjYpAmnLb0KZdV7Q9aedWroDkU11SeJdARFE_b1LtiQMulLFBaC0Eu6s4BovL0uUrIef0910fBH8PDeeHKFt-idpxMAVzRlQhcHAbElRVtZbKSyM_TuZcW93cKBxe66QXEGTjcU0YsvokPDyVoCycx-EOgflJeVzzIK15ddFV44OIX7y1VsaAAxAPzdm_D66Wf_CsNAqG6js4XXQUowfEu6FfUgqDRPTYMPXaQoAFB27WiEr5-pI76hrbMeDdsXWV69H-hDDiG-f551fWU7rpwDORIl3yBL5U94JtS-aW84zwNGH2CA3fihA9pdSGzo8DaXSNdSdatPw5WyIN0PnTdgVZixQl5wkgANOYJ6PEpcTDBFuYciyuvJV2isNRm4jc2e2xhd7GSBxUtZk6MkdrqOp69D-o4ROppKQrX_mXgkcfukHNAKdJKBSS1PeP_wKUslEVsUKatjCZCz0hS5DumwauFnXdYfFYW0LKKl4cOaAU9JsD-DJlALBL_dL6uRZvDrQ8owLWAPvu_7d7lDQVazExO6ULFj8dAxoIitsVdS5H1NTErHCu0NastMWJx66temY2x5Pc8b6hXl9aXdBQwN1cqdJguKxjuSoPrHnDwRZ-gpB1xeCaXEP9eQOl8eI"}' + headers: + cache-control: + - no-cache + content-length: + - '795' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB", + "alg": "RS384", "value": "Ap8Ly3ljXfotSR3ObZesZPoFTj4UEWHszcLWbz_6QcOyjYpAmnLb0KZdV7Q9aedWroDkU11SeJdARFE_b1LtiQMulLFBaC0Eu6s4BovL0uUrIef0910fBH8PDeeHKFt-idpxMAVzRlQhcHAbElRVtZbKSyM_TuZcW93cKBxe66QXEGTjcU0YsvokPDyVoCycx-EOgflJeVzzIK15ddFV44OIX7y1VsaAAxAPzdm_D66Wf_CsNAqG6js4XXQUowfEu6FfUgqDRPTYMPXaQoAFB27WiEr5-pI76hrbMeDdsXWV69H-hDDiG-f551fWU7rpwDORIl3yBL5U94JtS-aW84zwNGH2CA3fihA9pdSGzo8DaXSNdSdatPw5WyIN0PnTdgVZixQl5wkgANOYJ6PEpcTDBFuYciyuvJV2isNRm4jc2e2xhd7GSBxUtZk6MkdrqOp69D-o4ROppKQrX_mXgkcfukHNAKdJKBSS1PeP_wKUslEVsUKatjCZCz0hS5DumwauFnXdYfFYW0LKKl4cOaAU9JsD-DJlALBL_dL6uRZvDrQ8owLWAPvu_7d7lDQVazExO6ULFj8dAxoIitsVdS5H1NTErHCu0NastMWJx66temY2x5Pc8b6hXl9aXdBQwN1cqdJguKxjuSoPrHnDwRZ-gpB1xeCaXEP9eQOl8eI"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '790' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d","value":"00oKNvQxE-tLWJtGc0N0fth6KABglRgfBn8-O3b6Kb9C2INm06OMYnCNGoxWacbM2Vmu8N6WBBz5naqhjIMyiofW5cgHmjbrMyi9YFtCv8ENcpKjxC0JVvKzpv2jBuVi7YhWpGkk3h5Ab1YQS_eZvTH-F1-egNlpMRnWzS8p0jSYlwBgtbhAYbr46tgK9B4vsb9bNwiYEa4NqzwMHSnvyVzCVjKtT07RoEbov7t0ajtvyQn3wyazcHyczxc_pyjJEi2B4pzK8FA6tz23UUFx9Reu0Wu8WpjGpuLoOQACDA-neqtTCAnKKCM98J84G_00G_qvCMECjOqNyJX0T9tuZKdnntrFeU_ad-SPX2Qw5UK9b0_V0lF5JzBYxjCsE2oE8HgpecbqSbHyfzKNDSUTmHWcQ5Ly8-v7sbnMB0teftwbTS-DO-nlYySI41Vi1w-flko9XkrmuoMt6pxs1wCjfPudo9j0zzWbeHUIUKj3fclR8SV9cQVPTewfwxpAodk7QuwDm3ztcmsUYgvTeUI_9cIXlVc9yzEnwUVYqt4unDU7JFFVS0hLiuKLrisASffJXf3QFokTyyxLmJDK1l4CcqLkhyIF2yGQdYvVCmxGcLYujXZ2Y-B0uVgUIoO9fcu1Is-63w9GKUJIw_g5MAHUsEmygACK4AOIkNDXMWJ-HrA"}' + headers: + cache-control: + - no-cache + content-length: + - '795' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ", + "alg": "RS512", "value": "00oKNvQxE-tLWJtGc0N0fth6KABglRgfBn8-O3b6Kb9C2INm06OMYnCNGoxWacbM2Vmu8N6WBBz5naqhjIMyiofW5cgHmjbrMyi9YFtCv8ENcpKjxC0JVvKzpv2jBuVi7YhWpGkk3h5Ab1YQS_eZvTH-F1-egNlpMRnWzS8p0jSYlwBgtbhAYbr46tgK9B4vsb9bNwiYEa4NqzwMHSnvyVzCVjKtT07RoEbov7t0ajtvyQn3wyazcHyczxc_pyjJEi2B4pzK8FA6tz23UUFx9Reu0Wu8WpjGpuLoOQACDA-neqtTCAnKKCM98J84G_00G_qvCMECjOqNyJX0T9tuZKdnntrFeU_ad-SPX2Qw5UK9b0_V0lF5JzBYxjCsE2oE8HgpecbqSbHyfzKNDSUTmHWcQ5Ly8-v7sbnMB0teftwbTS-DO-nlYySI41Vi1w-flko9XkrmuoMt6pxs1wCjfPudo9j0zzWbeHUIUKj3fclR8SV9cQVPTewfwxpAodk7QuwDm3ztcmsUYgvTeUI_9cIXlVc9yzEnwUVYqt4unDU7JFFVS0hLiuKLrisASffJXf3QFokTyyxLmJDK1l4CcqLkhyIF2yGQdYvVCmxGcLYujXZ2Y-B0uVgUIoO9fcu1Is-63w9GKUJIw_g5MAHUsEmygACK4AOIkNDXMWJ-HrA"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '812' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault55c41090.vault.azure.net/keys/rsa-verify-4096/ea48eb282c824d51bcccb5912fc71f7d/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: + - no-cache + content-length: + - '14' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:38:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_sign_and_verify.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_sign_and_verify.yaml index 56aed2244bc7..0698d9fc7911 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_sign_and_verify.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_sign_and_verify.yaml @@ -13,19 +13,22 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: PUT uri: https://vault44471023.vault.azure.net/keys/keysign44471023?api-version=7.0 response: body: - string: '' + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' headers: cache-control: - no-cache content-length: - - '0' + - '87' + content-type: + - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:34:51 GMT + - Thu, 22 Aug 2019 13:39:25 GMT expires: - '-1' pragma: @@ -42,25 +45,25 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"key": {"qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", - "e": "AQAB", "kty": "RSA", "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3", - "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", - "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", - "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + body: '{"key": {"kty": "RSA", "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", "key_ops": ["encrypt", "decrypt", "sign", "verify", "wrapKey", "unwrapKey"], "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", - "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp"}}' + "e": "AQAB", "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3", + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU"}}' headers: Accept: - application/json @@ -73,12 +76,12 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: PUT uri: https://vault44471023.vault.azure.net/keys/keysign44471023?api-version=7.0 response: body: - string: '{"key":{"kid":"https://vault44471023.vault.azure.net/keys/keysign44471023/b93bf461234c49719f1f2e70bd5cd5ec","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU","e":"AQAB"},"attributes":{"enabled":true,"created":1564090492,"updated":1564090492,"recoveryLevel":"Purgeable"}}' + string: '{"key":{"kid":"https://vault44471023.vault.azure.net/keys/keysign44471023/1e0c2d538f904319bfe89efcc49d3b41","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU","e":"AQAB"},"attributes":{"enabled":true,"created":1566481167,"updated":1566481167,"recoveryLevel":"Purgeable"}}' headers: cache-control: - no-cache @@ -87,7 +90,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:34:52 GMT + - Thu, 22 Aug 2019 13:39:26 GMT expires: - '-1' pragma: @@ -101,11 +104,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: @@ -125,12 +128,12 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vault44471023.vault.azure.net/keys/keysign44471023/b93bf461234c49719f1f2e70bd5cd5ec/sign?api-version=7.0 + uri: https://vault44471023.vault.azure.net/keys/keysign44471023/1e0c2d538f904319bfe89efcc49d3b41/sign?api-version=7.0 response: body: - string: '{"kid":"https://vault44471023.vault.azure.net/keys/keysign44471023/b93bf461234c49719f1f2e70bd5cd5ec","value":"YX0IOuHlYW7IEVboW0c8M_geUfp2pKoCw7ujVZfXZOy0890603_QcjCSzuw_qUWehJ8IYVlfaXeF3Ebu36oB6cD8oG8OfI6rLM9BKQUR2KE5VoCBKAGit7FxhAnLRFGP69dF6gyO_wv_-zCJnXLIOg1Pu0K80WVSYkj6Wzczj35OQHEptDqRmxdwQoDYoEk5iYcb3JOeWC1frcGVEf9qs0yzwx1AbgkAOPElweovZZlleS6MALP0HTt7L5zJg7kjnCsuksVsEfM2R0_Mzt8nT24LczCNyZac50hHVkCepaZDRs26KodYnSs3doFlYOUJpCu8sxil7VBTEtFY38dENg"}' + string: '{"kid":"https://vault44471023.vault.azure.net/keys/keysign44471023/1e0c2d538f904319bfe89efcc49d3b41","value":"YX0IOuHlYW7IEVboW0c8M_geUfp2pKoCw7ujVZfXZOy0890603_QcjCSzuw_qUWehJ8IYVlfaXeF3Ebu36oB6cD8oG8OfI6rLM9BKQUR2KE5VoCBKAGit7FxhAnLRFGP69dF6gyO_wv_-zCJnXLIOg1Pu0K80WVSYkj6Wzczj35OQHEptDqRmxdwQoDYoEk5iYcb3JOeWC1frcGVEf9qs0yzwx1AbgkAOPElweovZZlleS6MALP0HTt7L5zJg7kjnCsuksVsEfM2R0_Mzt8nT24LczCNyZac50hHVkCepaZDRs26KodYnSs3doFlYOUJpCu8sxil7VBTEtFY38dENg"}' headers: cache-control: - no-cache @@ -139,7 +142,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:34:52 GMT + - Thu, 22 Aug 2019 13:39:26 GMT expires: - '-1' pragma: @@ -153,19 +156,69 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg", "value": "YX0IOuHlYW7IEVboW0c8M_geUfp2pKoCw7ujVZfXZOy0890603_QcjCSzuw_qUWehJ8IYVlfaXeF3Ebu36oB6cD8oG8OfI6rLM9BKQUR2KE5VoCBKAGit7FxhAnLRFGP69dF6gyO_wv_-zCJnXLIOg1Pu0K80WVSYkj6Wzczj35OQHEptDqRmxdwQoDYoEk5iYcb3JOeWC1frcGVEf9qs0yzwx1AbgkAOPElweovZZlleS6MALP0HTt7L5zJg7kjnCsuksVsEfM2R0_Mzt8nT24LczCNyZac50hHVkCepaZDRs26KodYnSs3doFlYOUJpCu8sxil7VBTEtFY38dENg", - "alg": "RS256"}' + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://vault44471023.vault.azure.net/keys/keysign44471023/1e0c2d538f904319bfe89efcc49d3b41?api-version=7.0 + response: + body: + string: '{"error":{"code":"Forbidden","message":"Operation is not allowed.\r\nOperation: + \"get\"\r\nCaller: appid=3525c2f5-9605-4d01-b30b-59272b48be7f;oid=00000000-0000-0000-0000-000000000000;numgroups=0;iss=https://sts.windows.net/00000000-0000-0000-0000-000000000000/\r\nVault: + vault44471023;location=westus","innererror":{"code":"ForbiddenByPolicy"}}}' + headers: + cache-control: + - no-cache + content-length: + - '345' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 22 Aug 2019 13:39:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 403 + message: Forbidden +- request: + body: '{"value": "YX0IOuHlYW7IEVboW0c8M_geUfp2pKoCw7ujVZfXZOy0890603_QcjCSzuw_qUWehJ8IYVlfaXeF3Ebu36oB6cD8oG8OfI6rLM9BKQUR2KE5VoCBKAGit7FxhAnLRFGP69dF6gyO_wv_-zCJnXLIOg1Pu0K80WVSYkj6Wzczj35OQHEptDqRmxdwQoDYoEk5iYcb3JOeWC1frcGVEf9qs0yzwx1AbgkAOPElweovZZlleS6MALP0HTt7L5zJg7kjnCsuksVsEfM2R0_Mzt8nT24LczCNyZac50hHVkCepaZDRs26KodYnSs3doFlYOUJpCu8sxil7VBTEtFY38dENg", + "alg": "RS256", "digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' headers: Accept: - application/json @@ -178,9 +231,9 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vault44471023.vault.azure.net/keys/keysign44471023/b93bf461234c49719f1f2e70bd5cd5ec/verify?api-version=7.0 + uri: https://vault44471023.vault.azure.net/keys/keysign44471023/1e0c2d538f904319bfe89efcc49d3b41/verify?api-version=7.0 response: body: string: '{"value":true}' @@ -192,7 +245,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:34:52 GMT + - Thu, 22 Aug 2019 13:39:26 GMT expires: - '-1' pragma: @@ -206,11 +259,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_wrap_and_unwrap.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_wrap_and_unwrap.yaml index 517f2f73088a..a57025ff1351 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_wrap_and_unwrap.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_wrap_and_unwrap.yaml @@ -13,19 +13,22 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST uri: https://vault450e1034.vault.azure.net/keys/keywrap450e1034/create?api-version=7.0 response: body: - string: '' + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' headers: cache-control: - no-cache content-length: - - '0' + - '87' + content-type: + - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:34:52 GMT + - Thu, 22 Aug 2019 13:39:25 GMT expires: - '-1' pragma: @@ -42,11 +45,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: @@ -66,12 +69,12 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST uri: https://vault450e1034.vault.azure.net/keys/keywrap450e1034/create?api-version=7.0 response: body: - string: '{"key":{"kid":"https://vault450e1034.vault.azure.net/keys/keywrap450e1034/95bd090ce5b548ad83bcad4807b1738f","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"znTj5Db3POvulzBMi670hpt7sny7mguu3xD_6-8AyHL1iTQDc-mtAnAgoZV0Oj_uE766ArKkPaZY_s0A8HU6yOKnxthMXO8iCaK415-dz03fAgdL6OgTikC_7-NdJMozatFzE3JpuuxoOEvz1eBRh6ukjMeHLyrJNZGkRlN-0uEGrQoR8bajiZTBUTxxBDILi8YFrG3hd45vD2HSYvLhDzgyYQ9C2pLn1pvKPQa0f0Uw-4TQqN2RbSIcCwWJueGqwOCHPoB1uwz2lTx2EH9zngLgI46tudfNawxYT8foNMEhr77THYorxc5brHYx8lvV64n82brJg25VblNiLJs2BQ","e":"AQAB"},"attributes":{"enabled":true,"created":1564090493,"updated":1564090493,"recoveryLevel":"Purgeable"}}' + string: '{"key":{"kid":"https://vault450e1034.vault.azure.net/keys/keywrap450e1034/d8f7fe88a8734d17bb12675fd98e1f2d","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"2Nsf6jVSTq6Lmo1KfFXvG3DBKrTcIukGbaU0LTfqG8iT4nDihHKTbyD56LgWc7RqjOk4FDLDg7cnVuAooHbt8NDKxTsXwinsGe2RLE9gzHXUMly3Gp8S2X_qrs-uAgpe8zVQONS60ncU225JI9CZPFZEUBcr5ywJ9VFyC_GhTnX8qVGTO3An0NYfU7n3Jskr_CHVDQqCpdC_wVLApuBph8yb_0nlDe5A9GJOLsO50s_DQMo870OBrHd6YByB4HuM7bgVLupbRpN16NbPuNd4CiPHchjh0colyCRglBgj9aaa1a8ymdEZt2CLtXqlu5YNotiVZ3MYtViYeTYqEoURCw","e":"AQAB"},"attributes":{"enabled":true,"created":1566481166,"updated":1566481166,"recoveryLevel":"Purgeable"}}' headers: cache-control: - no-cache @@ -80,7 +83,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:34:52 GMT + - Thu, 22 Aug 2019 13:39:26 GMT expires: - '-1' pragma: @@ -94,18 +97,69 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"alg": "RSA-OAEP", "value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://vault450e1034.vault.azure.net/keys/keywrap450e1034/d8f7fe88a8734d17bb12675fd98e1f2d?api-version=7.0 + response: + body: + string: '{"error":{"code":"Forbidden","message":"Operation is not allowed.\r\nOperation: + \"get\"\r\nCaller: appid=3525c2f5-9605-4d01-b30b-59272b48be7f;oid=00000000-0000-0000-0000-000000000000;numgroups=0;iss=https://sts.windows.net/00000000-0000-0000-0000-000000000000/\r\nVault: + vault450e1034;location=westus","innererror":{"code":"ForbiddenByPolicy"}}}' + headers: + cache-control: + - no-cache + content-length: + - '345' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 22 Aug 2019 13:39:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 403 + message: Forbidden +- request: + body: '{"value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ", + "alg": "RSA-OAEP"}' headers: Accept: - application/json @@ -118,12 +172,12 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vault450e1034.vault.azure.net/keys/keywrap450e1034/95bd090ce5b548ad83bcad4807b1738f/wrapkey?api-version=7.0 + uri: https://vault450e1034.vault.azure.net/keys/keywrap450e1034/d8f7fe88a8734d17bb12675fd98e1f2d/wrapkey?api-version=7.0 response: body: - string: '{"kid":"https://vault450e1034.vault.azure.net/keys/keywrap450e1034/95bd090ce5b548ad83bcad4807b1738f","value":"QAnvXMceHRynZs-tLnqZI9g2SKq60p6H5IlQGLJGbtcVUzkpLaOGlSXnmCAzpncxbFNfbHc8Dw_-ZPfotU5aPxSBxLu1sEqbC2JJ74BHrAtvXZRb4M4FAwuJex82bvgykExjTKgb96wjKFPPi7_OeJO-CXMLFngZ2klwp1fmbORVjMNkT5GWRbKD911eZwxTEyGY3KWjiqdBB-sMylalZlpP9pAHnZMk5sp3cuGK4cQVvqKkdIeDgzKhEZE5vwIvSAc2eE5iXGIaxjOYD0JivpVUQpYmtksPgGhB-ph9fymUKa6eCRybo5mGzYF_eS0XwpWfM9VTbLI96rmcsAO2dQ"}' + string: '{"kid":"https://vault450e1034.vault.azure.net/keys/keywrap450e1034/d8f7fe88a8734d17bb12675fd98e1f2d","value":"e4fi3q4e5T21Rw76qD_VMZURPOQ3G9zGvNqaWGBjxYfuK27vSIsVvT1DTPqDuy6nBycmb-QYRQ5TILLev5EY5YuYFcCL1R35qxa9W6c2Bu9jBDq7zFjUTnWKH1Z0IypAzar3aunboeaLqsadmAZOPlttfRrcYI2iRLI3dvTK9ucfCd6u0dch3o15E3iDf5zmndRaRLHIJKDW2c_ENzU0Kjyx0lPK4MtT-uj8ue0m592iybvk8ubLZIg9Tbm8HCQPsclXLDGolX2LTLDYqHvqmDVwm2cfAxaRRcBuopvERnUsWBpDU1OIAPVYwNDqACI75rotBv_qwkDSA2qhWNmXiQ"}' headers: cache-control: - no-cache @@ -132,7 +186,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:34:52 GMT + - Thu, 22 Aug 2019 13:39:27 GMT expires: - '-1' pragma: @@ -146,18 +200,19 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"alg": "RSA-OAEP", "value": "QAnvXMceHRynZs-tLnqZI9g2SKq60p6H5IlQGLJGbtcVUzkpLaOGlSXnmCAzpncxbFNfbHc8Dw_-ZPfotU5aPxSBxLu1sEqbC2JJ74BHrAtvXZRb4M4FAwuJex82bvgykExjTKgb96wjKFPPi7_OeJO-CXMLFngZ2klwp1fmbORVjMNkT5GWRbKD911eZwxTEyGY3KWjiqdBB-sMylalZlpP9pAHnZMk5sp3cuGK4cQVvqKkdIeDgzKhEZE5vwIvSAc2eE5iXGIaxjOYD0JivpVUQpYmtksPgGhB-ph9fymUKa6eCRybo5mGzYF_eS0XwpWfM9VTbLI96rmcsAO2dQ"}' + body: '{"value": "e4fi3q4e5T21Rw76qD_VMZURPOQ3G9zGvNqaWGBjxYfuK27vSIsVvT1DTPqDuy6nBycmb-QYRQ5TILLev5EY5YuYFcCL1R35qxa9W6c2Bu9jBDq7zFjUTnWKH1Z0IypAzar3aunboeaLqsadmAZOPlttfRrcYI2iRLI3dvTK9ucfCd6u0dch3o15E3iDf5zmndRaRLHIJKDW2c_ENzU0Kjyx0lPK4MtT-uj8ue0m592iybvk8ubLZIg9Tbm8HCQPsclXLDGolX2LTLDYqHvqmDVwm2cfAxaRRcBuopvERnUsWBpDU1OIAPVYwNDqACI75rotBv_qwkDSA2qhWNmXiQ", + "alg": "RSA-OAEP"}' headers: Accept: - application/json @@ -170,12 +225,12 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vault450e1034.vault.azure.net/keys/keywrap450e1034/95bd090ce5b548ad83bcad4807b1738f/unwrapkey?api-version=7.0 + uri: https://vault450e1034.vault.azure.net/keys/keywrap450e1034/d8f7fe88a8734d17bb12675fd98e1f2d/unwrapkey?api-version=7.0 response: body: - string: '{"kid":"https://vault450e1034.vault.azure.net/keys/keywrap450e1034/95bd090ce5b548ad83bcad4807b1738f","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + string: '{"kid":"https://vault450e1034.vault.azure.net/keys/keywrap450e1034/d8f7fe88a8734d17bb12675fd98e1f2d","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' headers: cache-control: - no-cache @@ -184,7 +239,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 25 Jul 2019 21:34:52 GMT + - Thu, 22 Aug 2019 13:39:27 GMT expires: - '-1' pragma: @@ -198,11 +253,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=131.107.160.58;act_addr_fam=InterNetwork; + - addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.872 + - 1.1.0.876 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_wrap_local.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_wrap_local.yaml new file mode 100644 index 000000000000..57c77d7c6c31 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_wrap_local.yaml @@ -0,0 +1,422 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultf86c0e10.vault.azure.net/keys/wrap-local/create?api-version=7.0 + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: + - no-cache + content-length: + - '87' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:47 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + www-authenticate: + - Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 401 + message: Unauthorized +- request: + body: '{"kty": "RSA", "key_size": 4096}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultf86c0e10.vault.azure.net/keys/wrap-local/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"yIMJSRJYAMY5vP4F6RkCJDlaRYkFNyZ4sRWiuRKTmb3krAkiwRHWvraeyyk5eXCgTAhiEDDu-f9O536OXfeNKQU1L0fRrNtwwrPRgnZ8_mwjLNsP90qicV3iDt2L01zzKU1JK1oPmcze5aI8EX2ks3wI6J3pqoL3O-kyZaq8MXjnDGQUSC_PyBjRzGalUWXkYCXrCnqG-Pz6HOhgqa9HFCF2tAaIpe3MVUUAfbPlCFQens9NLdti3Wv08rCZMxzk479dd2fR8h38GEZCV7siLwqY0UvivD9LRyB9eQqd1o9KipdV6CPnudfHDJpMi_GlnJd3ekU9cK9OsN_0xytTHqzaAjRR-Mvs68feI02gXmdDyD4MqWRMuca7JyXsvwxUyAu9t7YfGsWmyZasPIiC2wwk-Z2npfhqx8A4IBZ_NXr_5dNJ4yFPXMMWJsyp8Qb98-MtEuWtgNABXO6f4yuTJ5coKA6z6ZMa4yZUdDzSGcP4C_iyok5p_eC6gdgfuC9HBv9rwkArf_bDE_5zHu9nhAc1P7f92W0pci7w5uQD7YKmAob8eWjnPJDgDxNzDaet642oB0lDuS9y_hCiYaH4X9jcp-3Z4bqyjd0rqPlMxbLYLSxe7TuArfVppCH91DnDX4diyIc3voLh22zhfCxWGOh8IVSxjkGL9KqPvDNicnk","e":"AQAB"},"attributes":{"enabled":true,"created":1566426710,"updated":1566426710,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '987' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:49 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RSA-OAEP", "value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '299' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f/wrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f","value":"QTTT40Roy921XKodm3SS1RnMvmhYyEYMBDNFqOcFeGFaqHAw7OegPGLpNN03VI8JYmru2L4ORzheHNQMnyf5kXnVr81j7mCmJoS8ytHF4VPRAE9rLq0wAu98cuEo6x0I0okBA00l9vKSHcdCy4nHStzSgsev7KvIGmb-pZUj_KscXc3VX_bc6ybZNhdvbqpRSUtvJQRZBYzacWihuXoNHAjcKxRMgRiknA03x2RmptzBq9d7dLOhCG6SisV-DsSRqEzL5k4V0IV9ZgNysRanz3IzgZRy_RHe02P9rtoqG-Oi3B4TQXfhSK8jHdy37P1CQaaJq0M7m_obaMovMqdTv1Yxk1bIhd3_WdLvn2ORBvJBypEYvNtvWKMuRs2i5O3fqIPjcyWkWCsgjKUuXBU9bPSb0Bd9ecsHsHGx1WK5TRwWkk-TBB4wYVRqoCPjNe9Lr6LFSm4V-2yNmSnJkuSP0pnootO81idmVYE1SAXNzptiWeu7NTquTo7sh1UYc42Yq7l4kK4VHrUC6bIke7GsmRewNn1sX7GKcf0OXwz4kwYoFEdCEssc7LPQkRVFQxc07Zfi-YaWTvGz4zfZ6d7DL5k2DG4eJSVZfhYf2uAC5mAISRhk-KxsBIEBgo4OxlSE9yd0J7kfKJ3IbjZ34EUu3WR0z_SFHGw7DTUYnmKoVbw"}' + headers: + cache-control: + - no-cache + content-length: + - '790' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:49 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RSA-OAEP", "value": "QTTT40Roy921XKodm3SS1RnMvmhYyEYMBDNFqOcFeGFaqHAw7OegPGLpNN03VI8JYmru2L4ORzheHNQMnyf5kXnVr81j7mCmJoS8ytHF4VPRAE9rLq0wAu98cuEo6x0I0okBA00l9vKSHcdCy4nHStzSgsev7KvIGmb-pZUj_KscXc3VX_bc6ybZNhdvbqpRSUtvJQRZBYzacWihuXoNHAjcKxRMgRiknA03x2RmptzBq9d7dLOhCG6SisV-DsSRqEzL5k4V0IV9ZgNysRanz3IzgZRy_RHe02P9rtoqG-Oi3B4TQXfhSK8jHdy37P1CQaaJq0M7m_obaMovMqdTv1Yxk1bIhd3_WdLvn2ORBvJBypEYvNtvWKMuRs2i5O3fqIPjcyWkWCsgjKUuXBU9bPSb0Bd9ecsHsHGx1WK5TRwWkk-TBB4wYVRqoCPjNe9Lr6LFSm4V-2yNmSnJkuSP0pnootO81idmVYE1SAXNzptiWeu7NTquTo7sh1UYc42Yq7l4kK4VHrUC6bIke7GsmRewNn1sX7GKcf0OXwz4kwYoFEdCEssc7LPQkRVFQxc07Zfi-YaWTvGz4zfZ6d7DL5k2DG4eJSVZfhYf2uAC5mAISRhk-KxsBIEBgo4OxlSE9yd0J7kfKJ3IbjZ34EUu3WR0z_SFHGw7DTUYnmKoVbw"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '715' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f/unwrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: + - no-cache + content-length: + - '374' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:49 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RSA-OAEP-256", "value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '303' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f/wrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f","value":"Pgxj9EYniTVCY-zfnhNXFmz5yMlTh6rDxJ5Zoq3MSvwRKEYUtxfc_kl-QFG5zSjftLiiIsXJL8fxRjgq3nM0aamCXfbExMkozoGdRk6guPpTrca9vr7chXJYew9J6kwTaVQ52ZVjUEEqiQUIlO_Pcnjdzw7uoVLMDvK2qjpYN7RBn7C7nOlxuU3qDcOyMUc4pBkYooep0T6uFLgREpY8-OTkOFA_rLYa8sIiEzqf27cd-fLcv8WIHiqv2EZbusF2Wmt5vNoG6JXdibRGlmu5-FCX-PHJc9CbthIeCyu0Ym16hNzqFPAaH7Akr_oHV2Do7mMEFOeCQrLuFk6C5RkZ0FiSYZnjZii0W2f-eluBEb6hyj4DRkgOJArPVPb4LSWFIg1yCc-TUapNQR2oJLP7fhOc3lSbQv4hM_mBDq3Nryn8L10fb59GXuUA6wY1BLP5SZKD17dcU4_cjp8GmxuYrLqYtLtytlWT76JwgO2ZU5LKurlAC6cQA8zjI12ixDJt6NqQzM4nRMEMP5rwaNlrIuyER2_L6PmX6b_g9oWMMrNMBICZz6dTwDX4-GEQxJABssXd1oJN_TY1KAwnOUect9gNy9iOvW38ArYxHjmgwoEQ-t9vhaQtKP_uXZFFhfBakdhEg1aFtJSarQxhV3seDR-GjaCCP6yE08PmAZMJHZY"}' + headers: + cache-control: + - no-cache + content-length: + - '790' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:49 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RSA-OAEP-256", "value": "Pgxj9EYniTVCY-zfnhNXFmz5yMlTh6rDxJ5Zoq3MSvwRKEYUtxfc_kl-QFG5zSjftLiiIsXJL8fxRjgq3nM0aamCXfbExMkozoGdRk6guPpTrca9vr7chXJYew9J6kwTaVQ52ZVjUEEqiQUIlO_Pcnjdzw7uoVLMDvK2qjpYN7RBn7C7nOlxuU3qDcOyMUc4pBkYooep0T6uFLgREpY8-OTkOFA_rLYa8sIiEzqf27cd-fLcv8WIHiqv2EZbusF2Wmt5vNoG6JXdibRGlmu5-FCX-PHJc9CbthIeCyu0Ym16hNzqFPAaH7Akr_oHV2Do7mMEFOeCQrLuFk6C5RkZ0FiSYZnjZii0W2f-eluBEb6hyj4DRkgOJArPVPb4LSWFIg1yCc-TUapNQR2oJLP7fhOc3lSbQv4hM_mBDq3Nryn8L10fb59GXuUA6wY1BLP5SZKD17dcU4_cjp8GmxuYrLqYtLtytlWT76JwgO2ZU5LKurlAC6cQA8zjI12ixDJt6NqQzM4nRMEMP5rwaNlrIuyER2_L6PmX6b_g9oWMMrNMBICZz6dTwDX4-GEQxJABssXd1oJN_TY1KAwnOUect9gNy9iOvW38ArYxHjmgwoEQ-t9vhaQtKP_uXZFFhfBakdhEg1aFtJSarQxhV3seDR-GjaCCP6yE08PmAZMJHZY"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '719' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f/unwrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: + - no-cache + content-length: + - '374' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:49 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RSA1_5", "value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '297' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f/wrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f","value":"dAuQrN7XDcBC4yZUbx--y1aT__M_yTRriokSt7WzPNYPy3bWkUtPd68vt3NWZ7KQT10UZBls5K7kHDZU07bfg_YIY4Zs2SDHDmNZfnhX6j1wp3Frcm9R9LwNFHqfujw3rOBGfZARjcpN2RFyBYFJ8Jm8nDTrEEWEQR1q_siZDDOIfIN61XCZuytP_UsnRWDtDoPCsZwHvLTCt-ZGhopbaKeefpGIDkNqNZGwFZuJEMRMa3-FxLnzwChT4Qk1QU61MnN12_PnwpO7zDzfERI6XAPVimDEYEKxheDbO-2yXbDRTf5BnDbleZWxcAPMS7Q0VYbNgjUJUSUlkda5AGL_k5D1728dae2O00ZJNOPoyMdP-EZDPpuQWZXQjDsuf5MVTfJ8NdgoI9jhNzw8-vjUCQdXJ8_lqjDq3UTq7IyjeAOSqVORSy5zZRITgay_oD5Ufk-UUppxH9Xs_gQgaguyXKXp5SqPUH4weU6Ht3m0B-TAsv4lRD-wSMgCWmB_v-2iI5D7AWwb07YpNvhytvMnxBrTarKoCemI-w1-9Oyg58Gf0f4Xw6V4Oo3eBmu_8NM1jCQzs_CUHodFGDIfnH4yG5HrySfRGpzWEfYqpoCqqLCuFDoedyi8roRu1DUvWbn1nGtwRHWM3N8Ul9VcH5KtRpA3hF6Wh1EYNq1vkDgdYRM"}' + headers: + cache-control: + - no-cache + content-length: + - '790' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:49 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RSA1_5", "value": "dAuQrN7XDcBC4yZUbx--y1aT__M_yTRriokSt7WzPNYPy3bWkUtPd68vt3NWZ7KQT10UZBls5K7kHDZU07bfg_YIY4Zs2SDHDmNZfnhX6j1wp3Frcm9R9LwNFHqfujw3rOBGfZARjcpN2RFyBYFJ8Jm8nDTrEEWEQR1q_siZDDOIfIN61XCZuytP_UsnRWDtDoPCsZwHvLTCt-ZGhopbaKeefpGIDkNqNZGwFZuJEMRMa3-FxLnzwChT4Qk1QU61MnN12_PnwpO7zDzfERI6XAPVimDEYEKxheDbO-2yXbDRTf5BnDbleZWxcAPMS7Q0VYbNgjUJUSUlkda5AGL_k5D1728dae2O00ZJNOPoyMdP-EZDPpuQWZXQjDsuf5MVTfJ8NdgoI9jhNzw8-vjUCQdXJ8_lqjDq3UTq7IyjeAOSqVORSy5zZRITgay_oD5Ufk-UUppxH9Xs_gQgaguyXKXp5SqPUH4weU6Ht3m0B-TAsv4lRD-wSMgCWmB_v-2iI5D7AWwb07YpNvhytvMnxBrTarKoCemI-w1-9Oyg58Gf0f4Xw6V4Oo3eBmu_8NM1jCQzs_CUHodFGDIfnH4yG5HrySfRGpzWEfYqpoCqqLCuFDoedyi8roRu1DUvWbn1nGtwRHWM3N8Ul9VcH5KtRpA3hF6Wh1EYNq1vkDgdYRM"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '713' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f/unwrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultf86c0e10.vault.azure.net/keys/wrap-local/33bb009a315e4aab924dc23cb6ab628f","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: + - no-cache + content-length: + - '374' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 21 Aug 2019 22:31:49 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=131.107.147.153;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.0.876 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_ec_verify_local.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_ec_verify_local.yaml new file mode 100644 index 000000000000..be50fb74f1e3 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_ec_verify_local.yaml @@ -0,0 +1,555 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-521/create?api-version=7.0 + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:21 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-521/create + - api-version=7.0 + - '' +- request: + body: '{"crv": "P-521", "kty": "EC"}' + headers: + Accept: + - application/json + Content-Length: + - '29' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-521/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vaultae92128f.vault.azure.net/keys/ec-verify-P-521/65dc805442774ef39a527181bc6e6b3e","kty":"EC","key_ops":["sign","verify"],"crv":"P-521","x":"AaLv27GV6j70_46oUfETnpohOwYsjm4M-fnlIzup5RmWmEFATXAmmOq-R43DY8Fs_29jHMz00Fq8CCQArsmqLbhb","y":"AOVufk3nk1et_TS-1iilq_1QZnI3vK0_7HeEC9b0Qshn7CnNjy0s-cSCKvoHp9pQCuwU0JE3lqasaxGSrvp-DBqz"},"attributes":{"enabled":true,"created":1566430222,"updated":1566430222,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: no-cache + content-length: '452' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:22 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-521/create + - api-version=7.0 + - '' +- request: + body: '{"alg": "ES512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-521/65dc805442774ef39a527181bc6e6b3e/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultae92128f.vault.azure.net/keys/ec-verify-P-521/65dc805442774ef39a527181bc6e6b3e","value":"AUynelM6Qsc2EDClQUBMA0OnaZbMgu_yJbgnMmdHXjYhuRtulAyq7vMU7szHzNZpih4bwOHDrbG4nxRJ4gtX6DqBATIJIno2fsg_LrLxD1H2COH87lN2Nx6err8cxr4zRG1JJG5iKBaM4lECV__0RrepkH6oAIChLGf3v_wJifK3feGw"}' + headers: + cache-control: no-cache + content-length: '288' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-521/65dc805442774ef39a527181bc6e6b3e/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "ES512", "value": "AUynelM6Qsc2EDClQUBMA0OnaZbMgu_yJbgnMmdHXjYhuRtulAyq7vMU7szHzNZpih4bwOHDrbG4nxRJ4gtX6DqBATIJIno2fsg_LrLxD1H2COH87lN2Nx6err8cxr4zRG1JJG5iKBaM4lECV__0RrepkH6oAIChLGf3v_wJifK3feGw", + "digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '305' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-521/65dc805442774ef39a527181bc6e6b3e/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-521/65dc805442774ef39a527181bc6e6b3e/verify + - api-version=7.0 + - '' +- request: + body: '{"crv": "P-384", "kty": "EC"}' + headers: + Accept: + - application/json + Content-Length: + - '29' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-384/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vaultae92128f.vault.azure.net/keys/ec-verify-P-384/a15e5d9f42da4456943e6a73b66daf3f","kty":"EC","key_ops":["sign","verify"],"crv":"P-384","x":"LIykq4RZAeWm5ZHfSzVqGIdy46mI68tEueH2cUZM82A8obEqYEv5BC5J3Mx2B6Jo","y":"qw5kqVh4lhjlbOFVCx5v4CH3ZAfkfnl9qcJ02LwKTf-1-bvpEJsx_j7fbSAoGcFD"},"attributes":{"enabled":true,"created":1566430224,"updated":1566430224,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: no-cache + content-length: '404' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-384/create + - api-version=7.0 + - '' +- request: + body: '{"alg": "ES384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-384/a15e5d9f42da4456943e6a73b66daf3f/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultae92128f.vault.azure.net/keys/ec-verify-P-384/a15e5d9f42da4456943e6a73b66daf3f","value":"cZ7EZfBPpcseg-vBsK1QQBCfqzTgF3D6W3IEM9Xfy83iDVlxz9hLri1CXcoh-tAxy0-41pvs4Z5dJSZgi-RumpWVCaJHNJIOF_UMQREJjLCtsqFaKXYQrl_qGsvWSscn"}' + headers: + cache-control: no-cache + content-length: '240' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-384/a15e5d9f42da4456943e6a73b66daf3f/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "ES384", "value": "cZ7EZfBPpcseg-vBsK1QQBCfqzTgF3D6W3IEM9Xfy83iDVlxz9hLri1CXcoh-tAxy0-41pvs4Z5dJSZgi-RumpWVCaJHNJIOF_UMQREJjLCtsqFaKXYQrl_qGsvWSscn", + "digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '235' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-384/a15e5d9f42da4456943e6a73b66daf3f/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-384/a15e5d9f42da4456943e6a73b66daf3f/verify + - api-version=7.0 + - '' +- request: + body: '{"crv": "P-256", "kty": "EC"}' + headers: + Accept: + - application/json + Content-Length: + - '29' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256/860ea4c0b3cd438c92db223475b93655","kty":"EC","key_ops":["sign","verify"],"crv":"P-256","x":"fxAW-IHdHPdjl_lKzW7nJnmMzlUlGfzcS6VStokWvpQ","y":"ChE-z0oCpXcbu896t2tGwsYT9c6M-Z85KqhP2pJXBTU"},"attributes":{"enabled":true,"created":1566430224,"updated":1566430224,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: no-cache + content-length: '362' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-256/create + - api-version=7.0 + - '' +- request: + body: '{"alg": "ES256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256/860ea4c0b3cd438c92db223475b93655/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256/860ea4c0b3cd438c92db223475b93655","value":"mb0dWhzwEocyzBbDB8cdH6xwofjMCzCzml9Zsg7vFY29sc-fyI0gqFSDXpqY_VE8jwLLfJpGBgv-j2pqBijPjw"}' + headers: + cache-control: no-cache + content-length: '198' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-256/860ea4c0b3cd438c92db223475b93655/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "ES256", "value": "mb0dWhzwEocyzBbDB8cdH6xwofjMCzCzml9Zsg7vFY29sc-fyI0gqFSDXpqY_VE8jwLLfJpGBgv-j2pqBijPjw", + "digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '172' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256/860ea4c0b3cd438c92db223475b93655/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-256/860ea4c0b3cd438c92db223475b93655/verify + - api-version=7.0 + - '' +- request: + body: '{"crv": "P-256K", "kty": "EC"}' + headers: + Accept: + - application/json + Content-Length: + - '30' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256K/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256K/15fbcfbd0f2345af84a9f51e2eeba0a3","kty":"EC","key_ops":["sign","verify"],"crv":"P-256K","x":"Iy1f6rV27xeeONN48dpaJpduF3HP4jKZreFuT7cdzWo","y":"c0oMZ9o6Z0Sklq26-yOSGiJrkry_lXjvreRgFqInT3o"},"attributes":{"enabled":true,"created":1566430225,"updated":1566430225,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: no-cache + content-length: '364' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-256K/create + - api-version=7.0 + - '' +- request: + body: '{"alg": "ES256K", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '73' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256K/15fbcfbd0f2345af84a9f51e2eeba0a3/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256K/15fbcfbd0f2345af84a9f51e2eeba0a3","value":"bplPxu9S_x1cWUsZhfrK8RQN14EhGEd0joI3_3lPfFbqwmWjJueV8q5UuWNo-gwxgekNWTRn_XDqgS9Kl8uv2Q"}' + headers: + cache-control: no-cache + content-length: '199' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-256K/15fbcfbd0f2345af84a9f51e2eeba0a3/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "ES256K", "value": "bplPxu9S_x1cWUsZhfrK8RQN14EhGEd0joI3_3lPfFbqwmWjJueV8q5UuWNo-gwxgekNWTRn_XDqgS9Kl8uv2Q", + "digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '173' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultae92128f.vault.azure.net/keys/ec-verify-P-256K/15fbcfbd0f2345af84a9f51e2eeba0a3/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultae92128f.vault.azure.net + - /keys/ec-verify-P-256K/15fbcfbd0f2345af84a9f51e2eeba0a3/verify + - api-version=7.0 + - '' +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_and_decrypt.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_and_decrypt.yaml index 5860a59d40c5..6b7ed64d6a28 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_and_decrypt.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_and_decrypt.yaml @@ -9,16 +9,18 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: PUT uri: https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a?api-version=7.0 response: body: - string: '' + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' headers: cache-control: no-cache - content-length: '0' - date: Wed, 31 Jul 2019 20:27:00 GMT + content-length: '87' + content-type: application/json; charset=utf-8 + date: Thu, 22 Aug 2019 13:29:16 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -27,9 +29,9 @@ interactions: resource="https://vault.azure.net" x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 401 @@ -43,14 +45,14 @@ interactions: - api-version=7.0 - '' - request: - body: '{"key": {"d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + body: '{"key": {"p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", - "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", - "key_ops": ["encrypt", "decrypt", "sign", "verify", "wrapKey", "unwrapKey"], + "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + "e": "AQAB", "key_ops": ["encrypt", "decrypt", "sign", "verify", "wrapKey", + "unwrapKey"], "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", - "kty": "RSA", "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", - "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3", - "e": "AQAB", "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp"}}' + "kty": "RSA", "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3"}}' headers: Accept: - application/json @@ -59,26 +61,26 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: PUT uri: https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a?api-version=7.0 response: body: - string: '{"key":{"kid":"https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/eb8296e4069842718fe9b0b42cca36fe","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU","e":"AQAB"},"attributes":{"enabled":true,"created":1564604821,"updated":1564604821,"recoveryLevel":"Purgeable"}}' + string: '{"key":{"kid":"https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/60c195e7eeff487a82a16471837072aa","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU","e":"AQAB"},"attributes":{"enabled":true,"created":1566480560,"updated":1566480560,"recoveryLevel":"Purgeable"}}' headers: cache-control: no-cache content-length: '653' content-type: application/json; charset=utf-8 - date: Wed, 31 Jul 2019 20:27:01 GMT + date: Thu, 22 Aug 2019 13:29:20 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 200 @@ -101,26 +103,26 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/eb8296e4069842718fe9b0b42cca36fe/encrypt?api-version=7.0 + uri: https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/60c195e7eeff487a82a16471837072aa/encrypt?api-version=7.0 response: body: - string: '{"kid":"https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/eb8296e4069842718fe9b0b42cca36fe","value":"mfOUKgZgdPwfA6gDL6N8YkJ-JKkA2QFg5NHogOSqJfddaPF9GDolCMl6gQPEl1kUi059c-DSxz4eP36I6j0tCgEyv4OimBJ9-EcOKU3upfl5n5e-pEqqbA-KF007wJNn6S6p8-Q4kHXyj4Kieelvt_aCWbmSQdmMEvLB89uy4qUGR8_mJh4XZhxG3aKn7sKGxZv9P-zynR2KaBDTwd5ULNRVwnRyirf19ZH_F6-P6mxBvS-YxdOiD72Iu6eTIXFMpdyGbtqOCiJeq1iEnWdf0Ngb2lkKzcDyDEk3OHhbJhIUgdlJG3kEo-qh43A69lxmX635o3XQdoKlWHl7AXcXhw"}' + string: '{"kid":"https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/60c195e7eeff487a82a16471837072aa","value":"HP78WNq8VpsDOqmjLkYZ8o5BDCflfx_r-hScJN0PhEKY8kEwidkwVR1yVKTjl7-RjEhimeZlv4itclvPwzBgJ3tJWBWpgoQMPpZ5FOrwhjrW2o7Ni4iFVKHzMVDr5J3H0FMmP_fXY8f7LmYFTUWrU523iMCIrPmXkdTAPMLaaxuhJ5ZcG8b8YLhipQ9flwwOl46a4kVgv72tRO7NVCv4whAojEAHxqPCiznbn8kqbmmckMkON-JP7nS77Q94F4A2-UbxH59DwO_zWF3r7iS_pJ3NyJ9CqE2oPaHKJT2RAHfvn3jtSIcXLXBQp_7hP9-r2Tayk4Usf7VmyRdkSVN9pA"}' headers: cache-control: no-cache content-length: '455' content-type: application/json; charset=utf-8 - date: Wed, 31 Jul 2019 20:27:01 GMT + date: Thu, 22 Aug 2019 13:29:20 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 200 @@ -130,11 +132,11 @@ interactions: - !!python/object/new:urllib.parse.SplitResult - https - vaultfe22145a.vault.azure.net - - /keys/keycryptfe22145a/eb8296e4069842718fe9b0b42cca36fe/encrypt + - /keys/keycryptfe22145a/60c195e7eeff487a82a16471837072aa/encrypt - api-version=7.0 - '' - request: - body: '{"alg": "RSA-OAEP", "value": "mfOUKgZgdPwfA6gDL6N8YkJ-JKkA2QFg5NHogOSqJfddaPF9GDolCMl6gQPEl1kUi059c-DSxz4eP36I6j0tCgEyv4OimBJ9-EcOKU3upfl5n5e-pEqqbA-KF007wJNn6S6p8-Q4kHXyj4Kieelvt_aCWbmSQdmMEvLB89uy4qUGR8_mJh4XZhxG3aKn7sKGxZv9P-zynR2KaBDTwd5ULNRVwnRyirf19ZH_F6-P6mxBvS-YxdOiD72Iu6eTIXFMpdyGbtqOCiJeq1iEnWdf0Ngb2lkKzcDyDEk3OHhbJhIUgdlJG3kEo-qh43A69lxmX635o3XQdoKlWHl7AXcXhw"}' + body: '{"alg": "RSA-OAEP", "value": "HP78WNq8VpsDOqmjLkYZ8o5BDCflfx_r-hScJN0PhEKY8kEwidkwVR1yVKTjl7-RjEhimeZlv4itclvPwzBgJ3tJWBWpgoQMPpZ5FOrwhjrW2o7Ni4iFVKHzMVDr5J3H0FMmP_fXY8f7LmYFTUWrU523iMCIrPmXkdTAPMLaaxuhJ5ZcG8b8YLhipQ9flwwOl46a4kVgv72tRO7NVCv4whAojEAHxqPCiznbn8kqbmmckMkON-JP7nS77Q94F4A2-UbxH59DwO_zWF3r7iS_pJ3NyJ9CqE2oPaHKJT2RAHfvn3jtSIcXLXBQp_7hP9-r2Tayk4Usf7VmyRdkSVN9pA"}' headers: Accept: - application/json @@ -143,26 +145,26 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/eb8296e4069842718fe9b0b42cca36fe/decrypt?api-version=7.0 + uri: https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/60c195e7eeff487a82a16471837072aa/decrypt?api-version=7.0 response: body: - string: '{"kid":"https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/eb8296e4069842718fe9b0b42cca36fe","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + string: '{"kid":"https://vaultfe22145a.vault.azure.net/keys/keycryptfe22145a/60c195e7eeff487a82a16471837072aa","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' headers: cache-control: no-cache content-length: '380' content-type: application/json; charset=utf-8 - date: Wed, 31 Jul 2019 20:27:01 GMT + date: Thu, 22 Aug 2019 13:29:21 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 200 @@ -172,7 +174,7 @@ interactions: - !!python/object/new:urllib.parse.SplitResult - https - vaultfe22145a.vault.azure.net - - /keys/keycryptfe22145a/eb8296e4069842718fe9b0b42cca36fe/decrypt + - /keys/keycryptfe22145a/60c195e7eeff487a82a16471837072aa/decrypt - api-version=7.0 - '' version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_local.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_local.yaml new file mode 100644 index 000000000000..0d203fc6a442 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_local.yaml @@ -0,0 +1,341 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault8b0011d8.vault.azure.net/keys/encrypt-local/create?api-version=7.0 + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:20 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault8b0011d8.vault.azure.net + - /keys/encrypt-local/create + - api-version=7.0 + - '' +- request: + body: '{"kty": "RSA", "key_size": 4096}' + headers: + Accept: + - application/json + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault8b0011d8.vault.azure.net/keys/encrypt-local/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"6mgo1GgciVKZI6tN4OcqERBY1gl908h-JDjEAfM1jQi2tO3C8x6AgApCuzp4P65HbuUFJKZxtr_Q_B5ZI-Wv3amuAdsxGYtyL2wFcHSNMeqIw_kdSn0TIXkcvKS2_YYb0IERh3IJY0DfggUmCmqc68rDeRz7NK3SCtqkoSjabcJl5gIj-N7IM-P32xAmmrlmiNtEeuAk_etd3wwD3LrWBEuWQBdf6B5gQJRBL19Av6j6PYiXhzgBVMaOZRAAoGTLChW50DKgabYgASxokBbKLizFiOxU_fzrcI3KTbFCYpK3Wgi9A-71q2khFFDnfK-DTJpc5aSJ8lELLQApZXRkGnfP3mRSzwjjSO2IC-ws_q92Isn5A_PbH9eEb9kzeZz_BVNk18HZlR32Uv5SoAEWvBXctTIiLhs_5aIxpXook3QFkXGN3rTY0B821ruPk4y15BSf0oawAt_yZvdhviU3zO3L1rGpR8yHQnaM44RoIltjEyFJbZQb47OqpfEIkRHf-B5Ofhj4KmUgZ_xVhDbi0l5P2WO_4mnqjNQDh8Ac7VYMlcn30rsZ6TwdzjAj_HZOe6RH7o4OGVEnO8P_Xvlbz0NHAmntKbbzFYgFcP905iUsyj1MttTgOJmgC3MdUNZpOijbWdJHKosQjukqF2zmob4HE4Fde9VzppSbxCTX-TE","e":"AQAB"},"attributes":{"enabled":true,"created":1566430223,"updated":1566430223,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: no-cache + content-length: '990' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:22 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault8b0011d8.vault.azure.net + - /keys/encrypt-local/create + - api-version=7.0 + - '' +- request: + body: '{"alg": "RSA-OAEP", "value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + Accept: + - application/json + Content-Length: + - '299' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/encrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4","value":"VYp1GxUqEbMZ36flnMdTS4-PqvLn_pO7uy9Il0fCT1BOJxAWzZdFY0gf5frtjgItHXx9VzNaB7pTVPkB60Rw_2WslrWeERFbp64nvdczzzyyykg9jQJNdmDEwJThF9Kz1ZZX5P_T4SLL-QJ83IAXhEFelvloWWxvCnA1ta_wJxpGNygkYYNbq3FBXM1cjbsrtyQ7MS4EFQ2eOfOWs-vijK4fS1pV32wfmaNdI4Fh9MThkV1GrrIofEO0zZTvl6dJkcL4EA27LvK2sJaFBACDcMbX6ZopMXpbBnBCZgsJ46tcJrv_WQs6hBNQLMLXLNYr8lAFoFBvvnIXxjtT3MXKFo78bEbtEJgtarZi4fezJ6yNSSzZC5YxQlizBiKMcFQyrab4D_cAOcRfXqEwH6WdrSc9QNG4cYAZ8kF7gxrE4hFSeAgX9fJIU7C7ymWx9fGTxsrVnahQK0GmYzlgbBImDTXXh4a7NIA12Vx33UqC0riJgHg_aCvmKQeybcqUmpNJZd-kn5O0blGven2KUm6NuEYMfXlkC-BiAdDPUXBFhaRJNzAwL5IcKGt6cYYElPUMjhEXyJtwh0YEW_-CW4Qu8pBEPWwHg3UOAulosM57N53UdXjqY2FiQdwpkoUAkCHOHn_pxaeAtteBaa3fEiAjE4pxsfg53Q-FE7_1qAZ2DHA"}' + headers: + cache-control: no-cache + content-length: '793' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:22 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault8b0011d8.vault.azure.net + - /keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/encrypt + - api-version=7.0 + - '' +- request: + body: '{"alg": "RSA-OAEP", "value": "VYp1GxUqEbMZ36flnMdTS4-PqvLn_pO7uy9Il0fCT1BOJxAWzZdFY0gf5frtjgItHXx9VzNaB7pTVPkB60Rw_2WslrWeERFbp64nvdczzzyyykg9jQJNdmDEwJThF9Kz1ZZX5P_T4SLL-QJ83IAXhEFelvloWWxvCnA1ta_wJxpGNygkYYNbq3FBXM1cjbsrtyQ7MS4EFQ2eOfOWs-vijK4fS1pV32wfmaNdI4Fh9MThkV1GrrIofEO0zZTvl6dJkcL4EA27LvK2sJaFBACDcMbX6ZopMXpbBnBCZgsJ46tcJrv_WQs6hBNQLMLXLNYr8lAFoFBvvnIXxjtT3MXKFo78bEbtEJgtarZi4fezJ6yNSSzZC5YxQlizBiKMcFQyrab4D_cAOcRfXqEwH6WdrSc9QNG4cYAZ8kF7gxrE4hFSeAgX9fJIU7C7ymWx9fGTxsrVnahQK0GmYzlgbBImDTXXh4a7NIA12Vx33UqC0riJgHg_aCvmKQeybcqUmpNJZd-kn5O0blGven2KUm6NuEYMfXlkC-BiAdDPUXBFhaRJNzAwL5IcKGt6cYYElPUMjhEXyJtwh0YEW_-CW4Qu8pBEPWwHg3UOAulosM57N53UdXjqY2FiQdwpkoUAkCHOHn_pxaeAtteBaa3fEiAjE4pxsfg53Q-FE7_1qAZ2DHA"}' + headers: + Accept: + - application/json + Content-Length: + - '715' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/decrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: no-cache + content-length: '377' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault8b0011d8.vault.azure.net + - /keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/decrypt + - api-version=7.0 + - '' +- request: + body: '{"alg": "RSA-OAEP-256", "value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + Accept: + - application/json + Content-Length: + - '303' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/encrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4","value":"XazqcyO9fH6uKVmq5sqhG3__h5zbxNouWYdNyRAsghuKxbLuWNNptXESzA9wcM_oz4O_VotcG00rRSwYUcrWDiWEZaIXkbWVKTETgLxNxSQnBeNQFYIDLQQNoObDlGM9rlywJ8o9YGG6NgjEncAQKpCdAdX8UiwV5BNs6VS5P7yopb2hmT9xnxGSFkIv_cdVSBp2-gLYvT-G-q0rpgY1UM9sQTJHVo7hgm4Bew6455uH4Mq6cE8Pgo7S-cV8w08mqkAJjF-u0IuUzBpgzbc31RZY15duSo9YOZ4XQUVApM8BX9JmHm49bEtlEgSiNmFtITMsBR69aeU9TfiKeNwFJVq4HTzxhlsy2GkXw36sbso9t4FkbjfjJ3pHeRRtcbnmDBbPil2DDIPhgTm-dHHJukrrhWLQk5VAaQxgb_fRBSL-faL_jSRt7P5vKGB3iGemQ6ouQGs46DZZxIjrO1yx_xNHtDwkeQq-Vum3rTiOKZIYrAn1IgjCoTuz-xZTD-W6NjORJS8uhf_H-QQEIhj9OKqnh63dFziOvmIr-9mvozVjpMUtByxgJd_xyd9ILofmGJj5p73cZxY-fct8YRTu58GPFsh1xvuN3Z41zlRieoVheyJKeXie2vkM0hG6DBDE_44HwTnFKQhGMLyXMgvQtKOoB2TsbCVCWNIs2sNigYA"}' + headers: + cache-control: no-cache + content-length: '793' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault8b0011d8.vault.azure.net + - /keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/encrypt + - api-version=7.0 + - '' +- request: + body: '{"alg": "RSA-OAEP-256", "value": "XazqcyO9fH6uKVmq5sqhG3__h5zbxNouWYdNyRAsghuKxbLuWNNptXESzA9wcM_oz4O_VotcG00rRSwYUcrWDiWEZaIXkbWVKTETgLxNxSQnBeNQFYIDLQQNoObDlGM9rlywJ8o9YGG6NgjEncAQKpCdAdX8UiwV5BNs6VS5P7yopb2hmT9xnxGSFkIv_cdVSBp2-gLYvT-G-q0rpgY1UM9sQTJHVo7hgm4Bew6455uH4Mq6cE8Pgo7S-cV8w08mqkAJjF-u0IuUzBpgzbc31RZY15duSo9YOZ4XQUVApM8BX9JmHm49bEtlEgSiNmFtITMsBR69aeU9TfiKeNwFJVq4HTzxhlsy2GkXw36sbso9t4FkbjfjJ3pHeRRtcbnmDBbPil2DDIPhgTm-dHHJukrrhWLQk5VAaQxgb_fRBSL-faL_jSRt7P5vKGB3iGemQ6ouQGs46DZZxIjrO1yx_xNHtDwkeQq-Vum3rTiOKZIYrAn1IgjCoTuz-xZTD-W6NjORJS8uhf_H-QQEIhj9OKqnh63dFziOvmIr-9mvozVjpMUtByxgJd_xyd9ILofmGJj5p73cZxY-fct8YRTu58GPFsh1xvuN3Z41zlRieoVheyJKeXie2vkM0hG6DBDE_44HwTnFKQhGMLyXMgvQtKOoB2TsbCVCWNIs2sNigYA"}' + headers: + Accept: + - application/json + Content-Length: + - '719' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/decrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: no-cache + content-length: '377' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault8b0011d8.vault.azure.net + - /keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/decrypt + - api-version=7.0 + - '' +- request: + body: '{"alg": "RSA1_5", "value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + Accept: + - application/json + Content-Length: + - '297' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/encrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4","value":"w7cW1afylduUtKGs-F6LGC_YnQvH155ddcCODnTGqtK8j0fZ9kT-pbkGQBWhNLINL53lYJunIifCFqVJWZMXDJCyMpKVt-k-fOH58g0719DWLVzcLScgN8EOkNPCKTlZ6pr-X3YWYIFCwgbxhLeUUhMIdl0-49gS8TStk0TxnanAvAlP7ADV8-xyC5TUa4Z82b_dyYkSsDVpVJFWIW_OBUerU2-34_-3ejWrB_WwK8ZeclO5V4mCi-kD2d1PZsrXCrGkCsAjMYpEba0opiH_ePRe627HEjGHYcxkP2lo_Rsm-rwbgnSfKV2uGD0wfUZgMD7rXi1XofKI_gB68R7XC_SOB9xIteNsbiP0x7A1Hnte5JinDmGP6yRC7th5-J8I5vvjzAqHagfKkul-GCS9ShgegB_hvkqprqe_71uNF4iWpdmlukOXIthc6b5ifZxZMVciGmyhi5yPoeSUgijsZmCLUat-nbhZzGeZK41_B4Za3ftm6hgc1NZGf5IFAO1s1HGuj5Z1mPy1U2-unDBeNel6kxwp1CyWWWgLhb9zx-tgdeclwDa_p90ALbyJkYJ-W7DQ-PdNoO6Qro2ABzFlrn8rpkvUKLk_GrkFh0Gxzc-QiitXLq4YzhQ35-65IofgbRpHqPNJGfAo9yKggbysCbtFL4y8rpOsjPlQi8mDFK0"}' + headers: + cache-control: no-cache + content-length: '793' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault8b0011d8.vault.azure.net + - /keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/encrypt + - api-version=7.0 + - '' +- request: + body: '{"alg": "RSA1_5", "value": "w7cW1afylduUtKGs-F6LGC_YnQvH155ddcCODnTGqtK8j0fZ9kT-pbkGQBWhNLINL53lYJunIifCFqVJWZMXDJCyMpKVt-k-fOH58g0719DWLVzcLScgN8EOkNPCKTlZ6pr-X3YWYIFCwgbxhLeUUhMIdl0-49gS8TStk0TxnanAvAlP7ADV8-xyC5TUa4Z82b_dyYkSsDVpVJFWIW_OBUerU2-34_-3ejWrB_WwK8ZeclO5V4mCi-kD2d1PZsrXCrGkCsAjMYpEba0opiH_ePRe627HEjGHYcxkP2lo_Rsm-rwbgnSfKV2uGD0wfUZgMD7rXi1XofKI_gB68R7XC_SOB9xIteNsbiP0x7A1Hnte5JinDmGP6yRC7th5-J8I5vvjzAqHagfKkul-GCS9ShgegB_hvkqprqe_71uNF4iWpdmlukOXIthc6b5ifZxZMVciGmyhi5yPoeSUgijsZmCLUat-nbhZzGeZK41_B4Za3ftm6hgc1NZGf5IFAO1s1HGuj5Z1mPy1U2-unDBeNel6kxwp1CyWWWgLhb9zx-tgdeclwDa_p90ALbyJkYJ-W7DQ-PdNoO6Qro2ABzFlrn8rpkvUKLk_GrkFh0Gxzc-QiitXLq4YzhQ35-65IofgbRpHqPNJGfAo9yKggbysCbtFL4y8rpOsjPlQi8mDFK0"}' + headers: + Accept: + - application/json + Content-Length: + - '713' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/decrypt?api-version=7.0 + response: + body: + string: '{"kid":"https://vault8b0011d8.vault.azure.net/keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: no-cache + content-length: '377' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault8b0011d8.vault.azure.net + - /keys/encrypt-local/72b2c01ed0c942a3a4ba6ea3f6dfa1f4/decrypt + - api-version=7.0 + - '' +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_rsa_verify_local.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_rsa_verify_local.yaml new file mode 100644 index 000000000000..3798da0df982 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_rsa_verify_local.yaml @@ -0,0 +1,1703 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/create?api-version=7.0 + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:20 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/create + - api-version=7.0 + - '' +- request: + body: '{"key_size": 2048, "kty": "RSA"}' + headers: + Accept: + - application/json + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"spEdJUNbqYY30HTyE4nrZFbRlphHn7uSwy8SXXRxqT94-Ra_b578rPj367nebhRQPh1dPXdhtmY4kXVx1O_Bv1sLNSu5wnQqwG2TatFBv78oujUw7Q85T-OZyS_gM4L9BFrwtbsYXVYzZUAs7TBU-LofcZANYWtLxTgvT7_Sl8-3tAD0LvOeH7m-VZIIBSCxQfM5iejtXcvFJbTC6zbCJ0KDWkq337Ymrs_UysZkvQ9o5S1_0Gs2dl2BktKILxDRQ8JOwVAhEsqFpXs8xfR99wNIODNXiMusG2HwMkBVPw-Ayyo8w_6uk-lusXUhzLqIgKtaMF2AIB-nowxpOErunw","e":"AQAB"},"attributes":{"enabled":true,"created":1566430223,"updated":1566430223,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: no-cache + content-length: '651' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/create + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb","value":"brwN0kjyrVcIrJiR2fHT125XcI-tE_0YsMQ5tODux6KiFYkbii9TeiUXWF7DjHGc_ZAO3vXlEnRp-AMRvVR8Jtm47VwRplGsl2o9GE5Ow5sHHurnx1AGDkE02TzpRAK7H3gn5T2ZnUHjQ6q_GvDnuPA8Go1IbT1lWZ539FjRUp_5kSVP3Er3Us-zskMFh1XudmHoDlGPKg2yiP6YQ4sCQ_IZVgaiYACzsIVVWwZ7TbWJTZhyDp0NqSYWZhSZy95-avvskyer5MzOnLAXVREo9V3pVl9WgKQLff7yADbOKAYvom4WWzDKjfMADXx_6klVI3l3oHqpo_m8i3CbgN0EWw"}' + headers: + cache-control: no-cache + content-length: '454' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS256", "value": "brwN0kjyrVcIrJiR2fHT125XcI-tE_0YsMQ5tODux6KiFYkbii9TeiUXWF7DjHGc_ZAO3vXlEnRp-AMRvVR8Jtm47VwRplGsl2o9GE5Ow5sHHurnx1AGDkE02TzpRAK7H3gn5T2ZnUHjQ6q_GvDnuPA8Go1IbT1lWZ539FjRUp_5kSVP3Er3Us-zskMFh1XudmHoDlGPKg2yiP6YQ4sCQ_IZVgaiYACzsIVVWwZ7TbWJTZhyDp0NqSYWZhSZy95-avvskyer5MzOnLAXVREo9V3pVl9WgKQLff7yADbOKAYvom4WWzDKjfMADXx_6klVI3l3oHqpo_m8i3CbgN0EWw", + "digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '428' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb","value":"fyniLnBr4PK04XVcs2AZguTgBfDqwa0k8bWGPBmlKTB4mh40niKZ66-2yGWIwZebiSXl8KRQUy3BjN2ue4OcGRrQh5mYVyZ3iWtDzfpAUsNzb3qaoQR0TJpVmBIHm626_6IKOCGzc1ISl1k7iqrOBEs3BGGtgkYuWdTY3ogCVEwrllm6jk4s0SqZkjrINXLgqEp5jbXP1qZCa7zWIXopReZKscOBwq2eiI9Llbut3jD8WQCdgGvdl8bOh8iXathWsDvG2Gx8HMw1-Txj1Hjha5MiibVWEhiNg33rx7dwshMMrJYQreG1LHcG4px-O2rR1_KHw2x2kA9u7DZk51Zc6A"}' + headers: + cache-control: no-cache + content-length: '454' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:23 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS384", "value": "fyniLnBr4PK04XVcs2AZguTgBfDqwa0k8bWGPBmlKTB4mh40niKZ66-2yGWIwZebiSXl8KRQUy3BjN2ue4OcGRrQh5mYVyZ3iWtDzfpAUsNzb3qaoQR0TJpVmBIHm626_6IKOCGzc1ISl1k7iqrOBEs3BGGtgkYuWdTY3ogCVEwrllm6jk4s0SqZkjrINXLgqEp5jbXP1qZCa7zWIXopReZKscOBwq2eiI9Llbut3jD8WQCdgGvdl8bOh8iXathWsDvG2Gx8HMw1-Txj1Hjha5MiibVWEhiNg33rx7dwshMMrJYQreG1LHcG4px-O2rR1_KHw2x2kA9u7DZk51Zc6A", + "digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '449' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb","value":"SSAzznOOFt8hwHJbX95P5X1UhUNI7PagBEjlNS6zwFVMXgUeWHaHrPwIJNj2bGAwXsnB-_opmZNC_I0Ke5OiT43LVo3EQTzsq_wVM6-S1HYvdImUQUPEL_dl9s3bJWAJxKPXy3WP_Vdfd_chbHI5aWnVjUVe88npyFD-hMuNaI6eWB2jeGWTZwJDuKEpWwJMmNs0Ukp5Z4Gf74fL7dngLBPF-QX4f9qi2FOx0wC3duZl8s1BWvuoLg2bzNObVAs694_RfaR3xY1PsNEuUClNsO9At_uIZAeZtmCDbt0woXfCIRL0vfllDmjl6hoIklajuF8qn3PLQjrGLw0TChJN1Q"}' + headers: + cache-control: no-cache + content-length: '454' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS512", "value": "SSAzznOOFt8hwHJbX95P5X1UhUNI7PagBEjlNS6zwFVMXgUeWHaHrPwIJNj2bGAwXsnB-_opmZNC_I0Ke5OiT43LVo3EQTzsq_wVM6-S1HYvdImUQUPEL_dl9s3bJWAJxKPXy3WP_Vdfd_chbHI5aWnVjUVe88npyFD-hMuNaI6eWB2jeGWTZwJDuKEpWwJMmNs0Ukp5Z4Gf74fL7dngLBPF-QX4f9qi2FOx0wC3duZl8s1BWvuoLg2bzNObVAs694_RfaR3xY1PsNEuUClNsO9At_uIZAeZtmCDbt0woXfCIRL0vfllDmjl6hoIklajuF8qn3PLQjrGLw0TChJN1Q", + "digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '471' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb","value":"ivojO4sRUKNnrZ3SaWpUb-ZDACEBN-oUWvQWXoPp8IF9q8-mUpQ2s-oehCqTLYwptpK9DOlNcnquSAF2LmYu0m-pliJDDXz31BER2TJgwshuWQfdiJ1Z9oIVd0cEtJQOWJEBAOoO6Y1GnVHb4y2oDEA-x5OqX2upBm03ic9sF1vcyNPFo4AUYhgdxoSiH4Xh_Ty0XWx6zZVjunUd9zF9ImEM7FgKPVgNuU7Sl_EIIYAtK5rhqIiv3cfot_6sbuow5CQAGVEm8QxiHwEdHibAikF4CFkpt-fgTsNSoVF2a3RZrGyi-v9Kz4wKTFBngo0JXs2A9xoU1PiESZUtjahrTg"}' + headers: + cache-control: no-cache + content-length: '454' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS256", "value": "ivojO4sRUKNnrZ3SaWpUb-ZDACEBN-oUWvQWXoPp8IF9q8-mUpQ2s-oehCqTLYwptpK9DOlNcnquSAF2LmYu0m-pliJDDXz31BER2TJgwshuWQfdiJ1Z9oIVd0cEtJQOWJEBAOoO6Y1GnVHb4y2oDEA-x5OqX2upBm03ic9sF1vcyNPFo4AUYhgdxoSiH4Xh_Ty0XWx6zZVjunUd9zF9ImEM7FgKPVgNuU7Sl_EIIYAtK5rhqIiv3cfot_6sbuow5CQAGVEm8QxiHwEdHibAikF4CFkpt-fgTsNSoVF2a3RZrGyi-v9Kz4wKTFBngo0JXs2A9xoU1PiESZUtjahrTg", + "digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '428' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb","value":"Cbkx1hxfmKK9YtASMRUKxjx24huH7dMxWdYWNZbPsgCP2GWyuGkzpUY48yBVxJw65yyN7Xo_XS4lV28pxKfnZCm3K3JJU-kuYT3hk5hxF5JJ8-kp6NNjNGYNnBZ61bqNAb8OFCJ89qWrwYUif_1RUEKcXU2Hwpdup4AoocqnXuZOQzf2Wk2yNEHk4ZcyCpbJdF-RUspescl_xia2BJvDrLG-XMk9xdSIsYdCw_E7QPytT-24jQwm1jm0wS-Wgb04YAnLRgHqE9K8nc8OqFAWF-OwJWe9t58kkCahAZBjjNRZKUYvVxZ_9HI-V2qCMnFKACTX4Ni8cGVHEZc1ryS_2w"}' + headers: + cache-control: no-cache + content-length: '454' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS384", "value": "Cbkx1hxfmKK9YtASMRUKxjx24huH7dMxWdYWNZbPsgCP2GWyuGkzpUY48yBVxJw65yyN7Xo_XS4lV28pxKfnZCm3K3JJU-kuYT3hk5hxF5JJ8-kp6NNjNGYNnBZ61bqNAb8OFCJ89qWrwYUif_1RUEKcXU2Hwpdup4AoocqnXuZOQzf2Wk2yNEHk4ZcyCpbJdF-RUspescl_xia2BJvDrLG-XMk9xdSIsYdCw_E7QPytT-24jQwm1jm0wS-Wgb04YAnLRgHqE9K8nc8OqFAWF-OwJWe9t58kkCahAZBjjNRZKUYvVxZ_9HI-V2qCMnFKACTX4Ni8cGVHEZc1ryS_2w", + "digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '449' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb","value":"n-mvF-pvElPYQ600_Z6DHlfd05yahODl7EgJjUkmvLI7mumWVBEDTQSHMWfKDnQtFOmjVd6w3A97v29xvl6HMdiFx1aMrr3AvyZCquD40eozQcpwUauOcE_2JCXZ7gNAqmYAQhmc-Rv-oVeq9TdH5QJ4-1optFCt1bOJvkOTHo8OUrgRT9c6Bu5VoeKTf210Nm8Jm3FmbJICizoTkUiOkj7eCHVtXyhb3FVOnkovCRbBMA8vlY4H6WFyMD2JiMyIgnOl63NlVdamTMa1d9ju9wwcxhNISi8tqzxida6GJbX8uPDTh_bJ_42bhSyOUfUQ1N0XMlBOx9nSoaZwhlk7WA"}' + headers: + cache-control: no-cache + content-length: '454' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS512", "value": "n-mvF-pvElPYQ600_Z6DHlfd05yahODl7EgJjUkmvLI7mumWVBEDTQSHMWfKDnQtFOmjVd6w3A97v29xvl6HMdiFx1aMrr3AvyZCquD40eozQcpwUauOcE_2JCXZ7gNAqmYAQhmc-Rv-oVeq9TdH5QJ4-1optFCt1bOJvkOTHo8OUrgRT9c6Bu5VoeKTf210Nm8Jm3FmbJICizoTkUiOkj7eCHVtXyhb3FVOnkovCRbBMA8vlY4H6WFyMD2JiMyIgnOl63NlVdamTMa1d9ju9wwcxhNISi8tqzxida6GJbX8uPDTh_bJ_42bhSyOUfUQ1N0XMlBOx9nSoaZwhlk7WA", + "digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '471' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:26 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-2048/e79fdafd50ca45c2b29f1f4f47cab4fb/verify + - api-version=7.0 + - '' +- request: + body: '{"key_size": 3072, "kty": "RSA"}' + headers: + Accept: + - application/json + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"rG44uvXlKL0H8lPNN9rhQphAtE5uK9psJZBvdglfdJkoZV9m6iSpNEQKBNX6tg0Z5xqifBjQImnNzA-ThfdlDhEgrLja5T_L04NJnme5KWxxhAYwQaMwK5MoA6j2EULy2lrkyhUdI0s_N66nWjoKi1G6hivCcUiQbxHHcpf49LE3KBaoT_te2GeHjq4OwP4Yt7kyklgZqBx79FZlV5ur3NXwSgHz-n9mv2dCPCvLnCrhykPnz9c6FSv7Ltcj9DUcNCY4iHLm5YSdklFGT84UrpPoiDUwxRkhicHm_JAK7yvxLJD0EaZkFNiobXZ56DLRNE_W9cXgL71YdyD8ZkEm2ZxOCKuSf30FEMrwJPSJIJCoWH2XtfGGo6pWXn7H3IaXFTskbnZVd-ZugJffiXLHhP01MHPYHBTMOGF9pkZahC4C9Of7M3JAfmYzg0Ijgc54JHvS2JfSYkflM-NvA3_r1wobNnP6dJeApG8rwSnD8VsiEmY-AJdvZq2RCr9cLf9P","e":"AQAB"},"attributes":{"enabled":true,"created":1566430228,"updated":1566430228,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: no-cache + content-length: '821' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:27 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/create + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0","value":"IoL3BVBO3y_s8sbV8_e1vNOpnM8lTZRlfrynp-tSOHHzRMufucCsnGfG6ClbtrUffN7o_mQLetW4BrkX0pJsPbLtkMLte-UvdT5clCpwS-U0HTf6mplAJy1tXrKl_WJ-pW2w6cyd-zPrEHA4NEOfsSUsKmM9SriQRAAmkNZCgJYH5uIbNassvlllaTPv3YHESJEpUo60RoQ38Kkr9XVLyFlu-BBPhRl_Q5BpwW8NlFRf5AqkMSsLYBufOVWEOilkb9Nyeu_UrxB76pbUdgv-rttW32ULgXqlvjCRE3AlG23pvWnmmH5_VnsufiHDWJdE7VQ1ybnAHunkxFP1LeouyWBiL_jv2KXLVJBfE7OqGTwWlzNmnggUL4g_ceEya6IwjlpN3FNYdJ-CIPvUpLaMdE9A4hMIAneB--QKljL8QVbl1fH6Zxvde00cNnScGiR0Uuf3SuFKIX58CVkE1gtus9nOu5bGNpMekXvgqVdVx-IeDawm4zCy6LihZ4CdnLCy"}' + headers: + cache-control: no-cache + content-length: '624' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:27 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS256", "value": "IoL3BVBO3y_s8sbV8_e1vNOpnM8lTZRlfrynp-tSOHHzRMufucCsnGfG6ClbtrUffN7o_mQLetW4BrkX0pJsPbLtkMLte-UvdT5clCpwS-U0HTf6mplAJy1tXrKl_WJ-pW2w6cyd-zPrEHA4NEOfsSUsKmM9SriQRAAmkNZCgJYH5uIbNassvlllaTPv3YHESJEpUo60RoQ38Kkr9XVLyFlu-BBPhRl_Q5BpwW8NlFRf5AqkMSsLYBufOVWEOilkb9Nyeu_UrxB76pbUdgv-rttW32ULgXqlvjCRE3AlG23pvWnmmH5_VnsufiHDWJdE7VQ1ybnAHunkxFP1LeouyWBiL_jv2KXLVJBfE7OqGTwWlzNmnggUL4g_ceEya6IwjlpN3FNYdJ-CIPvUpLaMdE9A4hMIAneB--QKljL8QVbl1fH6Zxvde00cNnScGiR0Uuf3SuFKIX58CVkE1gtus9nOu5bGNpMekXvgqVdVx-IeDawm4zCy6LihZ4CdnLCy", + "digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '598' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:28 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0","value":"X_Xs9qwDgm9crQnufTCwg-bHc2xXc74upjad9NVG8CcCxcxtw3quQmvaTVfJ2Mq2tzEYsxSSiV1uk9RC2gAtimOgKodgD_wKlCDP3MyKtqi1EYtP8ghfnKkoPRiPbO_Ko6QD7Uv6rvGPLW2blpv0B9FKsq8RNOJL0MmlPX3_vruPLDO3j_F3ZKE82vjiySPUU_PKAB-KH0kUcEuTiQQ-GnGswtotqJyqfAzc8cJm911WLhnLkVmO05wLwCgmj224nkasLQ1h-hZInJkMW4MXZkUYMgZd-e8N5iBrRcteHeQy2DFuXyTj7TvuTDtUeVRljblAyO8Y26woLaStFoOK-W1FAM5zvKFS8wnwqHFSbO7Z2nwkTawJR4pCKw0rpBzbXE5R1WPr8xM3Gyxr8OaYTYt6cQJ0Ozorvt1KwI6_2De0pZABN3JJu6EkjlbJHLxvaogXd1KjM1OgJzFd0eptRrd4KXXyAT7j9295k8TBhQMULNQgpAxeokccCZMw1T8Z"}' + headers: + cache-control: no-cache + content-length: '624' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:28 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS384", "value": "X_Xs9qwDgm9crQnufTCwg-bHc2xXc74upjad9NVG8CcCxcxtw3quQmvaTVfJ2Mq2tzEYsxSSiV1uk9RC2gAtimOgKodgD_wKlCDP3MyKtqi1EYtP8ghfnKkoPRiPbO_Ko6QD7Uv6rvGPLW2blpv0B9FKsq8RNOJL0MmlPX3_vruPLDO3j_F3ZKE82vjiySPUU_PKAB-KH0kUcEuTiQQ-GnGswtotqJyqfAzc8cJm911WLhnLkVmO05wLwCgmj224nkasLQ1h-hZInJkMW4MXZkUYMgZd-e8N5iBrRcteHeQy2DFuXyTj7TvuTDtUeVRljblAyO8Y26woLaStFoOK-W1FAM5zvKFS8wnwqHFSbO7Z2nwkTawJR4pCKw0rpBzbXE5R1WPr8xM3Gyxr8OaYTYt6cQJ0Ozorvt1KwI6_2De0pZABN3JJu6EkjlbJHLxvaogXd1KjM1OgJzFd0eptRrd4KXXyAT7j9295k8TBhQMULNQgpAxeokccCZMw1T8Z", + "digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '619' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:28 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0","value":"b-vNH933ahjIzWHMn5TFMwE5mfrNXzkC7OMO_7MaRUlxTHYNThsvVQec9Ph7e85PSsoALtmZeKM6kFgoB5wJ4fsmyoA66D7v68IrIvHc88mQAG3Hsg61B1p4hZNBZEApcBcYLleAUPxqu_O3I7LrvyTPBsTTG1xu-WJANuWOs56g8-N0dLWiXNqYoGKgwRO5lol5MIlz-h3_0MhlrclAJj4HXJ0wd3dC9vqPjkqDo63LpoSMulUF0o6-3sOLuBbWzvu15QurOoXtAA01wBmJ6zREiQxu5_ivvidM_TuFXJIQwwDvQhLLB-PMHhWbMK2ArBijEP7zcE120CrdW6Uq72e7UjmvGcI9h4hNNFe4bolqXZIREn3TWDMg8JcxfXKtmraVAg8vG1_DeQyegZMgBPWFhoIN6BI7olw07e6Q4DXqME1R4fs3e1bk86gXaPAp85WM7SNcvwlvNPTpQczv3Fq37Do3OSeW3rWeiW4nrQk2r9NIUgnVpLuomPX9owaR"}' + headers: + cache-control: no-cache + content-length: '624' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:29 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS512", "value": "b-vNH933ahjIzWHMn5TFMwE5mfrNXzkC7OMO_7MaRUlxTHYNThsvVQec9Ph7e85PSsoALtmZeKM6kFgoB5wJ4fsmyoA66D7v68IrIvHc88mQAG3Hsg61B1p4hZNBZEApcBcYLleAUPxqu_O3I7LrvyTPBsTTG1xu-WJANuWOs56g8-N0dLWiXNqYoGKgwRO5lol5MIlz-h3_0MhlrclAJj4HXJ0wd3dC9vqPjkqDo63LpoSMulUF0o6-3sOLuBbWzvu15QurOoXtAA01wBmJ6zREiQxu5_ivvidM_TuFXJIQwwDvQhLLB-PMHhWbMK2ArBijEP7zcE120CrdW6Uq72e7UjmvGcI9h4hNNFe4bolqXZIREn3TWDMg8JcxfXKtmraVAg8vG1_DeQyegZMgBPWFhoIN6BI7olw07e6Q4DXqME1R4fs3e1bk86gXaPAp85WM7SNcvwlvNPTpQczv3Fq37Do3OSeW3rWeiW4nrQk2r9NIUgnVpLuomPX9owaR", + "digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '641' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:29 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0","value":"h6Md-PeIMYU6aAoGHmUvtYwvCcOOV-zNQV4S2M1c_u7JsN53nP9-40vuSMARcCdXgfUoI1dlxmNRVoC1H0T_TNMl4p4ytePM-hxr28VS9AOt8d3PDbgyOL86kxrQ-107KnPj7uSn6AwVH5qUiVPicWS9g2S43e0PEDWXjV2dArFnyqFDXApFOoVmAcZ90L-D2vItbWWN8V-3CvZLx4mNzqP3fdmWw7e1BpgZ0Eov5gmBnLUkLJ4PgWWWlWZiGA3SEN-KdWMIstlo98tdRU_xVHgJRYvImcDDPuIFi49rGuDYpEK44s3NH6MNaU48mkrvzJIRuw1r5sYaC82RQvOU4yvR--ahW-98p9gUi1IonPskfEHzA5inlQA9ZMLModS0tjK53IH8SLTIEZDisWgJB5odow3I5Vzogy4R1jwQH-TPk81BRZfI7SnA83uGKxjcxTi2Qa2HjQ50O1BNIVkI6BpUD-tBeaXREbbkdtmNjfhAjO8gydfn677qxsS1lqd4"}' + headers: + cache-control: no-cache + content-length: '624' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:29 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS256", "value": "h6Md-PeIMYU6aAoGHmUvtYwvCcOOV-zNQV4S2M1c_u7JsN53nP9-40vuSMARcCdXgfUoI1dlxmNRVoC1H0T_TNMl4p4ytePM-hxr28VS9AOt8d3PDbgyOL86kxrQ-107KnPj7uSn6AwVH5qUiVPicWS9g2S43e0PEDWXjV2dArFnyqFDXApFOoVmAcZ90L-D2vItbWWN8V-3CvZLx4mNzqP3fdmWw7e1BpgZ0Eov5gmBnLUkLJ4PgWWWlWZiGA3SEN-KdWMIstlo98tdRU_xVHgJRYvImcDDPuIFi49rGuDYpEK44s3NH6MNaU48mkrvzJIRuw1r5sYaC82RQvOU4yvR--ahW-98p9gUi1IonPskfEHzA5inlQA9ZMLModS0tjK53IH8SLTIEZDisWgJB5odow3I5Vzogy4R1jwQH-TPk81BRZfI7SnA83uGKxjcxTi2Qa2HjQ50O1BNIVkI6BpUD-tBeaXREbbkdtmNjfhAjO8gydfn677qxsS1lqd4", + "digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '598' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:30 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0","value":"d2BgOsN4W_u12-miGKTba9IQ_Yi2S9R7DtvwiOfDL0QZoaH-W2P0E1-YRq2r30moh7mzKPLeRp4uAt0A89QtmFj5iewWuUAferviKm4RS_bET9aVh8Tz-2nsdmbcF5nEn9l9yylRB1Ss_cRV__kqr7B8VjJw7-sHglK4seYuQ4HSrCzzaHz3NXMGOBp0RRmO3SzLx9BXNdturFwyDm6g0Qf5C3Vqx8XgTmLsEnJiqOVFrPxI49V2KJrm3HhfeLW0tzG_d1QzdIr_ucKPY_BvR-mms09YZLklU4qYQUab70DW7hfylO5p5JtkF7LBAL1nYTYGc_NkMLhBnsOc7C2z0NSh0U7H8R-TDABvVbYHc8hf0kUhURlMas5VoARRF36pubZROnEMNaM_emcQtw3v9J_uuTh2YNszQkkBYW-tGCLloG3cA1W0Pt2o3RL5vRcbxBnchs1K5FGuaqwPMFU1b-ITBjs-ionmQ2SgJXq5wOO2AZJlZSuLpPrPBbAkIDet"}' + headers: + cache-control: no-cache + content-length: '624' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:30 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS384", "value": "d2BgOsN4W_u12-miGKTba9IQ_Yi2S9R7DtvwiOfDL0QZoaH-W2P0E1-YRq2r30moh7mzKPLeRp4uAt0A89QtmFj5iewWuUAferviKm4RS_bET9aVh8Tz-2nsdmbcF5nEn9l9yylRB1Ss_cRV__kqr7B8VjJw7-sHglK4seYuQ4HSrCzzaHz3NXMGOBp0RRmO3SzLx9BXNdturFwyDm6g0Qf5C3Vqx8XgTmLsEnJiqOVFrPxI49V2KJrm3HhfeLW0tzG_d1QzdIr_ucKPY_BvR-mms09YZLklU4qYQUab70DW7hfylO5p5JtkF7LBAL1nYTYGc_NkMLhBnsOc7C2z0NSh0U7H8R-TDABvVbYHc8hf0kUhURlMas5VoARRF36pubZROnEMNaM_emcQtw3v9J_uuTh2YNszQkkBYW-tGCLloG3cA1W0Pt2o3RL5vRcbxBnchs1K5FGuaqwPMFU1b-ITBjs-ionmQ2SgJXq5wOO2AZJlZSuLpPrPBbAkIDet", + "digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '619' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:30 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0","value":"c1BunWylH8zdVw_1cssZqcV6iybPcY7xV1g_8dOhJC0j6ZkUfHhFIKJG-9M6kcEgi5YqErEOFdjxKs0qrx8pmXctJdX3xe_WjDOPlLyqt9stI7kWK71D6VArsG4VbWzHRUpX5aPMwmCXLoi6CpMQ9rWi1dp1kK3wqWZKT6cIM1OcWPe9oct-ZDSyC510EZlBQsF6VnM8NC2mgg6G3MKB--ZJyrPdesXuDHfCJqJERrtqqfIlztcPT-258ou6OSNFYs9oBlPFzYmWkl5r9EW4ZBRMYR-3YEf5WQDrcFsJOwUstnPc8hS-JwS2j_5_lZGvYxDWssa2xfcdAMPlS7y1Cpws2_aMuZTUmuYasNlAxakJrq5VHG35tLBH09eucSx2e2s4OzZo9_o7MxsRZEjpSlkabBEFwLlO2Jp1hxKHKY6vqgaBZHQIagkCEJ9bINUdMUfAjrF4C70Zov9Nn2fjac--uBkX8138l3N32teq25t0HREaE_M6TKVRbXYrXY_P"}' + headers: + cache-control: no-cache + content-length: '624' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:30 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS512", "value": "c1BunWylH8zdVw_1cssZqcV6iybPcY7xV1g_8dOhJC0j6ZkUfHhFIKJG-9M6kcEgi5YqErEOFdjxKs0qrx8pmXctJdX3xe_WjDOPlLyqt9stI7kWK71D6VArsG4VbWzHRUpX5aPMwmCXLoi6CpMQ9rWi1dp1kK3wqWZKT6cIM1OcWPe9oct-ZDSyC510EZlBQsF6VnM8NC2mgg6G3MKB--ZJyrPdesXuDHfCJqJERrtqqfIlztcPT-258ou6OSNFYs9oBlPFzYmWkl5r9EW4ZBRMYR-3YEf5WQDrcFsJOwUstnPc8hS-JwS2j_5_lZGvYxDWssa2xfcdAMPlS7y1Cpws2_aMuZTUmuYasNlAxakJrq5VHG35tLBH09eucSx2e2s4OzZo9_o7MxsRZEjpSlkabBEFwLlO2Jp1hxKHKY6vqgaBZHQIagkCEJ9bINUdMUfAjrF4C70Zov9Nn2fjac--uBkX8138l3N32teq25t0HREaE_M6TKVRbXYrXY_P", + "digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '641' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:31 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-3072/d76a73eecbc8405ab0cab8e8128704b0/verify + - api-version=7.0 + - '' +- request: + body: '{"key_size": 4096, "kty": "RSA"}' + headers: + Accept: + - application/json + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"tdHkN-vd7OFeU5aBvz2pdpKe7Rwl30d-hs4dFZbhfsqm1kObeog5KlTitfKdh4VOCqkVD80ta0C_2a9pCwCjhwGyZfu3n6bcHS6o1Qvr3_TbP5yWEdN5FtLDdAI8qbb8tkSrJhThMoTRwFDIfL37DDqA4TTikCAIhWnKjF7KaJTzflgbT1cUsH-OAQ8_VEg_Pqnv4lu0WzkYCVLZC6ZqQW2VAIiy377dxLa0_j48TN5E82pz-2CP4xj-dHNfwNDNXDa2UOnMd5oVsGukAmIVulb5tSstHanIIsOh5s8K7X2lNc4zi1JYKmXsSWtNLPiHZPCiAIcNDqwug_l4JcUR-8NdO0IT_upkXELceTS3i5dJasWCyVPOa2NEbvfRZkzIUr8xkgc1h-TAlOfjtIlhKOVRcWrEJyp7LHW-ZGDcMrRXuxeWZVi7f4Ixw-6gBAj34vVBzBaHw67XcfhPFwvpCOnUhKUA6JLhKMFjaJQZb2RIRvNaqKh61TqsZvo8__vFcrkuIhZR-itQm3sivzAPebH7HESI1XvloyUms5TuiUzlrVpymZPFK3MSITitjPbmnVi5jW_J6CLHVmPzn2VgZt0BpjoKe-5dLE-BBghj5QCLB9qvXjlz5PoAgkXkX1LjI7zRhwG1XlfoNilCyX3Hc2Lu6qQOKsGxcxVDmoUndcE","e":"AQAB"},"attributes":{"enabled":true,"created":1566430234,"updated":1566430234,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: no-cache + content-length: '992' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:34 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/create + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1","value":"Ycs9JyYmqTyaJwy7KA81AdVjtescCP24dhecGMLkEQjyKv57SMBbL3hEs-7fDde2XKfnumt7DKt2iKwVB5KYwPA30ufjKQxpDg3Yf8kQSP3q1_Xq1c6VAgoPJg4XI6-SKYMWNk-t0FtRb5mFlKCfl0OnvFURe2FYjkj3ZUIwfyf1D3j-FTYxLIOVHkFsg_-DvYDy-udgTC6Z3tyByF0FXl-MokkfYDYqm7qglUoWYK-kWqoGo7dGjww-EInwXLF4yV9QBBHPPaL_Po8e_sXLe-EjysAayC9w7HUYQQjInK414WwHioNLMqIMo1VVBaG-H7zzbphzNmfI8MwPhpnqExyWisRNDD9Eomhf6xk2PRIV3bd6q6vScjUWezSzJVOMjWcZGCATPKZqRVCYNWlUFQ8rMnOeFvhuj9CVav1879fbVqLoRdG5umheP3jaiDvh3eIU-BWisrAVJdXJNDtHTu_xS_nb43a8GsLLcIh2ZNxNgY5H_4br5PjYZyQWiqMoZ2OUj1A24YPOU2Dmc8WOQ9cY95TBgygQNVSifoV2gLWdef4apnQkt0n8YkXiAKiaW18Y_DRNpzCjqebl3FocsHRWh3dzRbKOBXeWF9mpjo86bnK-HkHontsRtVTeChIYuFlE_kE_pLpk9zjOlUVaRrt45Z7hKkngRva_qmmbYG4"}' + headers: + cache-control: no-cache + content-length: '795' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:34 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS256", "value": "Ycs9JyYmqTyaJwy7KA81AdVjtescCP24dhecGMLkEQjyKv57SMBbL3hEs-7fDde2XKfnumt7DKt2iKwVB5KYwPA30ufjKQxpDg3Yf8kQSP3q1_Xq1c6VAgoPJg4XI6-SKYMWNk-t0FtRb5mFlKCfl0OnvFURe2FYjkj3ZUIwfyf1D3j-FTYxLIOVHkFsg_-DvYDy-udgTC6Z3tyByF0FXl-MokkfYDYqm7qglUoWYK-kWqoGo7dGjww-EInwXLF4yV9QBBHPPaL_Po8e_sXLe-EjysAayC9w7HUYQQjInK414WwHioNLMqIMo1VVBaG-H7zzbphzNmfI8MwPhpnqExyWisRNDD9Eomhf6xk2PRIV3bd6q6vScjUWezSzJVOMjWcZGCATPKZqRVCYNWlUFQ8rMnOeFvhuj9CVav1879fbVqLoRdG5umheP3jaiDvh3eIU-BWisrAVJdXJNDtHTu_xS_nb43a8GsLLcIh2ZNxNgY5H_4br5PjYZyQWiqMoZ2OUj1A24YPOU2Dmc8WOQ9cY95TBgygQNVSifoV2gLWdef4apnQkt0n8YkXiAKiaW18Y_DRNpzCjqebl3FocsHRWh3dzRbKOBXeWF9mpjo86bnK-HkHontsRtVTeChIYuFlE_kE_pLpk9zjOlUVaRrt45Z7hKkngRva_qmmbYG4", + "digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '769' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:34 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1","value":"EfMJVNxOBEPR4nn_lXwdlXLJaONZ9aZZFSqKAIf-t3EMRi-aw4Z5QnhK63tXqQAkhh0fp3mONpatgx-nuQZwmf06-ZJAkXUVof-44RvrgWhTgnj1hSZRXCW7mfTbSSEHlbAmePSijxR9Wh-a_CNWdjmv4Y3gPdJ6-Jjw0IlsLc_Uj9okI1MC9X7_Ht0TzygNIBAEFdaD_74TAO7yz4GFRb6anmFH9wbJzW41UG2xNrumhfn7qs5sdyUcF7DSV6sGDskcGW5qCWY-uTziJHI5-tsgYy1RMGULAXl6waF6SLU1WuUV3u_HpWihTNKY5_6XIQyd9ZcuHYN9ADwBZUuXtAGeh0bhwoYUDCd8QQdbn_rYVH7bfWaqYlLGHROe5d81CCWQTdqFmJSjh7J3extMeJRBYwk2taKIWwki7mtsKoM6-GF56q30cy6DycXmPFx1fDjVXZ4lFlWiL4ydqkOYFmeEwURTmbytVxH7HynqjPbvRmqFFpj943JQkcuz3EBkFa3vZK9KHZl1n2j1ZKhwsGbGGgGOY8pWDJEH1DY8GSrtyT1DiPPHb33Lc_5aK9ukRPuMvxMbKfupuvO_yLZ4fgLWo7taWj-J8aKMvZyEJIWGekeBMrJXG9E-BNa-QjQ-p_XSy0bB-VMF11ofaxUtJuSJAYVIw2k0A-Q5kXIFxI4"}' + headers: + cache-control: no-cache + content-length: '795' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:34 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS384", "value": "EfMJVNxOBEPR4nn_lXwdlXLJaONZ9aZZFSqKAIf-t3EMRi-aw4Z5QnhK63tXqQAkhh0fp3mONpatgx-nuQZwmf06-ZJAkXUVof-44RvrgWhTgnj1hSZRXCW7mfTbSSEHlbAmePSijxR9Wh-a_CNWdjmv4Y3gPdJ6-Jjw0IlsLc_Uj9okI1MC9X7_Ht0TzygNIBAEFdaD_74TAO7yz4GFRb6anmFH9wbJzW41UG2xNrumhfn7qs5sdyUcF7DSV6sGDskcGW5qCWY-uTziJHI5-tsgYy1RMGULAXl6waF6SLU1WuUV3u_HpWihTNKY5_6XIQyd9ZcuHYN9ADwBZUuXtAGeh0bhwoYUDCd8QQdbn_rYVH7bfWaqYlLGHROe5d81CCWQTdqFmJSjh7J3extMeJRBYwk2taKIWwki7mtsKoM6-GF56q30cy6DycXmPFx1fDjVXZ4lFlWiL4ydqkOYFmeEwURTmbytVxH7HynqjPbvRmqFFpj943JQkcuz3EBkFa3vZK9KHZl1n2j1ZKhwsGbGGgGOY8pWDJEH1DY8GSrtyT1DiPPHb33Lc_5aK9ukRPuMvxMbKfupuvO_yLZ4fgLWo7taWj-J8aKMvZyEJIWGekeBMrJXG9E-BNa-QjQ-p_XSy0bB-VMF11ofaxUtJuSJAYVIw2k0A-Q5kXIFxI4", + "digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '790' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:35 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1","value":"ILb3YnMEhpo25ZKkJRNSE3E5rdUTzY1EXUb9IBNRnqtD0VPIo5Q2qeSiIlCitRJ-A_KwO8rMqa87mAOl76cpsDX48pHZEXuKyyetyZJwurGBDoRrNyvAfdRqRwbFaPOGH4D96nh-S3aOrNwSXGg6BaIHmuk0Ioz94Cp5b17W_5_-EdtQTilxpCw5-r07NoGB64peuDezBlO1qrmNn2c6xTxaX_0EsXAAdXc0ycLqmoW6dlztkXByNtndOBdL3wyU0VdbQcz1q7g99zL2yHZNEYG8phn6hMggFeTxrYYd5n1opw0J1HpkoNyCjMph5rXPr3fxfOEEk0iHJhnA7KhE9eUGOyP3nNAbD8ArO9MbcMSTQCHMTLYwgFVSquHsVO4GI3rm7r7WP0_aAwnNGWpqRaOjsG84e5l5gjk47AdSTscN7vGFCzQnpHvUKmyVMDR5larNq0PY2mGcs7gcPFZgcXmXgLUNHOoRuffzcpWN3ZChFD0g7SrUN035B5Zkc4qufwfGvMFNnfJn5TBGQOIQQujgCb0tTE3T-hJOB9JVrzr5CiJDC8SqhE9OGwf5unQB-VxW_phgyejxfnQ9__dU4d0rScWgtO8uG7WZQf37O5YbDdn6sXWJGjzFk4i6_Vn6sfx9RJzQ9wMEfrI6QO99qT8aAJtenVNeZUr1X2mqrb4"}' + headers: + cache-control: no-cache + content-length: '795' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:35 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "PS512", "value": "ILb3YnMEhpo25ZKkJRNSE3E5rdUTzY1EXUb9IBNRnqtD0VPIo5Q2qeSiIlCitRJ-A_KwO8rMqa87mAOl76cpsDX48pHZEXuKyyetyZJwurGBDoRrNyvAfdRqRwbFaPOGH4D96nh-S3aOrNwSXGg6BaIHmuk0Ioz94Cp5b17W_5_-EdtQTilxpCw5-r07NoGB64peuDezBlO1qrmNn2c6xTxaX_0EsXAAdXc0ycLqmoW6dlztkXByNtndOBdL3wyU0VdbQcz1q7g99zL2yHZNEYG8phn6hMggFeTxrYYd5n1opw0J1HpkoNyCjMph5rXPr3fxfOEEk0iHJhnA7KhE9eUGOyP3nNAbD8ArO9MbcMSTQCHMTLYwgFVSquHsVO4GI3rm7r7WP0_aAwnNGWpqRaOjsG84e5l5gjk47AdSTscN7vGFCzQnpHvUKmyVMDR5larNq0PY2mGcs7gcPFZgcXmXgLUNHOoRuffzcpWN3ZChFD0g7SrUN035B5Zkc4qufwfGvMFNnfJn5TBGQOIQQujgCb0tTE3T-hJOB9JVrzr5CiJDC8SqhE9OGwf5unQB-VxW_phgyejxfnQ9__dU4d0rScWgtO8uG7WZQf37O5YbDdn6sXWJGjzFk4i6_Vn6sfx9RJzQ9wMEfrI6QO99qT8aAJtenVNeZUr1X2mqrb4", + "digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '812' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:35 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1","value":"RY67fvEY7IEfDOvJ3cz914h_0qLqc0KlLSKpUTGZrapXQutMgY6RCyguMl4Q97pup61dMp_zPgDSLVsdSyb3brRMq05yFXMXzQqgQLZ_-W_xjaSu7VfvAsiHSgRs7XtlujuSDijZyApg8A1hXYmhMVEJ6dr7t-hwG13Q3Ncaqp2sWbO2Liw_DvKQXGA3LSfgVX3dK1cEqm3TTpzrPDI48dY7cpVMwXDL9KzOvn7NsrPDDJvVIt-q8qqT72Yqxpy0oW7cM_Hx1jgrf62MkvUK0VaIuQ4T2CbTv4v3BFjlpf-nSHcYWXzIKSHGaWHyzS3QW58j4MhS_Dc5GDkSYx502bxHlRNXkVm-ySVQgNbQuy6QsmjEjSALmKlzG9hBsyCF4T72zgTemnAAfjChrotUbMe4hg62BLivwj_SbAXN5w5ebNx1Q1ATndv11YsSBBpY7nUr4_cyYG2-grSQqQ0SItkIBHaN6_J3bo1Ma-oonY5h7mS_vKS5TMCj-0iWn7kGxp9ZFj2n_s-CJgEFsy3CtTfrW-iDDfXNom4k0jYCxPy1cJrJBFZFKkfaaCFSDF2c5G7s5YO3JeM82JJUMsQGuGChE0QKRhouFWk82RIQW8i-3LiYmYxPfbwXqw7dlpwppI3N3Vwsf_VAYnwIw-Df53FjZGK17Vz3cOvJVl318QY"}' + headers: + cache-control: no-cache + content-length: '795' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:36 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS256", "value": "RY67fvEY7IEfDOvJ3cz914h_0qLqc0KlLSKpUTGZrapXQutMgY6RCyguMl4Q97pup61dMp_zPgDSLVsdSyb3brRMq05yFXMXzQqgQLZ_-W_xjaSu7VfvAsiHSgRs7XtlujuSDijZyApg8A1hXYmhMVEJ6dr7t-hwG13Q3Ncaqp2sWbO2Liw_DvKQXGA3LSfgVX3dK1cEqm3TTpzrPDI48dY7cpVMwXDL9KzOvn7NsrPDDJvVIt-q8qqT72Yqxpy0oW7cM_Hx1jgrf62MkvUK0VaIuQ4T2CbTv4v3BFjlpf-nSHcYWXzIKSHGaWHyzS3QW58j4MhS_Dc5GDkSYx502bxHlRNXkVm-ySVQgNbQuy6QsmjEjSALmKlzG9hBsyCF4T72zgTemnAAfjChrotUbMe4hg62BLivwj_SbAXN5w5ebNx1Q1ATndv11YsSBBpY7nUr4_cyYG2-grSQqQ0SItkIBHaN6_J3bo1Ma-oonY5h7mS_vKS5TMCj-0iWn7kGxp9ZFj2n_s-CJgEFsy3CtTfrW-iDDfXNom4k0jYCxPy1cJrJBFZFKkfaaCFSDF2c5G7s5YO3JeM82JJUMsQGuGChE0QKRhouFWk82RIQW8i-3LiYmYxPfbwXqw7dlpwppI3N3Vwsf_VAYnwIw-Df53FjZGK17Vz3cOvJVl318QY", + "digest": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '769' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:36 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS384", "value": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '93' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1","value":"TbGwjYEFpX9SPx8Mu9emReIqwcLoFWqcSAp9Ixso2vALypiTJckredIIbywC4TJ9iI7XE1n2DyxuXjyXRpHH0xM7EdTpljtC96YasRnkCP-OZ8MB0ke2u0HfjM_NOWYNKsNPNmaoFHdm0cven9kXVn3gzNFom4ZAslMTed0DNbiUYUFdPDlupeHahd9rjtG57jSCBQlB-tJUUS7VkT-k_d5zO6tJm9CtBkrnSu-qOywSXGkFrMS00O-I4RUurZlOgxuiNX6Q8WrnPt-3Bq--fcsoH0HRp5vZYkz7WeacVNNqoX4X2hCAvYb5ItucPSGj6Sa1h5OOZBeNlvpRzlNKJy97E8QKod58Uv2pYdxVTxPbltar4MzsA_7TmhlnYIWS1bYe5SQRfKaZLY6K2FDOIXe1H9uzx_7AVmRvI0dCc8dD2mbE2RZnfTwvy45hLZNTeRklK0Ja1dlaLF_F0FnfK2fDiG90gCs07cK51wA7Q0CSaMyqDpuFDH6rtbM3bHLf0sDyNBWYiLKqbkGMsBb6APQ9eIW9nkEX1oS6rKaf8EfouAvlrePSvu_NCVgm9NE0e-M7IbXYtVgkn7FOQ-aux66fPDxko8nuJyrA0jxPjSVdshAJFUC3SttRIhd-7b64X0K64PRzW95cqEnK4VLMLCkAM2KeTsT86dCZVlihdw4"}' + headers: + cache-control: no-cache + content-length: '795' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:36 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS384", "value": "TbGwjYEFpX9SPx8Mu9emReIqwcLoFWqcSAp9Ixso2vALypiTJckredIIbywC4TJ9iI7XE1n2DyxuXjyXRpHH0xM7EdTpljtC96YasRnkCP-OZ8MB0ke2u0HfjM_NOWYNKsNPNmaoFHdm0cven9kXVn3gzNFom4ZAslMTed0DNbiUYUFdPDlupeHahd9rjtG57jSCBQlB-tJUUS7VkT-k_d5zO6tJm9CtBkrnSu-qOywSXGkFrMS00O-I4RUurZlOgxuiNX6Q8WrnPt-3Bq--fcsoH0HRp5vZYkz7WeacVNNqoX4X2hCAvYb5ItucPSGj6Sa1h5OOZBeNlvpRzlNKJy97E8QKod58Uv2pYdxVTxPbltar4MzsA_7TmhlnYIWS1bYe5SQRfKaZLY6K2FDOIXe1H9uzx_7AVmRvI0dCc8dD2mbE2RZnfTwvy45hLZNTeRklK0Ja1dlaLF_F0FnfK2fDiG90gCs07cK51wA7Q0CSaMyqDpuFDH6rtbM3bHLf0sDyNBWYiLKqbkGMsBb6APQ9eIW9nkEX1oS6rKaf8EfouAvlrePSvu_NCVgm9NE0e-M7IbXYtVgkn7FOQ-aux66fPDxko8nuJyrA0jxPjSVdshAJFUC3SttRIhd-7b64X0K64PRzW95cqEnK4VLMLCkAM2KeTsT86dCZVlihdw4", + "digest": "OnZY76NXJ8_MBkjnc9b9RiaL5OYscmrTal040wQuLFlRrnLvJFecIvZl2KjXqwVB"}' + headers: + Accept: + - application/json + Content-Length: + - '790' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:36 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS512", "value": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '115' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign?api-version=7.0 + response: + body: + string: '{"kid":"https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1","value":"sSNuzsmKaaT2T2vfgtjHW0kfqT3fcWszpgHIw2Zmp-7Ch0IfMFPYTrwBCfeIQtLDQHn-lLJhNWkOiSNrZf2wB8tvZp9gudl6L-Wc6X2NB_EWrdPJWtT9m29ag7haMPbgnXAYs14pfSRGs1wN40DrtvCt5G1eff_ncIaHa1TxUjwBMMm0fBC8CUf6Zb-W6m7F-jZIKJ-EyBkrafchcU2IhUluiM2pmqgVvScwCGQdgmUGHpgj1LK778-L0iIzLJgHD0iYjjtYO8zRNbQ_q_XLhhuTW_06DUvkBGPRwi3QCQOhcEFpOxCT2Lmux7jYd96bs2zzDTMFF4ohLfLHVkfq8GrY9LzWEIWnfTtMTmsW3IEG-zhnFN9KBELXQksuK_0Nngb1kcXqn_s8EYO-tqfQbeFySHy039frSFbB80nBkqrpROfYozb_b9vWa5-iYTKz41tW-77BhAKdZaV_22V7O1OsAT4FXVuhDhcffdikRlIInehb0yMfZzNkjXRykUyUnxBoJkjYi-gfZK6KykDBWNtqxVkC-_qzS7nfMDgiPIqKiChcmOF8QIUxSXWmIct9PqrzBaSg5pELw4jf_m1vayRIgAEegeh9YDtKWaiJ5SPhnKrl94AZ2bi7tni7JhGgSOEieK65JTWzAPukW_vrNIXK9ZYJDg5yaz1Tad6NvdQ"}' + headers: + cache-control: no-cache + content-length: '795' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:37 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/sign + - api-version=7.0 + - '' +- request: + body: '{"alg": "RS512", "value": "sSNuzsmKaaT2T2vfgtjHW0kfqT3fcWszpgHIw2Zmp-7Ch0IfMFPYTrwBCfeIQtLDQHn-lLJhNWkOiSNrZf2wB8tvZp9gudl6L-Wc6X2NB_EWrdPJWtT9m29ag7haMPbgnXAYs14pfSRGs1wN40DrtvCt5G1eff_ncIaHa1TxUjwBMMm0fBC8CUf6Zb-W6m7F-jZIKJ-EyBkrafchcU2IhUluiM2pmqgVvScwCGQdgmUGHpgj1LK778-L0iIzLJgHD0iYjjtYO8zRNbQ_q_XLhhuTW_06DUvkBGPRwi3QCQOhcEFpOxCT2Lmux7jYd96bs2zzDTMFF4ohLfLHVkfq8GrY9LzWEIWnfTtMTmsW3IEG-zhnFN9KBELXQksuK_0Nngb1kcXqn_s8EYO-tqfQbeFySHy039frSFbB80nBkqrpROfYozb_b9vWa5-iYTKz41tW-77BhAKdZaV_22V7O1OsAT4FXVuhDhcffdikRlIInehb0yMfZzNkjXRykUyUnxBoJkjYi-gfZK6KykDBWNtqxVkC-_qzS7nfMDgiPIqKiChcmOF8QIUxSXWmIct9PqrzBaSg5pELw4jf_m1vayRIgAEegeh9YDtKWaiJ5SPhnKrl94AZ2bi7tni7JhGgSOEieK65JTWzAPukW_vrNIXK9ZYJDg5yaz1Tad6NvdQ", + "digest": "zZyL-eOHDnnq34aZaWgBMobx4x2Pm3mPRo4eqnRmLK6sE0jsXZFOFhMXaTcvILQxovTsMMh9JupeojYCnDvfrQ"}' + headers: + Accept: + - application/json + Content-Length: + - '812' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vaultc2d1130d.vault.azure.net/keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify?api-version=7.0 + response: + body: + string: '{"value":true}' + headers: + cache-control: no-cache + content-length: '14' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:37 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.251.45;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vaultc2d1130d.vault.azure.net + - /keys/rsa-verify-4096/62cf4c97b3594207b60914ba71cd42a1/verify + - api-version=7.0 + - '' +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_sign_and_verify.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_sign_and_verify.yaml index d28fb4edc7fa..28003f544c84 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_sign_and_verify.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_sign_and_verify.yaml @@ -9,16 +9,18 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: PUT uri: https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0?api-version=7.0 response: body: - string: '' + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' headers: cache-control: no-cache - content-length: '0' - date: Wed, 31 Jul 2019 20:27:59 GMT + content-length: '87' + content-type: application/json; charset=utf-8 + date: Thu, 22 Aug 2019 13:29:16 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -27,9 +29,9 @@ interactions: resource="https://vault.azure.net" x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 401 @@ -44,13 +46,13 @@ interactions: - '' - request: body: '{"key": {"key_ops": ["encrypt", "decrypt", "sign", "verify", "wrapKey", - "unwrapKey"], "e": "AQAB", "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", + "unwrapKey"], "kty": "RSA", "e": "AQAB", "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3", - "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", - "kty": "RSA", "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", - "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", - "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz"}}' + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU"}}' headers: Accept: - application/json @@ -59,26 +61,26 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: PUT uri: https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0?api-version=7.0 response: body: - string: '{"key":{"kid":"https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0/42f9726822d941bdaf4740843e286563","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU","e":"AQAB"},"attributes":{"enabled":true,"created":1564604880,"updated":1564604880,"recoveryLevel":"Purgeable"}}' + string: '{"key":{"kid":"https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0/984c4723ba4a459da20ab62a2336c40a","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU","e":"AQAB"},"attributes":{"enabled":true,"created":1566480560,"updated":1566480560,"recoveryLevel":"Purgeable"}}' headers: cache-control: no-cache content-length: '652' content-type: application/json; charset=utf-8 - date: Wed, 31 Jul 2019 20:28:00 GMT + date: Thu, 22 Aug 2019 13:29:19 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 200 @@ -101,26 +103,26 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0/42f9726822d941bdaf4740843e286563/sign?api-version=7.0 + uri: https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0/984c4723ba4a459da20ab62a2336c40a/sign?api-version=7.0 response: body: - string: '{"kid":"https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0/42f9726822d941bdaf4740843e286563","value":"YX0IOuHlYW7IEVboW0c8M_geUfp2pKoCw7ujVZfXZOy0890603_QcjCSzuw_qUWehJ8IYVlfaXeF3Ebu36oB6cD8oG8OfI6rLM9BKQUR2KE5VoCBKAGit7FxhAnLRFGP69dF6gyO_wv_-zCJnXLIOg1Pu0K80WVSYkj6Wzczj35OQHEptDqRmxdwQoDYoEk5iYcb3JOeWC1frcGVEf9qs0yzwx1AbgkAOPElweovZZlleS6MALP0HTt7L5zJg7kjnCsuksVsEfM2R0_Mzt8nT24LczCNyZac50hHVkCepaZDRs26KodYnSs3doFlYOUJpCu8sxil7VBTEtFY38dENg"}' + string: '{"kid":"https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0/984c4723ba4a459da20ab62a2336c40a","value":"YX0IOuHlYW7IEVboW0c8M_geUfp2pKoCw7ujVZfXZOy0890603_QcjCSzuw_qUWehJ8IYVlfaXeF3Ebu36oB6cD8oG8OfI6rLM9BKQUR2KE5VoCBKAGit7FxhAnLRFGP69dF6gyO_wv_-zCJnXLIOg1Pu0K80WVSYkj6Wzczj35OQHEptDqRmxdwQoDYoEk5iYcb3JOeWC1frcGVEf9qs0yzwx1AbgkAOPElweovZZlleS6MALP0HTt7L5zJg7kjnCsuksVsEfM2R0_Mzt8nT24LczCNyZac50hHVkCepaZDRs26KodYnSs3doFlYOUJpCu8sxil7VBTEtFY38dENg"}' headers: cache-control: no-cache content-length: '454' content-type: application/json; charset=utf-8 - date: Wed, 31 Jul 2019 20:28:00 GMT + date: Thu, 22 Aug 2019 13:29:21 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 200 @@ -130,7 +132,7 @@ interactions: - !!python/object/new:urllib.parse.SplitResult - https - vaultaed712a0.vault.azure.net - - /keys/keysignaed712a0/42f9726822d941bdaf4740843e286563/sign + - /keys/keysignaed712a0/984c4723ba4a459da20ab62a2336c40a/sign - api-version=7.0 - '' - request: @@ -144,9 +146,9 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0/42f9726822d941bdaf4740843e286563/verify?api-version=7.0 + uri: https://vaultaed712a0.vault.azure.net/keys/keysignaed712a0/984c4723ba4a459da20ab62a2336c40a/verify?api-version=7.0 response: body: string: '{"value":true}' @@ -154,16 +156,16 @@ interactions: cache-control: no-cache content-length: '14' content-type: application/json; charset=utf-8 - date: Wed, 31 Jul 2019 20:28:00 GMT + date: Thu, 22 Aug 2019 13:29:21 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 200 @@ -173,7 +175,7 @@ interactions: - !!python/object/new:urllib.parse.SplitResult - https - vaultaed712a0.vault.azure.net - - /keys/keysignaed712a0/42f9726822d941bdaf4740843e286563/verify + - /keys/keysignaed712a0/984c4723ba4a459da20ab62a2336c40a/verify - api-version=7.0 - '' version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_wrap_and_unwrap.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_wrap_and_unwrap.yaml index 110ede2958cb..ff8c61a829ce 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_wrap_and_unwrap.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_wrap_and_unwrap.yaml @@ -9,16 +9,18 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST uri: https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/create?api-version=7.0 response: body: - string: '' + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' headers: cache-control: no-cache - content-length: '0' - date: Wed, 31 Jul 2019 20:26:59 GMT + content-length: '87' + content-type: application/json; charset=utf-8 + date: Thu, 22 Aug 2019 13:29:17 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -27,9 +29,9 @@ interactions: resource="https://vault.azure.net" x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 401 @@ -52,26 +54,26 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST uri: https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/create?api-version=7.0 response: body: - string: '{"key":{"kid":"https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/c16b525ccd3348798ebd34d52308cfb8","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"s1DwdoP3FyqfYOboUXJvighsBvhdmhI3CYClwO0LDfOimNgKPVwhThIlH7kFxuJLNn-j4w4k7-nu4UOZKqHcN3CE5dMlmQr1-QNgldLJEuDMMecD0KAJL5A8tQp5c5onuVMt4eqEyX2crXPrO-r4Zi7acTPJzQVaGKh0c50LIMYrXbXQ5B4irgpaRzvSfBONY0yPvXYbOvrbh77kKlrnyQCclSouyvrUbkve20g1VGV6DHXlx0cNmSdK9yZCdKHFXCa-_R8aV40k6vqbTOJ-K81AzhLvBYsY2kIvC8Z7GxD4ZYlprNCUyCh5Tf45lSyj3UROUIHFNU4uQ53WroIMfQ","e":"AQAB"},"attributes":{"enabled":true,"created":1564604821,"updated":1564604821,"recoveryLevel":"Purgeable"}}' + string: '{"key":{"kid":"https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/92106aa38f744c2da1a11edfa9043a80","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"sOYtKAh7hJoraSZK8aLtakyUqyAuKX3LpqOcTCE4zwJrIrTHT3cYKwpgl1vOxKckLWdeL7-5qXj3zl0rZFoD-IXf8C9x7NrgFJfN3TWDFktbGag16xOFYwHl5T4KZ33WvZBQ-Wh_qaibUMuWXaJRyK45qYn51CV_VV8oq4-ewe02lSMMhknoAS0aOoVQyrtqeOQ1ZNqhNPT8iwd0tT-HCn5HUcMxc5NBztj2aZoXOwdkwPZPiQAPRvYM9_nkgB6qi4W7JOVU6OOW_roS7EY18K2Crx2vcRBb24CtB0-A-WeW4l6qLH6i_x-k7XGIj4fnUlHGd1ZVwIjzJw1FvxG0VQ","e":"AQAB"},"attributes":{"enabled":true,"created":1566480560,"updated":1566480560,"recoveryLevel":"Purgeable"}}' headers: cache-control: no-cache content-length: '651' content-type: application/json; charset=utf-8 - date: Wed, 31 Jul 2019 20:27:00 GMT + date: Thu, 22 Aug 2019 13:29:20 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 200 @@ -85,8 +87,7 @@ interactions: - api-version=7.0 - '' - request: - body: '{"value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ", - "alg": "RSA-OAEP"}' + body: '{"alg": "RSA-OAEP", "value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' headers: Accept: - application/json @@ -95,26 +96,26 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/c16b525ccd3348798ebd34d52308cfb8/wrapkey?api-version=7.0 + uri: https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/92106aa38f744c2da1a11edfa9043a80/wrapkey?api-version=7.0 response: body: - string: '{"kid":"https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/c16b525ccd3348798ebd34d52308cfb8","value":"H4OYHnOc0TLI7twTyENI9cJlCXit-HBDzxRSXdYxKkCrtobO3p0wN55EoyN0QFZ7n-eM2Nchm_o8NrsgVqKysUzM9_P6y8gME155-HJv71ccVr9uIgLsXhQYmSGeYJkjri-eBn63Q29zDnYviVJnUjb9CfUDILqNdmK_KdTeDBHZAFd4SRv24hE0h35SnHxHUG0HVY5SGAKNOao94B24Rn9q79rugyX2FdhCWU2INTSiYHtueh_qA7QY0b6Ko-viIzdMvHgDIsuUdY-qwn3VJZpwTzEuAj3lvv69HAIYFTXzpkt5To_pTyniZVCiTaufbC-NM1DfDAJHH820LGfVbw"}' + string: '{"kid":"https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/92106aa38f744c2da1a11edfa9043a80","value":"P7pAQqCKEcHDlJNjgn8dg-H7uwDwsfRu9kJ3RvCR7tmVI_HOI2hg3kgDFZKW-aU8hnaUyMHxxL4ctv5MxIU9U834J-RQqviVYHkrafa9wdRrUy-TGyB3zd0gBBJ2PmaXQC9amjqdaoFki0HKldgyfNq1NvkrH5Ooc30Uh5wH8WE9jJxf8PPWRQ2u5-GmE7eCLxCGCX7-3DH1CRF_yyaWO8fKgb4eONN9BAerK9GO3Db_C5a9-k4_xKrb2bgrENw_ZdJQHldNsjQRJ7nwsLYWPkbMoHbsZD5g9_mWu7JdEx77wCLAybpvrnnys7G4HtSuEbYr_Qc-qBb1AzqMy4m0VA"}' headers: cache-control: no-cache content-length: '454' content-type: application/json; charset=utf-8 - date: Wed, 31 Jul 2019 20:27:00 GMT + date: Thu, 22 Aug 2019 13:29:20 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 200 @@ -124,12 +125,11 @@ interactions: - !!python/object/new:urllib.parse.SplitResult - https - vaultaf9e12b1.vault.azure.net - - /keys/keywrapaf9e12b1/c16b525ccd3348798ebd34d52308cfb8/wrapkey + - /keys/keywrapaf9e12b1/92106aa38f744c2da1a11edfa9043a80/wrapkey - api-version=7.0 - '' - request: - body: '{"value": "H4OYHnOc0TLI7twTyENI9cJlCXit-HBDzxRSXdYxKkCrtobO3p0wN55EoyN0QFZ7n-eM2Nchm_o8NrsgVqKysUzM9_P6y8gME155-HJv71ccVr9uIgLsXhQYmSGeYJkjri-eBn63Q29zDnYviVJnUjb9CfUDILqNdmK_KdTeDBHZAFd4SRv24hE0h35SnHxHUG0HVY5SGAKNOao94B24Rn9q79rugyX2FdhCWU2INTSiYHtueh_qA7QY0b6Ko-viIzdMvHgDIsuUdY-qwn3VJZpwTzEuAj3lvv69HAIYFTXzpkt5To_pTyniZVCiTaufbC-NM1DfDAJHH820LGfVbw", - "alg": "RSA-OAEP"}' + body: '{"alg": "RSA-OAEP", "value": "P7pAQqCKEcHDlJNjgn8dg-H7uwDwsfRu9kJ3RvCR7tmVI_HOI2hg3kgDFZKW-aU8hnaUyMHxxL4ctv5MxIU9U834J-RQqviVYHkrafa9wdRrUy-TGyB3zd0gBBJ2PmaXQC9amjqdaoFki0HKldgyfNq1NvkrH5Ooc30Uh5wH8WE9jJxf8PPWRQ2u5-GmE7eCLxCGCX7-3DH1CRF_yyaWO8fKgb4eONN9BAerK9GO3Db_C5a9-k4_xKrb2bgrENw_ZdJQHldNsjQRJ7nwsLYWPkbMoHbsZD5g9_mWu7JdEx77wCLAybpvrnnys7G4HtSuEbYr_Qc-qBb1AzqMy4m0VA"}' headers: Accept: - application/json @@ -138,26 +138,26 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - python/3.5.4 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b2 azsdk-python-azure-keyvault/7.0 + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) method: POST - uri: https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/c16b525ccd3348798ebd34d52308cfb8/unwrapkey?api-version=7.0 + uri: https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/92106aa38f744c2da1a11edfa9043a80/unwrapkey?api-version=7.0 response: body: - string: '{"kid":"https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/c16b525ccd3348798ebd34d52308cfb8","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + string: '{"kid":"https://vaultaf9e12b1.vault.azure.net/keys/keywrapaf9e12b1/92106aa38f744c2da1a11edfa9043a80","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' headers: cache-control: no-cache content-length: '379' content-type: application/json; charset=utf-8 - date: Wed, 31 Jul 2019 20:27:00 GMT + date: Thu, 22 Aug 2019 13:29:21 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=131.107.160.58;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.872 + x-ms-keyvault-service-version: 1.1.0.876 x-powered-by: ASP.NET status: code: 200 @@ -167,7 +167,7 @@ interactions: - !!python/object/new:urllib.parse.SplitResult - https - vaultaf9e12b1.vault.azure.net - - /keys/keywrapaf9e12b1/c16b525ccd3348798ebd34d52308cfb8/unwrapkey + - /keys/keywrapaf9e12b1/92106aa38f744c2da1a11edfa9043a80/unwrapkey - api-version=7.0 - '' version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_wrap_local.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_wrap_local.yaml new file mode 100644 index 000000000000..879e1ce7ef38 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_wrap_local.yaml @@ -0,0 +1,347 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault569a108d.vault.azure.net/keys/wrap-local/create?api-version=7.0 + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:20 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.248.95;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault569a108d.vault.azure.net + - /keys/wrap-local/create + - api-version=7.0 + - '' +- request: + body: '{"key_size": 4096, "kty": "RSA"}' + headers: + Accept: + - application/json + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault569a108d.vault.azure.net/keys/wrap-local/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"jLlAPRjlrsix4kXHlM2LhCEu-dSoQmlgftxi3MrvP_4L2zXsbc5Hi_cNtrEImTG2ncnis8vfvJbD2lbv-u3OV_oqvdRYAsjcwTzOoFFUqaSqIN3JU9NJlKgy3PwMku1lGv8SBBltgUbKNuBdl5Ov-9l38pATQ4YnQnRm-hjBGmvBqrsD5eejJZuXJv2__I5dcc8sLvJQEVXNBN0A58jET3d-rDhW5IYbvdiPxxw_gJd2fR84pld7fceLXEn8FbVPC95YTi8NbxERjVd9Fur3M2OLAFMmxg0BMDqd33_3p1TOS4hz-n8on-E2PJqPK7TbZx7mo2h08kUsDMo-2ZIcLmKlrbxMNUJyOlTtVfBddmI-KSH7xSVjsXHS0_y59UUD4ligh1P-C38xlduuZCucMIFiFub5htdZ_SDJSd9NkmVPnFrGfzhITCkDnf5rvSadpsQhzamwYinUTTD-OZZtaAg2sxBbW5-EGmKYZaJ4FAFpQzMnZ59RUhMvyJmiRzKH_rmmyUz7tjI_0xlIONprXOTLRyDwTiZRdvM1m-p9hoOVFR8odXxyO13m2EsR10FLnpPqayFz5BtuSgffMYrWvQT8S1FCGbVJS7F1K4gnPPQsQV7MdU8M0012-LsRHor4XIRy3BEH07_BKzpdvVHjmXz15M8vNrX4K46A1PMrQ00","e":"AQAB"},"attributes":{"enabled":true,"created":1566430225,"updated":1566430225,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: no-cache + content-length: '987' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.248.95;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault569a108d.vault.azure.net + - /keys/wrap-local/create + - api-version=7.0 + - '' +- request: + body: '{"value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ", + "alg": "RSA-OAEP"}' + headers: + Accept: + - application/json + Content-Length: + - '299' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/wrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac","value":"Cjn9j0onmyVz3fkcGTLz4rq2A7ne3pjD0gO_CQwCnbn3k5qun_ANQ5mVa5XAAU94jvHkrXFHpPJ4U_OZFyeLCTaRDaP12N3HfGp4wApVj5ZrtOE2YMyPgTpgZVwfiFZc7U6ITJA95j5ozPcqzTsOr5lcR_oHZQB1vdFnZGFCuT7PR6s8hvjKCLJ2S9phD1pTmQDR9iY_kaK_02cvmzYuOLMyR9drtGW3RCX-WeS286rawjoUHi9s7hkQe2T_XVNhmsm_ZmwlKotFo8Mhve9qZho_zxURB1TgRskMlWwjf6-bPjYPbSIpR1LOW1s7gxs2u60WH6K0k91dia3t98eJ8BZydVpSB0QN68Gzr8Xhg07OptxYAWwnO2Y4rNvNKMChdYByrpOE9lKJIOWdN0_alR2rBk8mj8FOwm8-8xiLEkdfxjP4tJF5ZITDMa_iFsAn8aD1oafYy925ljc7Z02McoqyoVx32JA247pdlDUrh_ynZdsd3pqXBf2oNLQ-jRdmxQAl6luW9_GiSCzPw1vN3fdhUM3c7Ph5GqzveLhGtKBMAGmM4mhmosAsA5KIxuReskeaZ4IU7iJsUyah2lGVJT5tMtjKmM-ywUaiFBMTxwvt2UkMSeZk6PafS833hXUZpcLs_YYR9lQ__5nrubi1xl-qbxxqYDfUnMlfJ1uEziY"}' + headers: + cache-control: no-cache + content-length: '790' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:24 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.248.95;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault569a108d.vault.azure.net + - /keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/wrapkey + - api-version=7.0 + - '' +- request: + body: '{"value": "Cjn9j0onmyVz3fkcGTLz4rq2A7ne3pjD0gO_CQwCnbn3k5qun_ANQ5mVa5XAAU94jvHkrXFHpPJ4U_OZFyeLCTaRDaP12N3HfGp4wApVj5ZrtOE2YMyPgTpgZVwfiFZc7U6ITJA95j5ozPcqzTsOr5lcR_oHZQB1vdFnZGFCuT7PR6s8hvjKCLJ2S9phD1pTmQDR9iY_kaK_02cvmzYuOLMyR9drtGW3RCX-WeS286rawjoUHi9s7hkQe2T_XVNhmsm_ZmwlKotFo8Mhve9qZho_zxURB1TgRskMlWwjf6-bPjYPbSIpR1LOW1s7gxs2u60WH6K0k91dia3t98eJ8BZydVpSB0QN68Gzr8Xhg07OptxYAWwnO2Y4rNvNKMChdYByrpOE9lKJIOWdN0_alR2rBk8mj8FOwm8-8xiLEkdfxjP4tJF5ZITDMa_iFsAn8aD1oafYy925ljc7Z02McoqyoVx32JA247pdlDUrh_ynZdsd3pqXBf2oNLQ-jRdmxQAl6luW9_GiSCzPw1vN3fdhUM3c7Ph5GqzveLhGtKBMAGmM4mhmosAsA5KIxuReskeaZ4IU7iJsUyah2lGVJT5tMtjKmM-ywUaiFBMTxwvt2UkMSeZk6PafS833hXUZpcLs_YYR9lQ__5nrubi1xl-qbxxqYDfUnMlfJ1uEziY", + "alg": "RSA-OAEP"}' + headers: + Accept: + - application/json + Content-Length: + - '715' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/unwrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: no-cache + content-length: '374' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.248.95;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault569a108d.vault.azure.net + - /keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/unwrapkey + - api-version=7.0 + - '' +- request: + body: '{"value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ", + "alg": "RSA-OAEP-256"}' + headers: + Accept: + - application/json + Content-Length: + - '303' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/wrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac","value":"W_9HMYJhWqVyt4tAWD2wACipovNm7Fm5uTvLxxuc2lL033ezkQRNXrH1983JhX52VIpOekprh9BXqrQRPw-Xl9DHBb8e3ldcC4TkKSv9kRqjigkgUe5U1i8Zn_gqtAtvjPKkqjr6OVN41vPBqJto-FqOotwOiA-MapSzpjLnzJuTUVMZTNtOjhKKDuz6nDeZWalYIKpX_aanrujSY45PrCVx3k-F8eaEZJhrUY0nD0QJc0fcdu6t0gVolq7kmOpR8FuLJnebn1CiGkYyYdb7h4Ln8yy-uE5_EOAyUt47nschkXq5BIa1p7DcQ1i0aJW5Yij0ua_W1lDV-F_0wrKt5NPoVk5GqK7iNilIABuPtdPcUbEz8Yan9qgG-VaP9xE17TXZE3FpceYi-L0FXC4mZN875RJ5R8ZAYTf9-mSjlm03rH5oJ7sZjG1yoJFtgHxWhNFAo0hvJuKR7fT28n0QTTJICGFC88YlaNbdZpURUBJ8JwyewGNKdeT9DdRc7s1AbnDKRMQ7PITxS2vYnlojEQcrYsZtqYfyUhv_f2mAhXaonE9AScOkY-mZNSm-RQiVcqvQELAJVMeHmMBn4m9s_ZOyQCc_Gupi7OduYXfvCJ4JgqOQE8r9THjeQ9huUBJkitVwcl_rG3r4jTs4MOofbPZkoRCQmQpnIOaMOpvhFDQ"}' + headers: + cache-control: no-cache + content-length: '790' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.248.95;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault569a108d.vault.azure.net + - /keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/wrapkey + - api-version=7.0 + - '' +- request: + body: '{"value": "W_9HMYJhWqVyt4tAWD2wACipovNm7Fm5uTvLxxuc2lL033ezkQRNXrH1983JhX52VIpOekprh9BXqrQRPw-Xl9DHBb8e3ldcC4TkKSv9kRqjigkgUe5U1i8Zn_gqtAtvjPKkqjr6OVN41vPBqJto-FqOotwOiA-MapSzpjLnzJuTUVMZTNtOjhKKDuz6nDeZWalYIKpX_aanrujSY45PrCVx3k-F8eaEZJhrUY0nD0QJc0fcdu6t0gVolq7kmOpR8FuLJnebn1CiGkYyYdb7h4Ln8yy-uE5_EOAyUt47nschkXq5BIa1p7DcQ1i0aJW5Yij0ua_W1lDV-F_0wrKt5NPoVk5GqK7iNilIABuPtdPcUbEz8Yan9qgG-VaP9xE17TXZE3FpceYi-L0FXC4mZN875RJ5R8ZAYTf9-mSjlm03rH5oJ7sZjG1yoJFtgHxWhNFAo0hvJuKR7fT28n0QTTJICGFC88YlaNbdZpURUBJ8JwyewGNKdeT9DdRc7s1AbnDKRMQ7PITxS2vYnlojEQcrYsZtqYfyUhv_f2mAhXaonE9AScOkY-mZNSm-RQiVcqvQELAJVMeHmMBn4m9s_ZOyQCc_Gupi7OduYXfvCJ4JgqOQE8r9THjeQ9huUBJkitVwcl_rG3r4jTs4MOofbPZkoRCQmQpnIOaMOpvhFDQ", + "alg": "RSA-OAEP-256"}' + headers: + Accept: + - application/json + Content-Length: + - '719' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/unwrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: no-cache + content-length: '374' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.248.95;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault569a108d.vault.azure.net + - /keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/unwrapkey + - api-version=7.0 + - '' +- request: + body: '{"value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ", + "alg": "RSA1_5"}' + headers: + Accept: + - application/json + Content-Length: + - '297' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/wrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac","value":"Ha3UjkWUvIXkNw3Qv39v9wqIwsZcWAniRGKAaofS_yXp4avmRfYRcIa4_QifJV0XcuyeXByqmC2moRi5legZ20qPdqAUOVBxGGAN77CKucKXt9pTGWDtA-XZMhpz8v943sDqt2m7KLjeEn3Vq92kJ2hApKK36ij8M176Awz4toD8cUmi_2gKJVLQltLr1cX7ctt_n2K4T6stGvNeDD_LJrbiFW0ROIjkZkRAbQHB7hlesS92y-k8kxgi4Gh8hvxmJdi-fFBA5_ZFs2kKT58nS1QbikDcVP_xhTrhsDEU-DkDKFVP533jIQlK9y76ZnqidRUVRXfzXdhHzLdfWWf6AjZqmRXg1gniSNxjMuGpObGz4tPWnHv9bbR4f7DNKGwHeLKuaKnYk80IZlsw1sIpXY59jkQiT9hwIsAB5U0s9IIs-nYUIx_3fc7BhIGQazvevj10aYpoNMTINlAlNaVKaTUoMXupCeaP3w4ViVoSo11dfsvZUIRkC38w9zOwBdgC1VOvVrX7ltPn_J-OCtyoLLr3jE1yKaKOsKYPjfRB4SlvEMJES5_Jt9NBisCKerjpPNRZZ8IkO4jeW6OXz1ruEt_ZknwX9ohY-89d30FbxDJsSIB0HXNq78Klzb0L4IHNDntrsVXb_M1XOF1MXvtIAiZgL_f7oRq3DxzN6lDV99Y"}' + headers: + cache-control: no-cache + content-length: '790' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.248.95;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault569a108d.vault.azure.net + - /keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/wrapkey + - api-version=7.0 + - '' +- request: + body: '{"value": "Ha3UjkWUvIXkNw3Qv39v9wqIwsZcWAniRGKAaofS_yXp4avmRfYRcIa4_QifJV0XcuyeXByqmC2moRi5legZ20qPdqAUOVBxGGAN77CKucKXt9pTGWDtA-XZMhpz8v943sDqt2m7KLjeEn3Vq92kJ2hApKK36ij8M176Awz4toD8cUmi_2gKJVLQltLr1cX7ctt_n2K4T6stGvNeDD_LJrbiFW0ROIjkZkRAbQHB7hlesS92y-k8kxgi4Gh8hvxmJdi-fFBA5_ZFs2kKT58nS1QbikDcVP_xhTrhsDEU-DkDKFVP533jIQlK9y76ZnqidRUVRXfzXdhHzLdfWWf6AjZqmRXg1gniSNxjMuGpObGz4tPWnHv9bbR4f7DNKGwHeLKuaKnYk80IZlsw1sIpXY59jkQiT9hwIsAB5U0s9IIs-nYUIx_3fc7BhIGQazvevj10aYpoNMTINlAlNaVKaTUoMXupCeaP3w4ViVoSo11dfsvZUIRkC38w9zOwBdgC1VOvVrX7ltPn_J-OCtyoLLr3jE1yKaKOsKYPjfRB4SlvEMJES5_Jt9NBisCKerjpPNRZZ8IkO4jeW6OXz1ruEt_ZknwX9ohY-89d30FbxDJsSIB0HXNq78Klzb0L4IHNDntrsVXb_M1XOF1MXvtIAiZgL_f7oRq3DxzN6lDV99Y", + "alg": "RSA1_5"}' + headers: + Accept: + - application/json + Content-Length: + - '713' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-keys/4.0.0b2 Python/3.5.4 (Windows-10-10.0.18362-SP0) + method: POST + uri: https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/unwrapkey?api-version=7.0 + response: + body: + string: '{"kid":"https://vault569a108d.vault.azure.net/keys/wrap-local/b1456d41992043a0b65daa1f91f741ac","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: no-cache + content-length: '374' + content-type: application/json; charset=utf-8 + date: Wed, 21 Aug 2019 23:30:25 GMT + expires: '-1' + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: addr=166.255.248.95;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.0.876 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: !!python/object/new:yarl.URL + state: !!python/tuple + - !!python/object/new:urllib.parse.SplitResult + - https + - vault569a108d.vault.azure.net + - /keys/wrap-local/b1456d41992043a0b65daa1f91f741ac/unwrapkey + - api-version=7.0 + - '' +version: 1 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 44739bbade91..afa5d92c304e 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py @@ -5,12 +5,17 @@ import codecs import hashlib -from azure.keyvault.keys.crypto import CryptographyClient, EncryptionAlgorithm, KeyWrapAlgorithm, SignatureAlgorithm +from azure.keyvault.keys import JsonWebKeyCurveName +from azure.keyvault.keys.crypto import EncryptionAlgorithm, KeyWrapAlgorithm, SignatureAlgorithm from azure.keyvault.keys._shared._generated.v7_0.models import JsonWebKey +from azure.mgmt.keyvault.models import KeyPermissions, Permissions from devtools_testutils import ResourceGroupPreparer from keys_preparer import VaultClientPreparer from keys_test_case import KeyVaultTestCase +# without keys/get, a CryptographyClient created with a key ID performs all ops remotely +NO_GET = Permissions(keys=[p.value for p in KeyPermissions if p.value != "get"]) + class CryptoClientTests(KeyVaultTestCase): plaintext = b"5063e6aaa845f150200547944fd199679c98ed6f99da0a0b2dafeaf1f4684496fd532c1c229968cb9dee44957fcef7ccef59ceda0b362e56bcd78fd3faee5781c623c0bb22b35beabde0664fd30e0e824aba3dd1b0afffc4a3d955ede20cf6a854d52cfd" @@ -62,16 +67,18 @@ def _to_bytes(hex): return imported_key @ResourceGroupPreparer() - @VaultClientPreparer() + @VaultClientPreparer(permissions=NO_GET) def test_encrypt_and_decrypt(self, vault_client, **kwargs): # TODO: use iv, authentication_data key_name = self.get_resource_name("keycrypt") key_client = vault_client.keys imported_key = self._import_test_key(key_client, key_name) - crypto_client = key_client.get_cryptography_client(imported_key) + crypto_client = key_client.get_cryptography_client(imported_key.id) - key_id, algorithm, ciphertext, authentication_tag = crypto_client.encrypt(EncryptionAlgorithm.rsa_oaep, self.plaintext) + key_id, algorithm, ciphertext, authentication_tag = crypto_client.encrypt( + EncryptionAlgorithm.rsa_oaep, self.plaintext + ) self.assertEqual(key_id, imported_key.id) assert authentication_tag is None @@ -79,7 +86,7 @@ def test_encrypt_and_decrypt(self, vault_client, **kwargs): self.assertEqual(self.plaintext, result.decrypted_bytes) @ResourceGroupPreparer() - @VaultClientPreparer() + @VaultClientPreparer(permissions=NO_GET) def test_sign_and_verify(self, vault_client, **kwargs): key_client = vault_client.keys @@ -90,7 +97,7 @@ def test_sign_and_verify(self, vault_client, **kwargs): digest = md.digest() imported_key = self._import_test_key(key_client, key_name) - crypto_client = key_client.get_cryptography_client(imported_key) + crypto_client = key_client.get_cryptography_client(imported_key.id) key_id, algorithm, signature = crypto_client.sign(SignatureAlgorithm.rs256, digest) self.assertEqual(key_id, imported_key.id) @@ -99,19 +106,103 @@ def test_sign_and_verify(self, vault_client, **kwargs): self.assertTrue(verified.result) @ResourceGroupPreparer() - @VaultClientPreparer() + @VaultClientPreparer(permissions=NO_GET) def test_wrap_and_unwrap(self, vault_client, **kwargs): key_name = self.get_resource_name("keywrap") key_client = vault_client.keys created_key = key_client.create_key(key_name, "RSA") self.assertIsNotNone(created_key) - crypto_client = key_client.get_cryptography_client(created_key) + crypto_client = key_client.get_cryptography_client(created_key.id) # Wrap a key with the created key, then unwrap it. The wrapped key's bytes should round-trip. key_bytes = self.plaintext - key_id, wrap_algorithm, wrapped_bytes = crypto_client.wrap(KeyWrapAlgorithm.rsa_oaep, key_bytes) + key_id, wrap_algorithm, wrapped_bytes = crypto_client.wrap_key(KeyWrapAlgorithm.rsa_oaep, key_bytes) self.assertEqual(key_id, created_key.id) - result = crypto_client.unwrap(wrap_algorithm, wrapped_bytes) + result = crypto_client.unwrap_key(wrap_algorithm, wrapped_bytes) self.assertEqual(key_bytes, result.unwrapped_bytes) + + @ResourceGroupPreparer() + @VaultClientPreparer() + def test_encrypt_local(self, vault_client, **kwargs): + """Encrypt locally, decrypt with Key Vault""" + + key_client = vault_client.keys + key = key_client.create_rsa_key("encrypt-local", size=4096, hsm=False) + crypto_client = key_client.get_cryptography_client(key) + + for encrypt_algorithm in EncryptionAlgorithm: + key_id, algorithm, ciphertext, tag = crypto_client.encrypt(encrypt_algorithm, self.plaintext) + self.assertEqual(key_id, key.id) + + result = crypto_client.decrypt(algorithm, ciphertext) + self.assertEqual(result.decrypted_bytes, self.plaintext) + + @ResourceGroupPreparer() + @VaultClientPreparer() + def test_wrap_local(self, vault_client, **kwargs): + """Wrap locally, unwrap with Key Vault""" + + key_client = vault_client.keys + key = key_client.create_rsa_key("wrap-local", size=4096, hsm=False) + crypto_client = key_client.get_cryptography_client(key) + + for wrap_algorithm in KeyWrapAlgorithm: + key_id, algorithm, encrypted_key = crypto_client.wrap_key(wrap_algorithm, self.plaintext) + self.assertEqual(key_id, key.id) + + result = crypto_client.unwrap_key(algorithm, encrypted_key) + self.assertEqual(result.unwrapped_bytes, self.plaintext) + + @ResourceGroupPreparer() + @VaultClientPreparer() + def test_rsa_verify_local(self, vault_client, **kwargs): + """Sign with Key Vault, verify locally""" + + key_client = vault_client.keys + + for size in (2048, 3072, 4096): + key = key_client.create_rsa_key("rsa-verify-{}".format(size), size=size, hsm=False) + crypto_client = key_client.get_cryptography_client(key) + for signature_algorithm, hash_function in ( + (SignatureAlgorithm.ps256, hashlib.sha256), + (SignatureAlgorithm.ps384, hashlib.sha384), + (SignatureAlgorithm.ps512, hashlib.sha512), + (SignatureAlgorithm.rs256, hashlib.sha256), + (SignatureAlgorithm.rs384, hashlib.sha384), + (SignatureAlgorithm.rs512, hashlib.sha512), + ): + digest = hash_function(self.plaintext).digest() + + key_id, algorithm, signature = crypto_client.sign(signature_algorithm, digest) + self.assertEqual(key_id, key.id) + + result = crypto_client.verify(algorithm, digest, signature) + self.assertTrue(result.result) + + @ResourceGroupPreparer() + @VaultClientPreparer() + def test_ec_verify_local(self, vault_client, **kwargs): + """Sign with Key Vault, verify locally""" + + key_client = vault_client.keys + + matrix = { + JsonWebKeyCurveName.p_256: (SignatureAlgorithm.es256, hashlib.sha256), + JsonWebKeyCurveName.p_256_k: (SignatureAlgorithm.es256_k, hashlib.sha256), + JsonWebKeyCurveName.p_384: (SignatureAlgorithm.es384, hashlib.sha384), + JsonWebKeyCurveName.p_521: (SignatureAlgorithm.es512, hashlib.sha512), + } + + for curve, (signature_algorithm, hash_function) in matrix.items(): + key = key_client.create_ec_key("ec-verify-{}".format(curve.value), curve=curve, hsm=False) + crypto_client = key_client.get_cryptography_client(key) + + digest = hash_function(self.plaintext).digest() + + key_id, algorithm, signature = crypto_client.sign(signature_algorithm, digest) + self.assertEqual(key_id, key.id) + + result = crypto_client.verify(algorithm, digest, signature) + self.assertTrue(result.result) 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 b43aafd19d57..4114caa59170 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 @@ -5,12 +5,17 @@ import codecs import hashlib +from azure.keyvault.keys import JsonWebKeyCurveName from azure.keyvault.keys.crypto import CryptographyClient, EncryptionAlgorithm, KeyWrapAlgorithm, SignatureAlgorithm from azure.keyvault.keys._shared._generated.v7_0.models import JsonWebKey +from azure.mgmt.keyvault.models import KeyPermissions, Permissions from devtools_testutils import ResourceGroupPreparer from keys_async_preparer import AsyncVaultClientPreparer from keys_async_test_case import AsyncKeyVaultTestCase +# without keys/get, a CryptographyClient created with a key ID performs all ops remotely +NO_GET = Permissions(keys=[p.value for p in KeyPermissions if p.value != "get"]) + class CryptoClientTests(AsyncKeyVaultTestCase): plaintext = b"5063e6aaa845f150200547944fd199679c98ed6f99da0a0b2dafeaf1f4684496fd532c1c229968cb9dee44957fcef7ccef59ceda0b362e56bcd78fd3faee5781c623c0bb22b35beabde0664fd30e0e824aba3dd1b0afffc4a3d955ede20cf6a854d52cfd" @@ -62,7 +67,7 @@ def _to_bytes(hex): return imported_key @ResourceGroupPreparer() - @AsyncVaultClientPreparer() + @AsyncVaultClientPreparer(permissions=NO_GET) @AsyncKeyVaultTestCase.await_prepared_test async def test_encrypt_and_decrypt(self, vault_client, **kwargs): # TODO: use iv, authentication_data @@ -72,7 +77,9 @@ async def test_encrypt_and_decrypt(self, vault_client, **kwargs): imported_key = await self._import_test_key(key_client, key_name) crypto_client = key_client.get_cryptography_client(imported_key) - key_id, algorithm, ciphertext, authentication_tag = await crypto_client.encrypt(EncryptionAlgorithm.rsa_oaep, self.plaintext) + key_id, algorithm, ciphertext, authentication_tag = await crypto_client.encrypt( + EncryptionAlgorithm.rsa_oaep, self.plaintext + ) self.assertEqual(key_id, imported_key.id) assert authentication_tag is None @@ -80,7 +87,7 @@ async def test_encrypt_and_decrypt(self, vault_client, **kwargs): self.assertEqual(self.plaintext, result.decrypted_bytes) @ResourceGroupPreparer() - @AsyncVaultClientPreparer() + @AsyncVaultClientPreparer(permissions=NO_GET) @AsyncKeyVaultTestCase.await_prepared_test async def test_sign_and_verify(self, vault_client, **kwargs): key_client = vault_client.keys @@ -101,7 +108,7 @@ async def test_sign_and_verify(self, vault_client, **kwargs): self.assertTrue(verified.result) @ResourceGroupPreparer() - @AsyncVaultClientPreparer() + @AsyncVaultClientPreparer(permissions=NO_GET) @AsyncKeyVaultTestCase.await_prepared_test async def test_wrap_and_unwrap(self, vault_client, **kwargs): key_name = self.get_resource_name("keywrap") @@ -113,8 +120,96 @@ async def test_wrap_and_unwrap(self, vault_client, **kwargs): # Wrap a key with the created key, then unwrap it. The wrapped key's bytes should round-trip. key_bytes = self.plaintext - key_id, wrap_algorithm, wrapped_bytes = await crypto_client.wrap(KeyWrapAlgorithm.rsa_oaep, key_bytes) + key_id, wrap_algorithm, wrapped_bytes = await crypto_client.wrap_key(KeyWrapAlgorithm.rsa_oaep, key_bytes) self.assertEqual(key_id, created_key.id) - result = await crypto_client.unwrap(wrap_algorithm, wrapped_bytes) + result = await crypto_client.unwrap_key(wrap_algorithm, wrapped_bytes) self.assertEqual(key_bytes, result.unwrapped_bytes) + + @ResourceGroupPreparer() + @AsyncVaultClientPreparer() + @AsyncKeyVaultTestCase.await_prepared_test + async def test_encrypt_local(self, vault_client, **kwargs): + """Encrypt locally, decrypt with Key Vault""" + + key_client = vault_client.keys + key = await key_client.create_rsa_key("encrypt-local", size=4096, hsm=False) + crypto_client = key_client.get_cryptography_client(key) + + for encrypt_algorithm in EncryptionAlgorithm: + key_id, algorithm, ciphertext, tag = await crypto_client.encrypt(encrypt_algorithm, self.plaintext) + self.assertEqual(key_id, key.id) + + result = await crypto_client.decrypt(algorithm, ciphertext) + self.assertEqual(result.decrypted_bytes, self.plaintext) + + @ResourceGroupPreparer() + @AsyncVaultClientPreparer() + @AsyncKeyVaultTestCase.await_prepared_test + async def test_wrap_local(self, vault_client, **kwargs): + """Wrap locally, unwrap with Key Vault""" + + key_client = vault_client.keys + key = await key_client.create_rsa_key("wrap-local", size=4096, hsm=False) + crypto_client = key_client.get_cryptography_client(key) + + for wrap_algorithm in KeyWrapAlgorithm: + key_id, algorithm, encrypted_key = await crypto_client.wrap_key(wrap_algorithm, self.plaintext) + self.assertEqual(key_id, key.id) + + result = await crypto_client.unwrap_key(algorithm, encrypted_key) + self.assertEqual(result.unwrapped_bytes, self.plaintext) + + @ResourceGroupPreparer() + @AsyncVaultClientPreparer() + @AsyncKeyVaultTestCase.await_prepared_test + async def test_rsa_verify_local(self, vault_client, **kwargs): + """Sign with Key Vault, verify locally""" + + key_client = vault_client.keys + + for size in (2048, 3072, 4096): + key = await key_client.create_rsa_key("rsa-verify-{}".format(size), size=size, hsm=False) + crypto_client = key_client.get_cryptography_client(key) + for signature_algorithm, hash_function in ( + (SignatureAlgorithm.ps256, hashlib.sha256), + (SignatureAlgorithm.ps384, hashlib.sha384), + (SignatureAlgorithm.ps512, hashlib.sha512), + (SignatureAlgorithm.rs256, hashlib.sha256), + (SignatureAlgorithm.rs384, hashlib.sha384), + (SignatureAlgorithm.rs512, hashlib.sha512), + ): + digest = hash_function(self.plaintext).digest() + + key_id, algorithm, signature = await crypto_client.sign(signature_algorithm, digest) + self.assertEqual(key_id, key.id) + + result = await crypto_client.verify(algorithm, digest, signature) + self.assertTrue(result.result) + + @ResourceGroupPreparer() + @AsyncVaultClientPreparer() + @AsyncKeyVaultTestCase.await_prepared_test + async def test_ec_verify_local(self, vault_client, **kwargs): + """Sign with Key Vault, verify locally""" + + key_client = vault_client.keys + + matrix = { + JsonWebKeyCurveName.p_256: (SignatureAlgorithm.es256, hashlib.sha256), + JsonWebKeyCurveName.p_256_k: (SignatureAlgorithm.es256_k, hashlib.sha256), + JsonWebKeyCurveName.p_384: (SignatureAlgorithm.es384, hashlib.sha384), + JsonWebKeyCurveName.p_521: (SignatureAlgorithm.es512, hashlib.sha512), + } + + for curve, (signature_algorithm, hash_function) in matrix.items(): + key = await key_client.create_ec_key("ec-verify-{}".format(curve.value), curve=curve, hsm=False) + crypto_client = key_client.get_cryptography_client(key) + + digest = hash_function(self.plaintext).digest() + + key_id, algorithm, signature = await crypto_client.sign(signature_algorithm, digest) + self.assertEqual(key_id, key.id) + + result = await crypto_client.verify(algorithm, digest, signature) + self.assertTrue(result.result) 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 b46790081130..6ed4a5b9e9da 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_examples_crypto.py @@ -53,14 +53,14 @@ def test_wrap_unwrap(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import KeyWrapAlgorithm # wrap returns a tuple with the wrapped bytes and the metadata required to unwrap the key - key_id, wrap_algorithm, wrapped_bytes = client.wrap(KeyWrapAlgorithm.rsa_oaep, key_bytes) + key_id, wrap_algorithm, wrapped_bytes = client.wrap_key(KeyWrapAlgorithm.rsa_oaep, key_bytes) # [END wrap] # [START unwrap] from azure.keyvault.keys.crypto import KeyWrapAlgorithm - result = client.unwrap(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) + result = client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) unwrapped_bytes = result.unwrapped_bytes # [END unwrap] 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 06439acaea9e..72c31a0d3f70 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 @@ -24,7 +24,9 @@ async def test_encrypt_decrypt_async(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import EncryptionAlgorithm # encrypt returns a tuple with the ciphertext and the metadata required to decrypt it - key_id, algorithm, ciphertext, authentication_tag = await client.encrypt(EncryptionAlgorithm.rsa_oaep, b"plaintext") + key_id, algorithm, ciphertext, authentication_tag = await client.encrypt( + EncryptionAlgorithm.rsa_oaep, b"plaintext" + ) # [END encrypt] @@ -55,14 +57,14 @@ async def test_wrap_unwrap_async(self, vault_client, **kwargs): from azure.keyvault.keys.crypto import KeyWrapAlgorithm # wrap returns a tuple with the wrapped bytes and the metadata required to unwrap the key - key_id, wrap_algorithm, wrapped_bytes = await client.wrap(KeyWrapAlgorithm.rsa_oaep, key_bytes) + key_id, wrap_algorithm, wrapped_bytes = await client.wrap_key(KeyWrapAlgorithm.rsa_oaep, key_bytes) # [END wrap] # [START unwrap] from azure.keyvault.keys.crypto import KeyWrapAlgorithm - result = await client.unwrap(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) + result = await client.unwrap_key(KeyWrapAlgorithm.rsa_oaep, wrapped_bytes) # [END unwrap] diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py index 0d3d4894c487..7b1ba713ce4c 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py @@ -339,33 +339,3 @@ async def test_purge(self, vault_client, **kwargs): # purge them for key_name in keys.keys(): await client.purge_deleted_key(key_name) - - @ResourceGroupPreparer() - @AsyncVaultClientPreparer() - @AsyncKeyVaultTestCase.await_prepared_test - async def test_key_wrap_and_unwrap(self, vault_client, **kwargs): - self.assertIsNotNone(vault_client) - client = vault_client.keys - key_name = self.get_resource_name("keywrap") - - # create key - created_bundle = await client.create_key(key_name, "RSA") - self.assertIsNotNone(created_bundle) - plain_text = b"5063e6aaa845f150200547944fd199679c98ed6f99da0a0b2dafeaf1f4684496fd532c1c229968cb9dee44957fcef7ccef59ceda0b362e56bcd78fd3faee5781c623c0bb22b35beabde0664fd30e0e824aba3dd1b0afffc4a3d955ede20cf6a854d52cfd" - - # wrap without version - result = await client.wrap_key(created_bundle.name, "RSA-OAEP", plain_text) - cipher_text = result.value - - # unwrap without version - result = await client.unwrap_key(created_bundle.name, "RSA-OAEP", cipher_text) - self.assertEqual(plain_text, result.value) - - # wrap with version - result = await client.wrap_key(created_bundle.name, "RSA-OAEP", plain_text, version=created_bundle.version) - cipher_text = result.value - self.assertIsNotNone(cipher_text) - - # unwrap with version - result = await client.unwrap_key(created_bundle.name, "RSA-OAEP", cipher_text, version=created_bundle.version) - self.assertEqual(plain_text, result.value)