diff --git a/sdk/keyvault/azure-keyvault-certificates/dev_requirements.txt b/sdk/keyvault/azure-keyvault-certificates/dev_requirements.txt index b9e0c3fa837d..9ec43be16e15 100644 --- a/sdk/keyvault/azure-keyvault-certificates/dev_requirements.txt +++ b/sdk/keyvault/azure-keyvault-certificates/dev_requirements.txt @@ -5,4 +5,5 @@ aiohttp>=3.0 parameterized>=0.7.3 python-dateutil>=2.8.0 -pyopenssl \ No newline at end of file +pyopenssl +cryptography>=44.0.2,<47.0.0 \ No newline at end of file diff --git a/sdk/keyvault/azure-keyvault-certificates/pyproject.toml b/sdk/keyvault/azure-keyvault-certificates/pyproject.toml index 1e1c725ee585..e4ad0b71451b 100644 --- a/sdk/keyvault/azure-keyvault-certificates/pyproject.toml +++ b/sdk/keyvault/azure-keyvault-certificates/pyproject.toml @@ -93,6 +93,7 @@ dev = [ "azure-identity", "azure-keyvault-nspkg", "azure-sdk-tools", + "cryptography>=44.0.2,<47.0.0", "parameterized>=0.7.3", "pyopenssl", "python-dateutil>=2.8.0", diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_models.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_models.py index b0c6b4138afd..99d6409a2666 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_models.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_models.py @@ -252,11 +252,11 @@ def recovery_level(self) -> Optional[str]: return self._attributes.recovery_level if self._attributes else None @property - def tags(self) -> Dict[str, str]: + def tags(self) -> Optional[Dict[str, str]]: """Application specific metadata in the form of key-value pairs. :returns: A dictionary of tags attached to the key. - :rtype: dict[str, str] + :rtype: dict[str, str] or None """ return self._tags diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py index c16d5811f7e9..cbd65e4da0e7 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_models.py @@ -317,7 +317,16 @@ def __copy__(self) -> KeyVaultRSAPublicKey: """ return self - def verifier( # pylint:disable=docstring-missing-param,docstring-missing-return,docstring-missing-rtype + def __deepcopy__(self, memo: dict) -> KeyVaultRSAPublicKey: + """Returns this instance since it is treated as immutable. + + :param dict memo: The memo dictionary used by deepcopy. + :returns: This instance. + :rtype: ~azure.keyvault.keys.crypto.KeyVaultRSAPublicKey + """ + return self + + def verifier(# pylint:disable=docstring-missing-param,docstring-missing-return,docstring-missing-rtype self, signature: bytes, padding: AsymmetricPadding, algorithm: HashAlgorithm ) -> NoReturn: """Not implemented. This method was deprecated in `cryptography` 2.0 and removed in 37.0.0.""" @@ -499,6 +508,15 @@ def __copy__(self) -> KeyVaultRSAPrivateKey: """ return self + def __deepcopy__(self, memo: dict) -> KeyVaultRSAPrivateKey: + """Returns this instance since it is treated as immutable. + + :param dict memo: The memo dictionary used by deepcopy. + :returns: This instance. + :rtype: ~azure.keyvault.keys.crypto.KeyVaultRSAPrivateKey + """ + return self + class DecryptResult: """The result of a decrypt operation. diff --git a/sdk/keyvault/azure-keyvault-keys/dev_requirements.txt b/sdk/keyvault/azure-keyvault-keys/dev_requirements.txt index 839e9f8c0109..2dd2a406a66c 100644 --- a/sdk/keyvault/azure-keyvault-keys/dev_requirements.txt +++ b/sdk/keyvault/azure-keyvault-keys/dev_requirements.txt @@ -4,5 +4,6 @@ aiohttp>=3.0 azure-identity azure-mgmt-keyvault==10.1.0 +cryptography<47.0.0 parameterized>=0.7.3 python-dateutil>=2.8.0 \ No newline at end of file diff --git a/sdk/keyvault/azure-keyvault-keys/tests/conftest.py b/sdk/keyvault/azure-keyvault-keys/tests/conftest.py index bfcd18356825..32b2c439318a 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/conftest.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/conftest.py @@ -82,6 +82,6 @@ def immediate_return(_): @pytest.fixture(scope="session") def event_loop(request): - loop = asyncio.get_event_loop() + loop = asyncio.new_event_loop() yield loop loop.close()