|
17 | 17 | from azure.core.rest import HttpRequest |
18 | 18 | from azure.keyvault.keys import ( |
19 | 19 | ApiVersion, |
| 20 | + ExternalKey, |
20 | 21 | JsonWebKey, |
21 | 22 | KeyProperties, |
22 | 23 | KeyReleasePolicy, |
@@ -824,6 +825,34 @@ async def test_send_request(self, client, is_hsm, **kwargs): |
824 | 825 | response = await client.send_request(request) |
825 | 826 | assert response.json()["key"]["kid"] == key.id |
826 | 827 |
|
| 828 | + @pytest.mark.asyncio |
| 829 | + @pytest.mark.parametrize("api_version,is_hsm", only_hsm_default) |
| 830 | + @AsyncKeysClientPreparer() |
| 831 | + @recorded_by_proxy_async |
| 832 | + async def test_create_external_key(self, client, **kwargs): |
| 833 | + """Register an external HSM key and verify the external_key reference round-trips.""" |
| 834 | + external_id = kwargs.pop("ekm_external_id") |
| 835 | + if not external_id: |
| 836 | + pytest.skip( |
| 837 | + "No external key ID provided. This test requires an EKM-connected HSM and an existing external key." |
| 838 | + ) |
| 839 | + |
| 840 | + key_name = self.get_resource_name("ext-key") |
| 841 | + external_key = ExternalKey(id=external_id) |
| 842 | + |
| 843 | + created = await client.create_external_key(key_name, external_key=external_key) |
| 844 | + assert created is not None |
| 845 | + assert created.name == key_name |
| 846 | + assert created.properties.external_key is not None |
| 847 | + assert created.properties.external_key.id == external_id |
| 848 | + assert created.key_type is not None |
| 849 | + |
| 850 | + # Verify the external_key reference is also returned by a subsequent get_key. |
| 851 | + fetched = await client.get_key(key_name) |
| 852 | + assert fetched.properties.external_key is not None |
| 853 | + assert fetched.properties.external_key.id == external_id |
| 854 | + assert fetched.key_type is not None |
| 855 | + |
827 | 856 | @pytest.mark.asyncio |
828 | 857 | @pytest.mark.parametrize("api_version,is_hsm", only_hsm_default) |
829 | 858 | @AsyncKeysClientPreparer() |
|
0 commit comments