diff --git a/src/azure-cli/HISTORY.rst b/src/azure-cli/HISTORY.rst index fd0db0f8726..094ee765070 100644 --- a/src/azure-cli/HISTORY.rst +++ b/src/azure-cli/HISTORY.rst @@ -25,6 +25,10 @@ Release History * Support app creation/update with the new sku name ST0, ST1, ST2. +**Key Vault** + +* Add a new command `az keyvault key download` for downloading keys. + **Misc** * Fix #6371: Support filename and environment variable completion in Bash diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/_params.py b/src/azure-cli/azure/cli/command_modules/keyvault/_params.py index 8409ff54f98..3ec984e3bb3 100644 --- a/src/azure-cli/azure/cli/command_modules/keyvault/_params.py +++ b/src/azure-cli/azure/cli/command_modules/keyvault/_params.py @@ -30,7 +30,7 @@ # CUSTOM CHOICE LISTS secret_encoding_values = secret_text_encoding_values + secret_binary_encoding_values -certificate_format_values = ['PEM', 'DER'] +key_format_values = certificate_format_values = ['PEM', 'DER'] # pylint: disable=too-many-locals, too-many-branches, too-many-statements, line-too-long @@ -160,6 +160,10 @@ def load_arguments(self, _): with self.argument_context('keyvault key backup') as c: c.argument('file_path', options_list=['--file', '-f'], type=file_type, completer=FilesCompleter(), help='Local file path in which to store key backup.') + with self.argument_context('keyvault key download') as c: + c.argument('file_path', options_list=['--file', '-f'], type=file_type, completer=FilesCompleter(), help='File to receive the key contents.') + c.argument('encoding', arg_type=get_enum_type(key_format_values), options_list=['--encoding', '-e'], help='Encoding of the key, default: PEM', default='PEM') + with self.argument_context('keyvault key restore') as c: c.argument('file_path', options_list=['--file', '-f'], type=file_type, completer=FilesCompleter(), help='Local key backup from which to restore key.') diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/commands.py b/src/azure-cli/azure/cli/command_modules/keyvault/commands.py index 685abb3e8f1..cdd13abd93e 100644 --- a/src/azure-cli/azure/cli/command_modules/keyvault/commands.py +++ b/src/azure-cli/azure/cli/command_modules/keyvault/commands.py @@ -79,6 +79,7 @@ def load_command_table(self, _): g.keyvault_custom('backup', 'backup_key', doc_string_source=data_doc_string.format('backup_key')) g.keyvault_custom('restore', 'restore_key', doc_string_source=data_doc_string.format('restore_key')) g.keyvault_custom('import', 'import_key') + g.keyvault_custom('download', 'download_key') with self.command_group('keyvault secret', kv_data_sdk) as g: g.keyvault_command('list', 'get_secrets') diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/custom.py b/src/azure-cli/azure/cli/command_modules/keyvault/custom.py index 2ee0d41c956..b8d3f755399 100644 --- a/src/azure-cli/azure/cli/command_modules/keyvault/custom.py +++ b/src/azure-cli/azure/cli/command_modules/keyvault/custom.py @@ -4,11 +4,13 @@ # -------------------------------------------------------------------------------------------- # pylint: disable=too-many-lines - import codecs import json +import math import os import time +import struct + from knack.log import get_logger from knack.util import CLIError @@ -16,7 +18,7 @@ from OpenSSL import crypto from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.asymmetric import rsa, ec -from cryptography.hazmat.primitives.serialization import load_pem_private_key +from cryptography.hazmat.primitives.serialization import load_pem_private_key, Encoding, PublicFormat from cryptography.exceptions import UnsupportedAlgorithm @@ -620,6 +622,47 @@ def restore_key(client, vault_base_url, file_path): return client.restore_key(vault_base_url, data) +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 _private_rsa_key_to_jwk(rsa_key, jwk): + priv = rsa_key.private_numbers() + jwk.n = _int_to_bytes(priv.public_numbers.n) + jwk.e = _int_to_bytes(priv.public_numbers.e) + jwk.q = _int_to_bytes(priv.q) + jwk.p = _int_to_bytes(priv.p) + jwk.d = _int_to_bytes(priv.d) + jwk.dq = _int_to_bytes(priv.dmq1) + jwk.dp = _int_to_bytes(priv.dmp1) + jwk.qi = _int_to_bytes(priv.iqmp) + + +def _private_ec_key_to_jwk(ec_key, jwk): + supported_curves = { + 'secp256r1': 'P-256', + 'secp384r1': 'P-384', + 'secp521r1': 'P-521', + 'secp256k1': 'SECP256K1' + } + curve = ec_key.private_numbers().public_numbers.curve.name + + jwk.crv = supported_curves.get(curve, None) + if not jwk.crv: + raise CLIError("Import failed: Unsupported curve, {}.".format(curve)) + + jwk.x = _int_to_bytes(ec_key.private_numbers().public_numbers.x) + jwk.y = _int_to_bytes(ec_key.private_numbers().public_numbers.y) + jwk.d = _int_to_bytes(ec_key.private_numbers().private_value) + + def import_key(cmd, client, vault_base_url, key_name, protection=None, key_ops=None, disabled=False, expires=None, not_before=None, tags=None, pem_file=None, pem_password=None, byok_file=None): """ Import a private key. Supports importing base64 encoded private keys from PEM files. @@ -627,44 +670,6 @@ def import_key(cmd, client, vault_base_url, key_name, protection=None, key_ops=N KeyAttributes = cmd.get_models('KeyAttributes', resource_type=ResourceType.DATA_KEYVAULT) JsonWebKey = cmd.get_models('JsonWebKey', resource_type=ResourceType.DATA_KEYVAULT) - 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 _private_rsa_key_to_jwk(rsa_key, jwk): - priv = rsa_key.private_numbers() - jwk.n = _int_to_bytes(priv.public_numbers.n) - jwk.e = _int_to_bytes(priv.public_numbers.e) - jwk.q = _int_to_bytes(priv.q) - jwk.p = _int_to_bytes(priv.p) - jwk.d = _int_to_bytes(priv.d) - jwk.dq = _int_to_bytes(priv.dmq1) - jwk.dp = _int_to_bytes(priv.dmp1) - jwk.qi = _int_to_bytes(priv.iqmp) - - def _private_ec_key_to_jwk(ec_key, jwk): - supported_curves = { - 'secp256r1': 'P-256', - 'secp384r1': 'P-384', - 'secp521r1': 'P-521', - 'secp256k1': 'SECP256K1' - } - curve = ec_key.private_numbers().public_numbers.curve.name - - jwk.crv = supported_curves.get(curve, None) - if not jwk.crv: - raise CLIError("Import failed: Unsupported curve, {}.".format(curve)) - - jwk.x = _int_to_bytes(ec_key.private_numbers().public_numbers.x) - jwk.y = _int_to_bytes(ec_key.private_numbers().public_numbers.y) - jwk.d = _int_to_bytes(ec_key.private_numbers().private_value) - key_attrs = KeyAttributes(enabled=not disabled, not_before=not_before, expires=expires) key_obj = JsonWebKey(key_ops=key_ops) if pem_file: @@ -694,6 +699,131 @@ def _private_ec_key_to_jwk(ec_key, jwk): key_obj.t = byok_data return client.import_key(vault_base_url, key_name, key_obj, protection == 'hsm', key_attrs, tags) + + +def _bytes_to_int(b): + """Convert bytes to hex integer""" + len_diff = 4 - len(b) % 4 if len(b) % 4 > 0 else 0 + b = len_diff * b'\x00' + b # We have to patch leading zeros for using struct.unpack + bytes_num = int(math.floor(len(b) / 4)) + ans = 0 + items = struct.unpack('>' + 'I' * bytes_num, b) + for sub_int in items: # Accumulate all items into a big integer + ans *= 2 ** 32 + ans += sub_int + return ans + + +def _jwk_to_dict(jwk): + """Convert a `JsonWebKey` struct to a python dict""" + d = {} + if jwk.crv: + d['crv'] = jwk.crv + if jwk.kid: + d['kid'] = jwk.kid + if jwk.kty: + d['kty'] = jwk.kty + if jwk.d: + d['d'] = _bytes_to_int(jwk.d) + if jwk.dp: + d['dp'] = _bytes_to_int(jwk.dp) + if jwk.dq: + d['dq'] = _bytes_to_int(jwk.dq) + if jwk.e: + d['e'] = _bytes_to_int(jwk.e) + if jwk.k: + d['k'] = _bytes_to_int(jwk.k) + if jwk.n: + d['n'] = _bytes_to_int(jwk.n) + if jwk.p: + d['p'] = _bytes_to_int(jwk.p) + if jwk.q: + d['q'] = _bytes_to_int(jwk.q) + if jwk.qi: + d['qi'] = _bytes_to_int(jwk.qi) + if jwk.t: + d['t'] = _bytes_to_int(jwk.t) + if jwk.x: + d['x'] = _bytes_to_int(jwk.x) + if jwk.y: + d['y'] = _bytes_to_int(jwk.y) + + return d + + +def _extract_rsa_public_key_from_jwk(jwk_dict): + # https://github.com/mpdavis/python-jose/blob/eed086d7650ccbd4ea8b555157aff3b1b99f14b9/jose/backends/cryptography_backend.py#L249-L254 + e = jwk_dict.get('e', 256) + n = jwk_dict.get('n') + public = rsa.RSAPublicNumbers(e, n) + return public.public_key(default_backend()) + + +def _extract_ec_public_key_from_jwk(jwk_dict): + # https://github.com/mpdavis/python-jose/blob/eed086d7650ccbd4ea8b555157aff3b1b99f14b9/jose/backends/cryptography_backend.py#L81-L100 + if not all(k in jwk_dict for k in ['x', 'y', 'crv']): + raise CLIError('Invalid EC key: missing properties(x, y, crv)') + + x = jwk_dict.get('x') + y = jwk_dict.get('y') + curves = { + 'P-256': ec.SECP256R1, + 'P-384': ec.SECP384R1, + 'P-521': ec.SECP521R1, + 'P-256K': ec.SECP256K1, + 'SECP256K1': ec.SECP256K1 + } + curve = curves[jwk_dict['crv']] + public = ec.EllipticCurvePublicNumbers(x, y, curve()) + return public.public_key(default_backend()) + + +def download_key(client, file_path, vault_base_url=None, key_name=None, key_version='', + encoding=None, identifier=None): # pylint: disable=unused-argument + """ Download a key from a KeyVault. """ + if os.path.isfile(file_path) or os.path.isdir(file_path): + raise CLIError("File or directory named '{}' already exists.".format(file_path)) + + key = client.get_key(vault_base_url, key_name, key_version) + json_web_key = _jwk_to_dict(key.key) + key_type = json_web_key['kty'] + pub_key = '' + + if key_type in ['RSA', 'RSA-HSM']: + pub_key = _extract_rsa_public_key_from_jwk(json_web_key) + elif key_type in ['EC', 'EC-HSM']: + pub_key = _extract_ec_public_key_from_jwk(json_web_key) + else: + raise CLIError('Unsupported key type: {}. (Supported key types: RSA, RSA-HSM, EC, EC-HSM)'.format(key_type)) + + def _to_der(k): + return k.public_bytes( + encoding=Encoding.DER, + format=PublicFormat.SubjectPublicKeyInfo + ) + + def _to_pem(k): + # https://github.com/mpdavis/python-jose/blob/eed086d7650ccbd4ea8b555157aff3b1b99f14b9/jose/backends/cryptography_backend.py#L329-L332 + return k.public_bytes( + encoding=Encoding.PEM, + format=PublicFormat.SubjectPublicKeyInfo + ) + + methods = { + 'DER': _to_der, + 'PEM': _to_pem + } + + if encoding not in methods.keys(): + raise CLIError('Unsupported encoding: {}. (Supported encodings: DER, PEM)'.format(encoding)) + + try: + with open(file_path, 'wb') as f: + f.write(methods[encoding](pub_key)) + except Exception as ex: # pylint: disable=broad-except + if os.path.isfile(file_path): + os.remove(file_path) + raise ex # endregion diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256.pem new file mode 100644 index 00000000000..026f5f5f5ec --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256.pem @@ -0,0 +1,8 @@ +-----BEGIN EC PARAMETERS----- +BggqhkjOPQMBBw== +-----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIIe338KHD5vHeNeB1Fhs68Kpx2jHjpqh/QZptSME/iL0oAoGCCqGSM49 +AwEHoUQDQgAEclUrtHdYtNdfl7cueN47hqM6SuyPn18rpsLutGJ/qHeHqvZdnL1b ++aJBNReZlaS24LlJVjsmxn/Zcg1BID0RWg== +-----END EC PRIVATE KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256.pub.der b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256.pub.der new file mode 100644 index 00000000000..352c2839088 Binary files /dev/null and b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256.pub.der differ diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256.pub.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256.pub.pem new file mode 100644 index 00000000000..45e5c66916d --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256.pub.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEclUrtHdYtNdfl7cueN47hqM6SuyP +n18rpsLutGJ/qHeHqvZdnL1b+aJBNReZlaS24LlJVjsmxn/Zcg1BID0RWg== +-----END PUBLIC KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256k.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256k.pem new file mode 100644 index 00000000000..dee85d099e9 --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256k.pem @@ -0,0 +1,8 @@ +-----BEGIN EC PARAMETERS----- +BgUrgQQACg== +-----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MHQCAQEEIMy+ZSqbwORvuWLCmEH12TJUM6zD7QGxgYczeU/2AZCyoAcGBSuBBAAK +oUQDQgAEH7Thoa/qhy7HoBSFPKOL9edHRqr305sCa7ozYkRLIe0WR98MA4LwXpZD +F3do0CMNqIYLzTJsG37DLngQZ4rJPw== +-----END EC PRIVATE KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256k.pub.der b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256k.pub.der new file mode 100644 index 00000000000..ee4b82a9c0b Binary files /dev/null and b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256k.pub.der differ diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256k.pub.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256k.pub.pem new file mode 100644 index 00000000000..1b59255a681 --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p256k.pub.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEH7Thoa/qhy7HoBSFPKOL9edHRqr305sC +a7ozYkRLIe0WR98MA4LwXpZDF3do0CMNqIYLzTJsG37DLngQZ4rJPw== +-----END PUBLIC KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p384.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p384.pem new file mode 100644 index 00000000000..578eeb8fb45 --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p384.pem @@ -0,0 +1,9 @@ +-----BEGIN EC PARAMETERS----- +BgUrgQQAIg== +-----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MIGkAgEBBDBG234N7Zwr021c4vi6M9mMz+Q3DVsAyahEqsNNY/XT3k5X3z4tfnth +/rgciYIxv1agBwYFK4EEACKhZANiAAReoBk8F60AVNazrJ9zUK1BU887MT41d5OA +oxPC5OocJGPvkSaK4NDZOOYj0IEvIw5F5y1QybXqhyfvj/0ydAxDulvvfDfmdcJ/ +5o6rVip7XyFq9Kz6gnBNbQVVMbR7E/M= +-----END EC PRIVATE KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p384.pub.der b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p384.pub.der new file mode 100644 index 00000000000..f7be4902df7 Binary files /dev/null and b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p384.pub.der differ diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p384.pub.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p384.pub.pem new file mode 100644 index 00000000000..10c6fdf66ac --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p384.pub.pem @@ -0,0 +1,5 @@ +-----BEGIN PUBLIC KEY----- +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEXqAZPBetAFTWs6yfc1CtQVPPOzE+NXeT +gKMTwuTqHCRj75EmiuDQ2TjmI9CBLyMORectUMm16ocn74/9MnQMQ7pb73w35nXC +f+aOq1Yqe18havSs+oJwTW0FVTG0exPz +-----END PUBLIC KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p521.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p521.pem new file mode 100644 index 00000000000..53719d04d1a --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p521.pem @@ -0,0 +1,10 @@ +-----BEGIN EC PARAMETERS----- +BgUrgQQAIw== +-----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MIHcAgEBBEIBnqXLzys3RKGPLPC7jIbo6rIAXiXVjx4bnZu/CpuiFpnZiqUB5+pf +Kd/X1Av6ikeVYCmM1bXAxIfP4BGCUWGy2wugBwYFK4EEACOhgYkDgYYABAB8/6kF +Fy9ujL9GRaW1c2Fz9wXb1h6bg1zCWCgNWljOIEXcis8m+9Q4wfYFu51zKUI3QXqs +DkPJts9ru/xm2NOZJQDJaU+9LNPHryvkd44xniyWbWDbvPD/js6zKDCVMlvmo7CS +aOYj3QWEzoWDMVxV39KrxYVYeSrRQW2czlYrtGQQGg== +-----END EC PRIVATE KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p521.pub.der b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p521.pub.der new file mode 100644 index 00000000000..69bac9d7a93 Binary files /dev/null and b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p521.pub.der differ diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p521.pub.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p521.pub.pem new file mode 100644 index 00000000000..03ed863b51d --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/ec-p521.pub.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAfP+pBRcvboy/RkWltXNhc/cF29Ye +m4NcwlgoDVpYziBF3IrPJvvUOMH2BbudcylCN0F6rA5DybbPa7v8ZtjTmSUAyWlP +vSzTx68r5HeOMZ4slm1g27zw/47OsygwlTJb5qOwkmjmI90FhM6FgzFcVd/Sq8WF +WHkq0UFtnM5WK7RkEBo= +-----END PUBLIC KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-2048.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-2048.pem new file mode 100644 index 00000000000..20f38a20daf --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-2048.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAzJEYKuhIeHvKqZZtJRDtQjg17ChAZtY/yJfNqv30xnzkzOZw +Vmy7NViVQIRnkCYvAMCstja+EpEpeW02LD83teNQRKM9Nie74g7ehDn6ZZCSdQQ5 +4TQemt26hMfnFVaUl376p0E398IP1leHcvYOaiVgT/ffUhNhgIUJ5sIphtf4D1p5 +bWFYvs/Gd+A+Fk38hnerpl7JRF4y6p5WGJzvXKKs0QVSaQ1NHD7L1tQ0xTKra3FS +/BGwD7ZdgBZerqzBPgxRjuxzq2DQJlHtvINsFjJhsMtwI11UV5+tIBOEWPSBTIoQ +pUWGB+/4jZ44IpKlBDQuc1kqa2Y8+eO53Gxn+QIDAQABAoIBAQDK3zIai1YjtpDb +8oS3d7v0Kg6/74M++Uc0Ref/pe90UTQPSJEsBJT8aKdL3oNeX5/JnUsrQcrqWu/I +rlhFNUSoq5BVIZZ4+JrJq3ldpKoAw4mbZt+Hycp4R2DMgftYHA8s1w75hCJfISPX +q+J2TjMpbXvAks/0c6gEbuvM382THSDa+bA+BvYwilBBT347WkLdtuN9J+9qFyV9 +ROJRRMYh3xGOcgs/mmlOgTSubU3Q2sIQHBTLtngOA4g456g4IH5G09GoEpAIQA8e +G7xzmkv+ECtqe9V0A/9njWIXNbO+V+01dUDiAKnnT5uzbPGT48hnA05WLUAQO2qP +5ZE4H6shAoGBAPQUXR2ByYX0e/VBF3lUo94yikRae6giM0k8MQwE1Y49FfuZwqp8 +7E4hmuxlOJnvAQjzIQoHawL0fO7qLkvYcDJPxT5ROCeHKOCyJ6tGmVojppqiuq1G +RpOZ2XfIEt00rQguufYIr0V7OeP2X27Sveq0sJ/CYgX4rGABvq5OOW91AoGBANaO +t5T4qkuuxvxARx65S+imTg66U4aGz25rCj7LvcVhKmm2XCYz1ynAR81Tnh/t0RMd +8M3mUxRZU1MrbMCeYZbt5ClWmMfHKtZa29PYYcvVvqNBnqlbPGD7fBK+JyGnnd57 +CQLA0WnmSDT0vBOSN+wH/Gk2IX3ekLMGBk1Zzyn1AoGAUhsfj7N/NR6fLEtvOBNu +5Gof9QpzGoYWtoYXAbIGnMiTwoVg5LUNUOMhGHCcb7vknzwaWyNPrjjMZhpE5KK0 +a1hGQ8ZSm4luCNglXAptv9LKUq53GZ7QUwqoCxE0t1Dm/B+r0sXtH/Rp7vOL+t3N +oUyTNcrP6q5SXiF4IW6TB5kCgYAwNDhCm+uGvWmvWrGf0Xmgd1yqKmqBmuAXqqzO +lu+33LCut23Ul2kL1EtNci/gdIm4hc2INOsNc1QpJ2RzkiHSyver4ezJVZHmPtuM +qNyv8wG1pBSFcB4Mm/OwMlCQWxw40+OeXrut0zL90s4+h2dQ/CpVaPf1U3+m+P+J +eVf10QKBgDJZ0xVeun+aPMXqcwNppqvfKfMWsLb/Xx77O3q9SYG1JRXgIIneL8nD +8RwVQn8PbPcqdayFHZrmwhdgzIH/7dVEwd+QQKzeYos8Fvc4egpTZUrmZ1y5XeFt +OHl9TmHLSA1h8cJj0HrWCjyyi2cW+2PhY9K88V57KEn0yv5hjoBg +-----END RSA PRIVATE KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-2048.pub.der b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-2048.pub.der new file mode 100644 index 00000000000..8ceefb05995 Binary files /dev/null and b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-2048.pub.der differ diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-2048.pub.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-2048.pub.pem new file mode 100644 index 00000000000..78a2f7ba27f --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-2048.pub.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzJEYKuhIeHvKqZZtJRDt +Qjg17ChAZtY/yJfNqv30xnzkzOZwVmy7NViVQIRnkCYvAMCstja+EpEpeW02LD83 +teNQRKM9Nie74g7ehDn6ZZCSdQQ54TQemt26hMfnFVaUl376p0E398IP1leHcvYO +aiVgT/ffUhNhgIUJ5sIphtf4D1p5bWFYvs/Gd+A+Fk38hnerpl7JRF4y6p5WGJzv +XKKs0QVSaQ1NHD7L1tQ0xTKra3FS/BGwD7ZdgBZerqzBPgxRjuxzq2DQJlHtvINs +FjJhsMtwI11UV5+tIBOEWPSBTIoQpUWGB+/4jZ44IpKlBDQuc1kqa2Y8+eO53Gxn ++QIDAQAB +-----END PUBLIC KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-3072.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-3072.pem new file mode 100644 index 00000000000..423a62e5fce --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-3072.pem @@ -0,0 +1,39 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-3072.pub.der b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-3072.pub.der new file mode 100644 index 00000000000..d4ae497d7eb Binary files /dev/null and b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-3072.pub.der differ diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-3072.pub.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-3072.pub.pem new file mode 100644 index 00000000000..99e53bfffaa --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-3072.pub.pem @@ -0,0 +1,11 @@ +-----BEGIN PUBLIC KEY----- +MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAt6f3peMvTmrOtW1Zzzl1 +z05xGYVck3KeWnBb/TvPSZp8XczOa0QNCLJ+FFmvP7wyGrz7tsN3QNveITRqsk9/ +1PA3MQfxHCmBziSj2NDXPynuquwfu+ew5mhgWsI/Wbx7UpAgXWTfdmrLkcWwCXqb +fR74emxVsMiItpg8aOwFhihid4ziEamMc3UX9IB6zKJN+VY3RHWa1QnFvMYXDTHj +uqFIYGEGR8I5ZlJZDV/Cxkg1LqqtXjd1gNglmcRVDOaMtvLy3WvObb8QLAJsdq+3 +xUzgh6YWLb9ErQZ5WdbdEL3YVQwRCi6yYHk5dOMyLfGUtqJg6zxMLxW8Abso5ZAn +/4ULOlgsTwCZ+IT7fMa+QnrF6CjJtD93U2jdVURTGUo9PV41SO43L69Z83FqzJUZ +hIZNScERIZd5Km4EAhNJN59DNge7T+089Y3iWmLGnywwoFYjoEjXVEizZPdvSSZj +MECP3lLF0peFiWhcN2V2p3Q1yY3FF1TfNleTsIydz5O/AgMBAAE= +-----END PUBLIC KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-4096.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-4096.pem new file mode 100644 index 00000000000..032f47d5fbf --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-4096.pem @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-4096.pub.der b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-4096.pub.der new file mode 100644 index 00000000000..6ac4f8d1f86 Binary files /dev/null and b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-4096.pub.der differ diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-4096.pub.pem b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-4096.pub.pem new file mode 100644 index 00000000000..68c7323084f --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/keys/rsa-4096.pub.pem @@ -0,0 +1,14 @@ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3J+sKKSUS2AWjfOObdNZ +L1HnROsmHl4KM+w9E8uBvhmeRvEBg/v3I3EFR2tHGvRiFAvxnU6ocdKnzAmU+qzs +0lKbkqIs9NjvCxNcVClwZZ5+QNlFp8FjVjf8rtWpYq/qbo2WCqMudZtk2SHZ1XEP +IeL9blGG0J9RKAKhlHNeWiRxzJglponaB/TQToFfvab2iV7rwyYzObhKPRXgw6QF +qVueHBKCJlOHUJDwiaHBq9h89l4isvcwafRIqGKr25H1PZpa5qB6TlDtBxfODAwF +JsKZljvAPaTLCd/1cNPOiZ8G3IFel5GPuv7/9ZirVeulZ0RWWTYIO5ikFrvNG/nV +UuzKG11q6tyMXhYeQRGAy10udnQ6emggtW7vA7ev8GkdQUNBmQasWvZaTdRyTjV8 +8AUiYMgz9g5cu6UYFTCFdgUhoPbaxEd6w1JJP9GUsdIIY9aDayj2Nsf4vuwiM3Rp +W+YrOJIPlkRuY0XuWFrF37lVi8iIpMsgTO3XoalOg6GCW9TmHEgJkuETyLHYw84z +RF40z6fTjDyGp7YChwOinmRcBF6ToVpYxsosAzUk2QfNKa5IjuRdDXEucodw/1Vi +AENE2m58QPNFWcSZ9FYckBA+uRn4kHffdFATR9Vx1Hh3cPESuDwXh8AzFwFuOLOA +TaSHkaQfGV6PQHgT7NUKv/kCAwEAAQ== +-----END PUBLIC KEY----- diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/recordings/test_keyvault_key_download.yaml b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/recordings/test_keyvault_key_download.yaml new file mode 100644 index 00000000000..bcf21824024 --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/recordings/test_keyvault_key_download.yaml @@ -0,0 +1,2524 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-graphrbac/0.60.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/me?api-version=1.6 + response: + body: + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects/@Element","odata.type":"Microsoft.DirectoryServices.User","objectType":"User","objectId":"9ac02ab3-5061-4ec6-a3d8-2cdaa5f29efa","deletionTimestamp":null,"accountEnabled":true,"ageGroup":null,"assignedLicenses":[],"assignedPlans":[],"city":null,"companyName":null,"consentProvidedForMinor":null,"country":null,"createdDateTime":"2019-10-21T06:37:42Z","creationType":"Invitation","department":null,"dirSyncEnabled":null,"displayName":"Bin + Ma","employeeId":null,"facsimileTelephoneNumber":null,"givenName":null,"immutableId":null,"isCompromised":null,"jobTitle":null,"lastDirSyncTime":null,"legalAgeGroupClassification":null,"mail":"bim@microsoft.com","mailNickname":"bim_microsoft.com#EXT#","mobile":null,"onPremisesDistinguishedName":null,"onPremisesSecurityIdentifier":null,"otherMails":["bim@microsoft.com"],"passwordPolicies":null,"passwordProfile":null,"physicalDeliveryOfficeName":null,"postalCode":null,"preferredLanguage":null,"provisionedPlans":[],"provisioningErrors":[],"proxyAddresses":["SMTP:bim@microsoft.com"],"refreshTokensValidFromDateTime":"2019-10-21T06:37:41Z","showInAddressList":false,"signInNames":[],"sipProxyAddress":null,"state":null,"streetAddress":null,"surname":null,"telephoneNumber":null,"thumbnailPhoto@odata.mediaEditLink":"directoryObjects/9ac02ab3-5061-4ec6-a3d8-2cdaa5f29efa/Microsoft.DirectoryServices.User/thumbnailPhoto","usageLocation":null,"userIdentities":[],"userPrincipalName":"bim_microsoft.com#EXT#@AzureSDKTeam.onmicrosoft.com","userState":"Accepted","userStateChangedOn":"2019-10-21T06:39:35Z","userType":"Guest"}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '1668' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Thu, 30 Jan 2020 08:57:42 GMT + duration: + - '2035989' + expires: + - '-1' + ocp-aad-diagnostics-server-name: + - LgXAcbVEU6vczw1+dJY77u/nuJ5/uLYq6pT3Y4X/6fM= + ocp-aad-session-key: + - -H5RyrwVx-0KrT3awIgN6NjUzcVVTr9ipqNEA-DKdA7QqPr60aCYdbbLnB34e4R7F7swwuM8gskDLwwxHyJjWmgt5ed8OCcM0FCmeoPny6NICZZHqSA6QJFGdAOq4FWA.9fsqe2A8Cus2p-PHqaJ9rWyy9-aNgqW8OqwLNslGa-c + pragma: + - no-cache + request-id: + - 0f9e9242-d1d5-4656-b937-4cf9575f26cd + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"location": "eastus2", "properties": {"tenantId": "54826b22-38d6-4fb2-bad9-b7b93a3e9c5a", + "sku": {"family": "A", "name": "premium"}, "accessPolicies": [{"tenantId": "54826b22-38d6-4fb2-bad9-b7b93a3e9c5a", + "objectId": "9ac02ab3-5061-4ec6-a3d8-2cdaa5f29efa", "permissions": {"keys": + ["get", "create", "delete", "list", "update", "import", "backup", "restore", + "recover"], "secrets": ["get", "list", "set", "delete", "backup", "restore", + "recover"], "certificates": ["get", "list", "delete", "create", "import", "update", + "managecontacts", "getissuers", "listissuers", "setissuers", "deleteissuers", + "manageissuers", "recover"], "storage": ["get", "list", "delete", "set", "update", + "regeneratekey", "setsas", "listsas", "getsas", "deletesas"]}}]}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - keyvault create + Connection: + - keep-alive + Content-Length: + - '746' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n -l --sku + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-mgmt-keyvault/1.1.0 + Azure-SDK-For-Python AZURECLI/2.0.80 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_kv_key_download000001/providers/Microsoft.KeyVault/vaults/cli-test-keyvault-000002?api-version=2018-02-14 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_kv_key_download000001/providers/Microsoft.KeyVault/vaults/cli-test-keyvault-000002","name":"cli-test-keyvault-000002","type":"Microsoft.KeyVault/vaults","location":"eastus2","tags":{},"properties":{"sku":{"family":"A","name":"premium"},"tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","accessPolicies":[{"tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","objectId":"9ac02ab3-5061-4ec6-a3d8-2cdaa5f29efa","permissions":{"keys":["get","create","delete","list","update","import","backup","restore","recover"],"secrets":["get","list","set","delete","backup","restore","recover"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover"],"storage":["get","list","delete","set","update","regeneratekey","setsas","listsas","getsas","deletesas"]}}],"enabledForDeployment":false,"vaultUri":"https://cli-test-keyvault-000002.vault.azure.net","provisioningState":"RegisteringDns"}}' + headers: + cache-control: + - no-cache + content-length: + - '1106' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:57:52 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.269 + x-ms-ratelimit-remaining-subscription-writes: + - '1196' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - keyvault create + Connection: + - keep-alive + ParameterSetName: + - -g -n -l --sku + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-mgmt-keyvault/1.1.0 + Azure-SDK-For-Python AZURECLI/2.0.80 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_kv_key_download000001/providers/Microsoft.KeyVault/vaults/cli-test-keyvault-000002?api-version=2018-02-14 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_kv_key_download000001/providers/Microsoft.KeyVault/vaults/cli-test-keyvault-000002","name":"cli-test-keyvault-000002","type":"Microsoft.KeyVault/vaults","location":"eastus2","tags":{},"properties":{"sku":{"family":"A","name":"premium"},"tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","accessPolicies":[{"tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","objectId":"9ac02ab3-5061-4ec6-a3d8-2cdaa5f29efa","permissions":{"keys":["get","create","delete","list","update","import","backup","restore","recover"],"secrets":["get","list","set","delete","backup","restore","recover"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover"],"storage":["get","list","delete","set","update","regeneratekey","setsas","listsas","getsas","deletesas"]}}],"enabledForDeployment":false,"vaultUri":"https://cli-test-keyvault-000002.vault.azure.net/","provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '1102' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:27 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.269 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - 0 + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: PUT + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-file?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: + - Thu, 30 Jan 2020 08:58:29 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/54826b22-38d6-4fb2-bad9-b7b93a3e9c5a", + resource="https://vault.azure.net" + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - addr=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 401 + message: Unauthorized +- request: + body: '{"Hsm": false, "key": {"kty": "EC", "d": "h7ffwocPm8d414HUWGzrwqnHaMeOmqH9Bmm1IwT-IvQ", + "crv": "P-256", "x": "clUrtHdYtNdfl7cueN47hqM6SuyPn18rpsLutGJ_qHc", "y": "h6r2XZy9W_miQTUXmZWktuC5SVY7JsZ_2XINQSA9EVo"}, + "attributes": {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '241' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: PUT + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-file?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-file/84105108fe234c669b3aea8afdfdde6b","kty":"EC","key_ops":["sign","verify"],"crv":"P-256","x":"clUrtHdYtNdfl7cueN47hqM6SuyPn18rpsLutGJ_qHc","y":"h6r2XZy9W_miQTUXmZWktuC5SVY7JsZ_2XINQSA9EVo"},"attributes":{"enabled":true,"created":1580374711,"updated":1580374711,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '370' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-file/84105108fe234c669b3aea8afdfdde6b","kty":"EC","key_ops":["sign","verify"],"crv":"P-256","x":"clUrtHdYtNdfl7cueN47hqM6SuyPn18rpsLutGJ_qHc","y":"h6r2XZy9W_miQTUXmZWktuC5SVY7JsZ_2XINQSA9EVo"},"attributes":{"enabled":true,"created":1580374711,"updated":1580374711,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '370' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:33 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-file/84105108fe234c669b3aea8afdfdde6b","kty":"EC","key_ops":["sign","verify"],"crv":"P-256","x":"clUrtHdYtNdfl7cueN47hqM6SuyPn18rpsLutGJ_qHc","y":"h6r2XZy9W_miQTUXmZWktuC5SVY7JsZ_2XINQSA9EVo"},"attributes":{"enabled":true,"created":1580374711,"updated":1580374711,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '370' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"Hsm": false, "key": {"kty": "EC", "d": "Rtt-De2cK9NtXOL4ujPZjM_kNw1bAMmoRKrDTWP1095OV98-LX57Yf64HImCMb9W", + "crv": "P-384", "x": "XqAZPBetAFTWs6yfc1CtQVPPOzE-NXeTgKMTwuTqHCRj75EmiuDQ2TjmI9CBLyMO", + "y": "RectUMm16ocn74_9MnQMQ7pb73w35nXCf-aOq1Yqe18havSs-oJwTW0FVTG0exPz"}, "attributes": + {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '304' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: PUT + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-file?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-file/a1bcca9890ae4436b350f17febc164a1","kty":"EC","key_ops":["sign","verify"],"crv":"P-384","x":"XqAZPBetAFTWs6yfc1CtQVPPOzE-NXeTgKMTwuTqHCRj75EmiuDQ2TjmI9CBLyMO","y":"RectUMm16ocn74_9MnQMQ7pb73w35nXCf-aOq1Yqe18havSs-oJwTW0FVTG0exPz"},"attributes":{"enabled":true,"created":1580374717,"updated":1580374717,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '412' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-file/a1bcca9890ae4436b350f17febc164a1","kty":"EC","key_ops":["sign","verify"],"crv":"P-384","x":"XqAZPBetAFTWs6yfc1CtQVPPOzE-NXeTgKMTwuTqHCRj75EmiuDQ2TjmI9CBLyMO","y":"RectUMm16ocn74_9MnQMQ7pb73w35nXCf-aOq1Yqe18havSs-oJwTW0FVTG0exPz"},"attributes":{"enabled":true,"created":1580374717,"updated":1580374717,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '412' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:42 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-file/a1bcca9890ae4436b350f17febc164a1","kty":"EC","key_ops":["sign","verify"],"crv":"P-384","x":"XqAZPBetAFTWs6yfc1CtQVPPOzE-NXeTgKMTwuTqHCRj75EmiuDQ2TjmI9CBLyMO","y":"RectUMm16ocn74_9MnQMQ7pb73w35nXCf-aOq1Yqe18havSs-oJwTW0FVTG0exPz"},"attributes":{"enabled":true,"created":1580374717,"updated":1580374717,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '412' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:45 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"Hsm": false, "key": {"kty": "EC", "d": "AZ6ly88rN0Shjyzwu4yG6OqyAF4l1Y8eG52bvwqbohaZ2YqlAefqXynf19QL-opHlWApjNW1wMSHz-ARglFhstsL", + "crv": "P-521", "x": "fP-pBRcvboy_RkWltXNhc_cF29Yem4NcwlgoDVpYziBF3IrPJvvUOMH2BbudcylCN0F6rA5DybbPa7v8ZtjTmSU", + "y": "yWlPvSzTx68r5HeOMZ4slm1g27zw_47OsygwlTJb5qOwkmjmI90FhM6FgzFcVd_Sq8WFWHkq0UFtnM5WK7RkEBo"}, + "attributes": {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '374' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: PUT + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-file?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-file/37a236365a38432d82daa0f33ca57c94","kty":"EC","key_ops":["sign","verify"],"crv":"P-521","x":"fP-pBRcvboy_RkWltXNhc_cF29Yem4NcwlgoDVpYziBF3IrPJvvUOMH2BbudcylCN0F6rA5DybbPa7v8ZtjTmSU","y":"yWlPvSzTx68r5HeOMZ4slm1g27zw_47OsygwlTJb5qOwkmjmI90FhM6FgzFcVd_Sq8WFWHkq0UFtnM5WK7RkEBo"},"attributes":{"enabled":true,"created":1580374727,"updated":1580374727,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '458' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:46 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-file/37a236365a38432d82daa0f33ca57c94","kty":"EC","key_ops":["sign","verify"],"crv":"P-521","x":"fP-pBRcvboy_RkWltXNhc_cF29Yem4NcwlgoDVpYziBF3IrPJvvUOMH2BbudcylCN0F6rA5DybbPa7v8ZtjTmSU","y":"yWlPvSzTx68r5HeOMZ4slm1g27zw_47OsygwlTJb5qOwkmjmI90FhM6FgzFcVd_Sq8WFWHkq0UFtnM5WK7RkEBo"},"attributes":{"enabled":true,"created":1580374727,"updated":1580374727,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '458' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:48 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-file/37a236365a38432d82daa0f33ca57c94","kty":"EC","key_ops":["sign","verify"],"crv":"P-521","x":"fP-pBRcvboy_RkWltXNhc_cF29Yem4NcwlgoDVpYziBF3IrPJvvUOMH2BbudcylCN0F6rA5DybbPa7v8ZtjTmSU","y":"yWlPvSzTx68r5HeOMZ4slm1g27zw_47OsygwlTJb5qOwkmjmI90FhM6FgzFcVd_Sq8WFWHkq0UFtnM5WK7RkEBo"},"attributes":{"enabled":true,"created":1580374727,"updated":1580374727,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '458' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:50 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"Hsm": false, "key": {"kty": "EC", "d": "zL5lKpvA5G-5YsKYQfXZMlQzrMPtAbGBhzN5T_YBkLI", + "crv": "SECP256K1", "x": "H7Thoa_qhy7HoBSFPKOL9edHRqr305sCa7ozYkRLIe0", "y": + "FkffDAOC8F6WQxd3aNAjDaiGC80ybBt-wy54EGeKyT8"}, "attributes": {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '245' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: PUT + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-file?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-file/bf5bbaeb0e044fac9ed2ab01374f7d32","kty":"EC","key_ops":["sign","verify"],"crv":"SECP256K1","x":"H7Thoa_qhy7HoBSFPKOL9edHRqr305sCa7ozYkRLIe0","y":"FkffDAOC8F6WQxd3aNAjDaiGC80ybBt-wy54EGeKyT8"},"attributes":{"enabled":true,"created":1580374732,"updated":1580374732,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '375' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:52 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-file/bf5bbaeb0e044fac9ed2ab01374f7d32","kty":"EC","key_ops":["sign","verify"],"crv":"SECP256K1","x":"H7Thoa_qhy7HoBSFPKOL9edHRqr305sCa7ozYkRLIe0","y":"FkffDAOC8F6WQxd3aNAjDaiGC80ybBt-wy54EGeKyT8"},"attributes":{"enabled":true,"created":1580374732,"updated":1580374732,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '375' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:54 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-file/bf5bbaeb0e044fac9ed2ab01374f7d32","kty":"EC","key_ops":["sign","verify"],"crv":"SECP256K1","x":"H7Thoa_qhy7HoBSFPKOL9edHRqr305sCa7ozYkRLIe0","y":"FkffDAOC8F6WQxd3aNAjDaiGC80ybBt-wy54EGeKyT8"},"attributes":{"enabled":true,"created":1580374732,"updated":1580374732,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '375' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:56 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"Hsm": false, "key": {"kty": "RSA", "n": "zJEYKuhIeHvKqZZtJRDtQjg17ChAZtY_yJfNqv30xnzkzOZwVmy7NViVQIRnkCYvAMCstja-EpEpeW02LD83teNQRKM9Nie74g7ehDn6ZZCSdQQ54TQemt26hMfnFVaUl376p0E398IP1leHcvYOaiVgT_ffUhNhgIUJ5sIphtf4D1p5bWFYvs_Gd-A-Fk38hnerpl7JRF4y6p5WGJzvXKKs0QVSaQ1NHD7L1tQ0xTKra3FS_BGwD7ZdgBZerqzBPgxRjuxzq2DQJlHtvINsFjJhsMtwI11UV5-tIBOEWPSBTIoQpUWGB-_4jZ44IpKlBDQuc1kqa2Y8-eO53Gxn-Q", + "e": "AQAB", "d": "yt8yGotWI7aQ2_KEt3e79CoOv--DPvlHNEXn_6XvdFE0D0iRLASU_GinS96DXl-fyZ1LK0HK6lrvyK5YRTVEqKuQVSGWePiayat5XaSqAMOJm2bfh8nKeEdgzIH7WBwPLNcO-YQiXyEj16vidk4zKW17wJLP9HOoBG7rzN_Nkx0g2vmwPgb2MIpQQU9-O1pC3bbjfSfvahclfUTiUUTGId8RjnILP5ppToE0rm1N0NrCEBwUy7Z4DgOIOOeoOCB-RtPRqBKQCEAPHhu8c5pL_hAranvVdAP_Z41iFzWzvlftNXVA4gCp50-bs2zxk-PIZwNOVi1AEDtqj-WROB-rIQ", + "dp": "Uhsfj7N_NR6fLEtvOBNu5Gof9QpzGoYWtoYXAbIGnMiTwoVg5LUNUOMhGHCcb7vknzwaWyNPrjjMZhpE5KK0a1hGQ8ZSm4luCNglXAptv9LKUq53GZ7QUwqoCxE0t1Dm_B-r0sXtH_Rp7vOL-t3NoUyTNcrP6q5SXiF4IW6TB5k", + "dq": "MDQ4Qpvrhr1pr1qxn9F5oHdcqipqgZrgF6qszpbvt9ywrrdt1JdpC9RLTXIv4HSJuIXNiDTrDXNUKSdkc5Ih0sr3q-HsyVWR5j7bjKjcr_MBtaQUhXAeDJvzsDJQkFscONPjnl67rdMy_dLOPodnUPwqVWj39VN_pvj_iXlX9dE", + "qi": "MlnTFV66f5o8xepzA2mmq98p8xawtv9fHvs7er1JgbUlFeAgid4vycPxHBVCfw9s9yp1rIUdmubCF2DMgf_t1UTB35BArN5iizwW9zh6ClNlSuZnXLld4W04eX1OYctIDWHxwmPQetYKPLKLZxb7Y-Fj0rzxXnsoSfTK_mGOgGA", + "p": "9BRdHYHJhfR79UEXeVSj3jKKRFp7qCIzSTwxDATVjj0V-5nCqnzsTiGa7GU4me8BCPMhCgdrAvR87uouS9hwMk_FPlE4J4co4LInq0aZWiOmmqK6rUZGk5nZd8gS3TStCC659givRXs54_ZfbtK96rSwn8JiBfisYAG-rk45b3U", + "q": "1o63lPiqS67G_EBHHrlL6KZODrpThobPbmsKPsu9xWEqabZcJjPXKcBHzVOeH-3REx3wzeZTFFlTUytswJ5hlu3kKVaYx8cq1lrb09hhy9W-o0GeqVs8YPt8Er4nIaed3nsJAsDRaeZINPS8E5I37Af8aTYhfd6QswYGTVnPKfU"}, + "attributes": {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1688' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: PUT + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-file?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-file/a069c0a9c6ce4431925dfa1d29eaa2b7","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"zJEYKuhIeHvKqZZtJRDtQjg17ChAZtY_yJfNqv30xnzkzOZwVmy7NViVQIRnkCYvAMCstja-EpEpeW02LD83teNQRKM9Nie74g7ehDn6ZZCSdQQ54TQemt26hMfnFVaUl376p0E398IP1leHcvYOaiVgT_ffUhNhgIUJ5sIphtf4D1p5bWFYvs_Gd-A-Fk38hnerpl7JRF4y6p5WGJzvXKKs0QVSaQ1NHD7L1tQ0xTKra3FS_BGwD7ZdgBZerqzBPgxRjuxzq2DQJlHtvINsFjJhsMtwI11UV5-tIBOEWPSBTIoQpUWGB-_4jZ44IpKlBDQuc1kqa2Y8-eO53Gxn-Q","e":"AQAB"},"attributes":{"enabled":true,"created":1580374739,"updated":1580374739,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '660' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:58:59 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-file/a069c0a9c6ce4431925dfa1d29eaa2b7","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"zJEYKuhIeHvKqZZtJRDtQjg17ChAZtY_yJfNqv30xnzkzOZwVmy7NViVQIRnkCYvAMCstja-EpEpeW02LD83teNQRKM9Nie74g7ehDn6ZZCSdQQ54TQemt26hMfnFVaUl376p0E398IP1leHcvYOaiVgT_ffUhNhgIUJ5sIphtf4D1p5bWFYvs_Gd-A-Fk38hnerpl7JRF4y6p5WGJzvXKKs0QVSaQ1NHD7L1tQ0xTKra3FS_BGwD7ZdgBZerqzBPgxRjuxzq2DQJlHtvINsFjJhsMtwI11UV5-tIBOEWPSBTIoQpUWGB-_4jZ44IpKlBDQuc1kqa2Y8-eO53Gxn-Q","e":"AQAB"},"attributes":{"enabled":true,"created":1580374739,"updated":1580374739,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '660' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:00 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-file/a069c0a9c6ce4431925dfa1d29eaa2b7","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"zJEYKuhIeHvKqZZtJRDtQjg17ChAZtY_yJfNqv30xnzkzOZwVmy7NViVQIRnkCYvAMCstja-EpEpeW02LD83teNQRKM9Nie74g7ehDn6ZZCSdQQ54TQemt26hMfnFVaUl376p0E398IP1leHcvYOaiVgT_ffUhNhgIUJ5sIphtf4D1p5bWFYvs_Gd-A-Fk38hnerpl7JRF4y6p5WGJzvXKKs0QVSaQ1NHD7L1tQ0xTKra3FS_BGwD7ZdgBZerqzBPgxRjuxzq2DQJlHtvINsFjJhsMtwI11UV5-tIBOEWPSBTIoQpUWGB-_4jZ44IpKlBDQuc1kqa2Y8-eO53Gxn-Q","e":"AQAB"},"attributes":{"enabled":true,"created":1580374739,"updated":1580374739,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '660' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:03 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"Hsm": false, "key": {"kty": "RSA", "n": "t6f3peMvTmrOtW1Zzzl1z05xGYVck3KeWnBb_TvPSZp8XczOa0QNCLJ-FFmvP7wyGrz7tsN3QNveITRqsk9_1PA3MQfxHCmBziSj2NDXPynuquwfu-ew5mhgWsI_Wbx7UpAgXWTfdmrLkcWwCXqbfR74emxVsMiItpg8aOwFhihid4ziEamMc3UX9IB6zKJN-VY3RHWa1QnFvMYXDTHjuqFIYGEGR8I5ZlJZDV_Cxkg1LqqtXjd1gNglmcRVDOaMtvLy3WvObb8QLAJsdq-3xUzgh6YWLb9ErQZ5WdbdEL3YVQwRCi6yYHk5dOMyLfGUtqJg6zxMLxW8Abso5ZAn_4ULOlgsTwCZ-IT7fMa-QnrF6CjJtD93U2jdVURTGUo9PV41SO43L69Z83FqzJUZhIZNScERIZd5Km4EAhNJN59DNge7T-089Y3iWmLGnywwoFYjoEjXVEizZPdvSSZjMECP3lLF0peFiWhcN2V2p3Q1yY3FF1TfNleTsIydz5O_", + "e": "AQAB", "d": "N0jIs5b_1oswTkzsjASwAgeK5DPQ-lG2eWL5TfGDJJTsew_70y5Y_hU8_sNAjd8I9iONYibU7yFAbJ5qv-JOiLsG4iuR2Phlqrg82jeDk-_7eFg79UR5a-JfnvJ6P3kNZn0cQQDsg6kCPo9Tvoa556A7DB8wbFbxUIXjKXJi90-Q1IwEQWzYaqkE3QUP8impbzUUzfbY9OhMLdczeTVbaALE1r5eNZuxy6teQzhgWW_DEpkuNv5a0L5AE1mWgJulnZvR1KcYDPc8PxbRfORbydXlOvKTwBOPbcUTI9qtq3gaMg-sao6qvBF4XjUBnsAclFT9G2H0loCP-WcrkFJTgdsqucQfRm10VERmZoebyQcLMkk_yoaPFaoKHwuJJr6dQ5lAu5JJ_QYMGqd59ubq5uFJbfbD4QoCLj4p4kXrnqGzPhDAtoAyh1z9IvX0U0qvax8abl_6Ymk7raWL3zL8IfsF8JFlVni1bKNDXuZ92aHhaEbAYu3vIcKQX6eTC1kB", + "dp": "Ms00SfWLM6cutMMAZNCwm8FOoDsrDm9j75aFdCQ51lK3Ip4HIavbnzeUM1sn9oKPvZCMya3SK1zH15JNDLkKO7AidVY3Vy7v7n4hdfbAYL7XSOgOfzXW2-Ln04Wn1q-CDVdszEhF9lTr0d-bTOUaKX6ElZtjAgvTkg_kBfaUcBe6vgFucCgMbBHRE99NHOtLH8tmMHr4_D0mmMq0GblfS6i-auCCpBqT_3tcpnEMJIaD_UF_1WrH1AHWxl4POdw_", + "dq": "0JlS0-msFtJ3SqRvU0CddjgyN4kPHLZBn3mjrUT0xfmY33S0ePHCjLhCM7555Ic7htjpln0ImbGL6BkH1GgMVuKup2k5Gh9W95d-0TBlp0tUuHEJC0uqXFwz-8CshNHIW8MTiw7_9d_jtWkGbvIQgrEhJViR2uUnugc0kp07jFFVSfPVId5y4pMKTcRhd99uidfSseEc2Lv0KbS0Z7zkB8XRr66WIpo6VRb9Fv6G6kSovwJr2UPehiWehT6MTU3h", + "qi": "sf40lRWUZeJE-zVe1jfmUg9UZst5muqmlcIAsmy5iz6iqyvY5HfKwtL0wwi0w9rxFcCCynp3ZSo5-5K1OoCJZEsdHp62ssfUUpp7Zpv3WsRbggb5uxzeAwM498nb5C2neYw6wq3bOrASspahdpuennaf5IyzUzzn53RaDqvDCKCkpf5eyyrHlRZIVNdTNV1HDrUb4LojzUc51smh8zzkrHGONJSpsF9SDGsRaQJqwlXxdc-KQrmhftwnHVtokGgs", + "p": "3PFKG1CP8nMezJrRq1BLgSmLHHPIGd02vJSQuC8gM9u8v4OserU4tX3kW8uHI1P6f3PrLQwCIG4j2gzR5MB_BL78x7p-lpdI41dnt228EkQxQy2sB8CiTbxHZJ08IM-LVlgAvhX0DORuIhG4052niK8nKSDzgPlZ2bLfomdMCPkIKr7-EsN6z-AmJqNpjayWTIZyZg2Dh1mPiPdvmtdl1Gh7DvLcFGgs4nrlrnMxLKyLTU5aQjKc61pxc-1FkQ5X", + "q": "1MwZfePZ8GfaPo91_zPqu3_yKea_Mrld22qhTPkbQHe7HWXycTmqhxyzx1KisBG5glInDHmUsSg8q9g3I7gmH1UnTG2Zps5KNXQ9DMvLXg-zQG7xZqbHXjYJDaWHrkHBB76E1IMQfBIEhBdh2c_EBhA9zmdpGeW18W1ip7hEIWVtf-qzmBcppz35qM6iFklgvYLMqqDzBFKd2lK3kurEnPHudPaSOzMjBAmzIgtvoCfcLuflNHRzgPLut6PgnXTZ"}, + "attributes": {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2453' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: PUT + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-file?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-file/f78df5ada82344c6a0e8952e9a16ddc5","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"t6f3peMvTmrOtW1Zzzl1z05xGYVck3KeWnBb_TvPSZp8XczOa0QNCLJ-FFmvP7wyGrz7tsN3QNveITRqsk9_1PA3MQfxHCmBziSj2NDXPynuquwfu-ew5mhgWsI_Wbx7UpAgXWTfdmrLkcWwCXqbfR74emxVsMiItpg8aOwFhihid4ziEamMc3UX9IB6zKJN-VY3RHWa1QnFvMYXDTHjuqFIYGEGR8I5ZlJZDV_Cxkg1LqqtXjd1gNglmcRVDOaMtvLy3WvObb8QLAJsdq-3xUzgh6YWLb9ErQZ5WdbdEL3YVQwRCi6yYHk5dOMyLfGUtqJg6zxMLxW8Abso5ZAn_4ULOlgsTwCZ-IT7fMa-QnrF6CjJtD93U2jdVURTGUo9PV41SO43L69Z83FqzJUZhIZNScERIZd5Km4EAhNJN59DNge7T-089Y3iWmLGnywwoFYjoEjXVEizZPdvSSZjMECP3lLF0peFiWhcN2V2p3Q1yY3FF1TfNleTsIydz5O_","e":"AQAB"},"attributes":{"enabled":true,"created":1580374745,"updated":1580374745,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '830' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-file/f78df5ada82344c6a0e8952e9a16ddc5","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"t6f3peMvTmrOtW1Zzzl1z05xGYVck3KeWnBb_TvPSZp8XczOa0QNCLJ-FFmvP7wyGrz7tsN3QNveITRqsk9_1PA3MQfxHCmBziSj2NDXPynuquwfu-ew5mhgWsI_Wbx7UpAgXWTfdmrLkcWwCXqbfR74emxVsMiItpg8aOwFhihid4ziEamMc3UX9IB6zKJN-VY3RHWa1QnFvMYXDTHjuqFIYGEGR8I5ZlJZDV_Cxkg1LqqtXjd1gNglmcRVDOaMtvLy3WvObb8QLAJsdq-3xUzgh6YWLb9ErQZ5WdbdEL3YVQwRCi6yYHk5dOMyLfGUtqJg6zxMLxW8Abso5ZAn_4ULOlgsTwCZ-IT7fMa-QnrF6CjJtD93U2jdVURTGUo9PV41SO43L69Z83FqzJUZhIZNScERIZd5Km4EAhNJN59DNge7T-089Y3iWmLGnywwoFYjoEjXVEizZPdvSSZjMECP3lLF0peFiWhcN2V2p3Q1yY3FF1TfNleTsIydz5O_","e":"AQAB"},"attributes":{"enabled":true,"created":1580374745,"updated":1580374745,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '830' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-file/f78df5ada82344c6a0e8952e9a16ddc5","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"t6f3peMvTmrOtW1Zzzl1z05xGYVck3KeWnBb_TvPSZp8XczOa0QNCLJ-FFmvP7wyGrz7tsN3QNveITRqsk9_1PA3MQfxHCmBziSj2NDXPynuquwfu-ew5mhgWsI_Wbx7UpAgXWTfdmrLkcWwCXqbfR74emxVsMiItpg8aOwFhihid4ziEamMc3UX9IB6zKJN-VY3RHWa1QnFvMYXDTHjuqFIYGEGR8I5ZlJZDV_Cxkg1LqqtXjd1gNglmcRVDOaMtvLy3WvObb8QLAJsdq-3xUzgh6YWLb9ErQZ5WdbdEL3YVQwRCi6yYHk5dOMyLfGUtqJg6zxMLxW8Abso5ZAn_4ULOlgsTwCZ-IT7fMa-QnrF6CjJtD93U2jdVURTGUo9PV41SO43L69Z83FqzJUZhIZNScERIZd5Km4EAhNJN59DNge7T-089Y3iWmLGnywwoFYjoEjXVEizZPdvSSZjMECP3lLF0peFiWhcN2V2p3Q1yY3FF1TfNleTsIydz5O_","e":"AQAB"},"attributes":{"enabled":true,"created":1580374745,"updated":1580374745,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '830' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"Hsm": false, "key": {"kty": "RSA", "n": "3J-sKKSUS2AWjfOObdNZL1HnROsmHl4KM-w9E8uBvhmeRvEBg_v3I3EFR2tHGvRiFAvxnU6ocdKnzAmU-qzs0lKbkqIs9NjvCxNcVClwZZ5-QNlFp8FjVjf8rtWpYq_qbo2WCqMudZtk2SHZ1XEPIeL9blGG0J9RKAKhlHNeWiRxzJglponaB_TQToFfvab2iV7rwyYzObhKPRXgw6QFqVueHBKCJlOHUJDwiaHBq9h89l4isvcwafRIqGKr25H1PZpa5qB6TlDtBxfODAwFJsKZljvAPaTLCd_1cNPOiZ8G3IFel5GPuv7_9ZirVeulZ0RWWTYIO5ikFrvNG_nVUuzKG11q6tyMXhYeQRGAy10udnQ6emggtW7vA7ev8GkdQUNBmQasWvZaTdRyTjV88AUiYMgz9g5cu6UYFTCFdgUhoPbaxEd6w1JJP9GUsdIIY9aDayj2Nsf4vuwiM3RpW-YrOJIPlkRuY0XuWFrF37lVi8iIpMsgTO3XoalOg6GCW9TmHEgJkuETyLHYw84zRF40z6fTjDyGp7YChwOinmRcBF6ToVpYxsosAzUk2QfNKa5IjuRdDXEucodw_1ViAENE2m58QPNFWcSZ9FYckBA-uRn4kHffdFATR9Vx1Hh3cPESuDwXh8AzFwFuOLOATaSHkaQfGV6PQHgT7NUKv_k", + "e": "AQAB", "d": "NZmNR-qEJLPZhu8vITuBpV9uom3GuwX50JeKVy7P_JFYxL90sM4cQr4InEtR4RiSY3BraN5dShn1rjp9uVEd0BNFvKAt7-ZsXPJ9Me1HY0jYP4UJyTHQonfDqe460sEOYYGAfGEcvnHcVGxG8fYfyQnOrGieKj0qiF_rRZepypikFSK5svY2xEwT956y1e6kYsdu2-CB_Xnqf2C7VIya24Roq0VL3WfZrhcoeSeVV9ymr2w7XeN0Ham9pTsjqZqSTD8d6n3-eNxsWZbM9lxNPBd3HOqzT8ajlWiVxq2OthyunA_KHWS92J5vLQnERoGTk70khVP9OA1jgCpsMGnIC4PInlRnoJz7A6Eq5URSuPpJ6TMYlDWxnT-YuNxGQs3hXS9bsx5L84Wc_-R_CWIGBCtGoKVXQ4YgZyWQ4bMInMhoD91r4yFKusVs5O84gdM7qmtryuNWLpyEkU_sa4b8t71kngpWBkDIU5Gfb6Fui3GCju_PEXrPTF8eeoT7MN13P7hNrPWWOfxWF6p-a4ptE6uSxkdvlNfBb1pG_FTVlEijh2lYga9sQiafHJHokcxL8mhM7h_TWuJrYAUMLN6ygrxdKuwOw_6N9PIRta9cM_RZ75oaxDef81V3SlZRac1KLNmLkJvpQb-Exq6_JJ3dkrZGwhVums_rzyTK9-Yp7Ak", + "dp": "puHvl0HLV9TmZcQH8pnbnorrmWZcFd9JPL57iDJRZLBOTDyCATntqnsnSSdqlJczWREweE2bILKIRJE4cGYrDPbfV4LjDtCJa5Wffuj7BJKkbyjYZ-kYU2ogG-vhvBXOVejwdqlZFwegrc8ci-QCjITD-nQx_-xXDmsDOzP0BTA3DC-QKRc7eieoy7hdQFWijDAnmgteSIfzyv9YKemu01ccwZIoE9r8ROasXrkQ4o9o5PDekiPkzjZgCMk5F5RGeX8M03vj4ku79NsL8qibcU7ksYeYv0fSg104PykEsY_rVqc_DJggPKit1pEj1mCo_FlhV-Gh_Fs6gJ4VLnBFKQ", + "dq": "t9ST4Ng-j-aHuBuEOmKhjz7qeXQ8MZylLQAQHSOpKaMyJr_zN0wkTKHwv9cp16v1bG9YXkBX3F23iCfKfLL0GnGT0SEMdrszbA3TrN3hFwUG4w0_YWDC8ucHCiawrImNT_Q1YwSgMbeTkoOqeEUVUWcqnsK0T5nAO1gJFtNWNx8BE2pdPfSPnGhrpQbVCtraasRfSbX8q7569zDp9J9r_TiiSvp2lz41P_YJTYdUVxjbFpGT3jF0oIuk0elIM3VxhSDTsvHiZ9vSsE5ZRbvkKsrTiGgEanQvFtmy3FwfwCO_YHccFBvxbHMt74Dj_VR3TZVV3g8NrtD3ORf9BFGHxw", + "qi": "wqjRIbxdmsmbM7K2smZNGcG0Jqz6o-RhDLqTVUR7ZU0SpROIBosWYPPROsS275Rk7kA4PKyirpDLrIFecjTnMd_PkpNfUEK-w_Zzp2GyQf08m8EI7WU18SCF-3iRMOFBDHIVBqpO5HjiQDC_4Bv-ik4HZ_U3zhwtyFGF7lHwAbGWdqGdbLRAgfmyXTlHGU0h9N3vcechVIdQfHO6uCciGAtX2GqGXvo8ocQI7Jv7bogbwZYZH_AB6WilIlvoiaC6vBNi0_46j-tdRD84sjWSq1Zkp2IMuxs7AtuwmWXeOe1aOh6TrqwupuqBBjAJgPsbw5Lilm_JMcFC5FAPCaN4ww", + "p": "_W3Tx0BLUmiI1KngxBkLy42AgxWZ5n0isLk4rZSR01qukbStY8yNKNcswKmhBHKa8dBdEc7nVjCBaA44DgnkKXzbnZcLCyZSaFl4657embH9HarcoFB8gM82caH57OuJhmoBqJjmoxwRfvdyvff4gVAVopuuZorBKUZpDnIIEwHmThqZ2vsdjKdYsOwAz5aqVFhKSAIK4_eH9FgxB3w4Q81RXe6kFxTnraJgmrzrQnao67kfOFIjvyWZKI7ypV4d7m07sMz1JUYzTZuiyIcMOzDwUYHH_t1L-Mj_GcCTFKWaJsljd166AedWe85T_mnGax8kGPq4QjtQGriW-8j5Aw", + "q": "3tylyhmxP4rSQx5JGQWmNovoAHyD7DWU-Xm7pwvJyxr8q68H92Ws6dV9mbOuG2iUqSh4HtdknrSuKgBTNzgC55_g8o9QtQxw6UyC4odJFCtZU85TcZLidnIlVNFEwvIGTjEAIjghtZpoxSXC5sMVnsMda_aGQ6SkAeBlmdY_J9sGj40jIA3arck1sagz8pt5hIAKXwyCKRdavJREPMEeiu9clU54lcfA1nrbJobeSh4GPR7Q_5giS4O-xSuoYGes-CLIK9vdUzDXKnMl5i1_tQ9Dp0W06kMI1jPwNj7vqxRWQ5t0_3l12LAspAP5uMA1zkUlabAg8w-OeEUrD9ysUw"}, + "attributes": {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '3225' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: PUT + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-file?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-file/087cd40a6f7c41c08ba5fd1597c4ac53","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"3J-sKKSUS2AWjfOObdNZL1HnROsmHl4KM-w9E8uBvhmeRvEBg_v3I3EFR2tHGvRiFAvxnU6ocdKnzAmU-qzs0lKbkqIs9NjvCxNcVClwZZ5-QNlFp8FjVjf8rtWpYq_qbo2WCqMudZtk2SHZ1XEPIeL9blGG0J9RKAKhlHNeWiRxzJglponaB_TQToFfvab2iV7rwyYzObhKPRXgw6QFqVueHBKCJlOHUJDwiaHBq9h89l4isvcwafRIqGKr25H1PZpa5qB6TlDtBxfODAwFJsKZljvAPaTLCd_1cNPOiZ8G3IFel5GPuv7_9ZirVeulZ0RWWTYIO5ikFrvNG_nVUuzKG11q6tyMXhYeQRGAy10udnQ6emggtW7vA7ev8GkdQUNBmQasWvZaTdRyTjV88AUiYMgz9g5cu6UYFTCFdgUhoPbaxEd6w1JJP9GUsdIIY9aDayj2Nsf4vuwiM3RpW-YrOJIPlkRuY0XuWFrF37lVi8iIpMsgTO3XoalOg6GCW9TmHEgJkuETyLHYw84zRF40z6fTjDyGp7YChwOinmRcBF6ToVpYxsosAzUk2QfNKa5IjuRdDXEucodw_1ViAENE2m58QPNFWcSZ9FYckBA-uRn4kHffdFATR9Vx1Hh3cPESuDwXh8AzFwFuOLOATaSHkaQfGV6PQHgT7NUKv_k","e":"AQAB"},"attributes":{"enabled":true,"created":1580374751,"updated":1580374751,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '1001' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:11 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-file/087cd40a6f7c41c08ba5fd1597c4ac53","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"3J-sKKSUS2AWjfOObdNZL1HnROsmHl4KM-w9E8uBvhmeRvEBg_v3I3EFR2tHGvRiFAvxnU6ocdKnzAmU-qzs0lKbkqIs9NjvCxNcVClwZZ5-QNlFp8FjVjf8rtWpYq_qbo2WCqMudZtk2SHZ1XEPIeL9blGG0J9RKAKhlHNeWiRxzJglponaB_TQToFfvab2iV7rwyYzObhKPRXgw6QFqVueHBKCJlOHUJDwiaHBq9h89l4isvcwafRIqGKr25H1PZpa5qB6TlDtBxfODAwFJsKZljvAPaTLCd_1cNPOiZ8G3IFel5GPuv7_9ZirVeulZ0RWWTYIO5ikFrvNG_nVUuzKG11q6tyMXhYeQRGAy10udnQ6emggtW7vA7ev8GkdQUNBmQasWvZaTdRyTjV88AUiYMgz9g5cu6UYFTCFdgUhoPbaxEd6w1JJP9GUsdIIY9aDayj2Nsf4vuwiM3RpW-YrOJIPlkRuY0XuWFrF37lVi8iIpMsgTO3XoalOg6GCW9TmHEgJkuETyLHYw84zRF40z6fTjDyGp7YChwOinmRcBF6ToVpYxsosAzUk2QfNKa5IjuRdDXEucodw_1ViAENE2m58QPNFWcSZ9FYckBA-uRn4kHffdFATR9Vx1Hh3cPESuDwXh8AzFwFuOLOATaSHkaQfGV6PQHgT7NUKv_k","e":"AQAB"},"attributes":{"enabled":true,"created":1580374751,"updated":1580374751,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '1001' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:15 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-file/087cd40a6f7c41c08ba5fd1597c4ac53","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"3J-sKKSUS2AWjfOObdNZL1HnROsmHl4KM-w9E8uBvhmeRvEBg_v3I3EFR2tHGvRiFAvxnU6ocdKnzAmU-qzs0lKbkqIs9NjvCxNcVClwZZ5-QNlFp8FjVjf8rtWpYq_qbo2WCqMudZtk2SHZ1XEPIeL9blGG0J9RKAKhlHNeWiRxzJglponaB_TQToFfvab2iV7rwyYzObhKPRXgw6QFqVueHBKCJlOHUJDwiaHBq9h89l4isvcwafRIqGKr25H1PZpa5qB6TlDtBxfODAwFJsKZljvAPaTLCd_1cNPOiZ8G3IFel5GPuv7_9ZirVeulZ0RWWTYIO5ikFrvNG_nVUuzKG11q6tyMXhYeQRGAy10udnQ6emggtW7vA7ev8GkdQUNBmQasWvZaTdRyTjV88AUiYMgz9g5cu6UYFTCFdgUhoPbaxEd6w1JJP9GUsdIIY9aDayj2Nsf4vuwiM3RpW-YrOJIPlkRuY0XuWFrF37lVi8iIpMsgTO3XoalOg6GCW9TmHEgJkuETyLHYw84zRF40z6fTjDyGp7YChwOinmRcBF6ToVpYxsosAzUk2QfNKa5IjuRdDXEucodw_1ViAENE2m58QPNFWcSZ9FYckBA-uRn4kHffdFATR9Vx1Hh3cPESuDwXh8AzFwFuOLOATaSHkaQfGV6PQHgT7NUKv_k","e":"AQAB"},"attributes":{"enabled":true,"created":1580374751,"updated":1580374751,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '1001' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:18 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "EC-HSM", "attributes": {"enabled": true}, "crv": "P-256"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '66' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: POST + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-hsm-file/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-hsm-file/506c6c4e875b4b55a0d14caf7a978795","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-256","x":"OZ8TOC8k-fa-LTrh68h9ktuIgLOlEokkPzEdqzy6G9U","y":"83Ko0rokwe891ChyLkbCNapq3CX1DHYPDouUH-SQkHs"},"attributes":{"enabled":true,"created":1580374763,"updated":1580374763,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '378' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-hsm-file/506c6c4e875b4b55a0d14caf7a978795","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-256","x":"OZ8TOC8k-fa-LTrh68h9ktuIgLOlEokkPzEdqzy6G9U","y":"83Ko0rokwe891ChyLkbCNapq3CX1DHYPDouUH-SQkHs"},"attributes":{"enabled":true,"created":1580374763,"updated":1580374763,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '378' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256-hsm-file/506c6c4e875b4b55a0d14caf7a978795","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-256","x":"OZ8TOC8k-fa-LTrh68h9ktuIgLOlEokkPzEdqzy6G9U","y":"83Ko0rokwe891ChyLkbCNapq3CX1DHYPDouUH-SQkHs"},"attributes":{"enabled":true,"created":1580374763,"updated":1580374763,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '378' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "EC-HSM", "attributes": {"enabled": true}, "crv": "P-384"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '66' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: POST + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-hsm-file/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-hsm-file/85c9f0f8718747a3b2dbfae7a407f238","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-384","x":"Bk-lYlGX_7z6xzi8P_Z9UqsfIYfEDxVhpiYNxGAI850O7nyXMiliQRcM2_dZmMjo","y":"-wCHzfVnzFO4bts50DacbxS9rgdmF-O_NnXROicX00G1Br6WL9CvDvnjQ-ZEVBFs"},"attributes":{"enabled":true,"created":1580374771,"updated":1580374771,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '420' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-hsm-file/85c9f0f8718747a3b2dbfae7a407f238","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-384","x":"Bk-lYlGX_7z6xzi8P_Z9UqsfIYfEDxVhpiYNxGAI850O7nyXMiliQRcM2_dZmMjo","y":"-wCHzfVnzFO4bts50DacbxS9rgdmF-O_NnXROicX00G1Br6WL9CvDvnjQ-ZEVBFs"},"attributes":{"enabled":true,"created":1580374771,"updated":1580374771,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '420' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p384-hsm-file/85c9f0f8718747a3b2dbfae7a407f238","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-384","x":"Bk-lYlGX_7z6xzi8P_Z9UqsfIYfEDxVhpiYNxGAI850O7nyXMiliQRcM2_dZmMjo","y":"-wCHzfVnzFO4bts50DacbxS9rgdmF-O_NnXROicX00G1Br6WL9CvDvnjQ-ZEVBFs"},"attributes":{"enabled":true,"created":1580374771,"updated":1580374771,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '420' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "EC-HSM", "attributes": {"enabled": true}, "crv": "P-521"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '66' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: POST + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-hsm-file/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-hsm-file/edf4500678aa479393087102b2cab623","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-521","x":"Ab05SXv0JjNq_a7RDKxLNHe1-rnmNi0ZQUvyU6NSxx57YmA7hDAI_AblvAMOh2AYtKhGMF8en3YdP92p4iyZMZUW","y":"AAEd1ecd56iFkG9OWCvDQLQvl9VroqWwN_bnm246fujZc2V6wnt4wE-U2aG33sgwm2S5ulSgFAxGEnJSLO8hKWQ6"},"attributes":{"enabled":true,"created":1580374780,"updated":1580374780,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '468' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:39 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-hsm-file/edf4500678aa479393087102b2cab623","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-521","x":"Ab05SXv0JjNq_a7RDKxLNHe1-rnmNi0ZQUvyU6NSxx57YmA7hDAI_AblvAMOh2AYtKhGMF8en3YdP92p4iyZMZUW","y":"AAEd1ecd56iFkG9OWCvDQLQvl9VroqWwN_bnm246fujZc2V6wnt4wE-U2aG33sgwm2S5ulSgFAxGEnJSLO8hKWQ6"},"attributes":{"enabled":true,"created":1580374780,"updated":1580374780,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '468' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:43 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p521-hsm-file/edf4500678aa479393087102b2cab623","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-521","x":"Ab05SXv0JjNq_a7RDKxLNHe1-rnmNi0ZQUvyU6NSxx57YmA7hDAI_AblvAMOh2AYtKhGMF8en3YdP92p4iyZMZUW","y":"AAEd1ecd56iFkG9OWCvDQLQvl9VroqWwN_bnm246fujZc2V6wnt4wE-U2aG33sgwm2S5ulSgFAxGEnJSLO8hKWQ6"},"attributes":{"enabled":true,"created":1580374780,"updated":1580374780,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '468' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:45 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "EC-HSM", "attributes": {"enabled": true}, "crv": "P-256K"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '67' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: POST + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-hsm-file/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-hsm-file/d5a7feafdd0146cd87c5437082efb109","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-256K","x":"z7GuRLX2dL-b2barIcsuHT45QuBPXfjMYmoGA7Mvrbc","y":"u3IQXnCFVg4iknY_ufWHdjRsyN557p2cPF3sdY-tAPI"},"attributes":{"enabled":true,"created":1580374789,"updated":1580374789,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '380' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-hsm-file/d5a7feafdd0146cd87c5437082efb109","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-256K","x":"z7GuRLX2dL-b2barIcsuHT45QuBPXfjMYmoGA7Mvrbc","y":"u3IQXnCFVg4iknY_ufWHdjRsyN557p2cPF3sdY-tAPI"},"attributes":{"enabled":true,"created":1580374789,"updated":1580374789,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '380' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:51 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/ec-p256k-hsm-file/d5a7feafdd0146cd87c5437082efb109","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-256K","x":"z7GuRLX2dL-b2barIcsuHT45QuBPXfjMYmoGA7Mvrbc","y":"u3IQXnCFVg4iknY_ufWHdjRsyN557p2cPF3sdY-tAPI"},"attributes":{"enabled":true,"created":1580374789,"updated":1580374789,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '380' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:54 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "RSA-HSM", "key_size": 2048, "attributes": {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '69' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: POST + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-hsm-file/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-hsm-file/c6528444b8594389aa3947139cfb2b14","kty":"RSA-HSM","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"m8UKXrMfoxeCpQ0jRblqbrUxz5HarU2UfBPvkdHvI0wjvGmiqj0_a-C_-JVyhmVXcnWKGGXlcPP2esL5iHWfo-uJ7LlFWSVTiky8BDFqgQvcecu8ODMsPnDIDhs66M8ut2x7fF_Mz33kRZqQGOAxse4h2eBbku0DiZSLlnQMqC01y979LVjZyw9jIzU_YV17RY0GsHv20yeN12QS8Twi1DV3mtU_YzsWCJVYuRvJvfJgerHJ9bPhykV7RhcNain9NOd--nDQt5gJ2mVoT_PQEVxe2sn2c6mF11QsGFLO05RZ26KOZ4UHOpoiypqybZIxLFf9ToCDC_kSUaeRUQEYtw","e":"AAEAAQ"},"attributes":{"enabled":true,"created":1580374796,"updated":1580374796,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '670' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:56 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-hsm-file/c6528444b8594389aa3947139cfb2b14","kty":"RSA-HSM","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"m8UKXrMfoxeCpQ0jRblqbrUxz5HarU2UfBPvkdHvI0wjvGmiqj0_a-C_-JVyhmVXcnWKGGXlcPP2esL5iHWfo-uJ7LlFWSVTiky8BDFqgQvcecu8ODMsPnDIDhs66M8ut2x7fF_Mz33kRZqQGOAxse4h2eBbku0DiZSLlnQMqC01y979LVjZyw9jIzU_YV17RY0GsHv20yeN12QS8Twi1DV3mtU_YzsWCJVYuRvJvfJgerHJ9bPhykV7RhcNain9NOd--nDQt5gJ2mVoT_PQEVxe2sn2c6mF11QsGFLO05RZ26KOZ4UHOpoiypqybZIxLFf9ToCDC_kSUaeRUQEYtw","e":"AAEAAQ"},"attributes":{"enabled":true,"created":1580374796,"updated":1580374796,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '670' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 08:59:58 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-2048-hsm-file/c6528444b8594389aa3947139cfb2b14","kty":"RSA-HSM","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"m8UKXrMfoxeCpQ0jRblqbrUxz5HarU2UfBPvkdHvI0wjvGmiqj0_a-C_-JVyhmVXcnWKGGXlcPP2esL5iHWfo-uJ7LlFWSVTiky8BDFqgQvcecu8ODMsPnDIDhs66M8ut2x7fF_Mz33kRZqQGOAxse4h2eBbku0DiZSLlnQMqC01y979LVjZyw9jIzU_YV17RY0GsHv20yeN12QS8Twi1DV3mtU_YzsWCJVYuRvJvfJgerHJ9bPhykV7RhcNain9NOd--nDQt5gJ2mVoT_PQEVxe2sn2c6mF11QsGFLO05RZ26KOZ4UHOpoiypqybZIxLFf9ToCDC_kSUaeRUQEYtw","e":"AAEAAQ"},"attributes":{"enabled":true,"created":1580374796,"updated":1580374796,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '670' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 09:00:01 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "RSA-HSM", "key_size": 3072, "attributes": {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '69' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: POST + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-hsm-file/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-hsm-file/0e87754c9f854c8880a1e60ef3611727","kty":"RSA-HSM","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"poRsk03syfWxAhoRwPkjMHH-inHG5I0t8Ebi37ybQZ0IriqK7AH5JFVje16Lqq008IhJrBCQfv5B_Io6NuEe5ac4jHJQHADe2laOXxduyuI_N-frPXF4-AJ4oBHVZVtdLBOY2hw93F7pFR37ZtvifdRGKAXgeP841bArjQIyR7SWfKR906gS2hUFBM_htBPOkGfPupcn6fRfYmbU04k4r5-1AdtQNPVe8pwThMQ5AIDBtfjD_W1sT_Y6OEdmaiiGmASGCYiq6-CRWa3eVR18MvuCe30QghzEKwhlyDDzGv5ueXvFQa0oTL44b8lWfztBisGzQCsU_R6O9KZlm7QZaV4RMaxD6AqTE13wr7BgccEzu9FdXKUwNGmf8K--DyUDB5dA2AXES9TUIF-g4owfNPYfNAFbND8NlfWm21dn4j_3VqxSoi2-rRvd6dXKH1z8Cf5XX7DBb4At2SXRSeNEeU0rcxvlAf1nj9PTlll-CsPbiP_Y7TU9gJF6DI398EUR","e":"AAEAAQ"},"attributes":{"enabled":true,"created":1580374804,"updated":1580374804,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '840' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 09:00: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-hsm-file/0e87754c9f854c8880a1e60ef3611727","kty":"RSA-HSM","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"poRsk03syfWxAhoRwPkjMHH-inHG5I0t8Ebi37ybQZ0IriqK7AH5JFVje16Lqq008IhJrBCQfv5B_Io6NuEe5ac4jHJQHADe2laOXxduyuI_N-frPXF4-AJ4oBHVZVtdLBOY2hw93F7pFR37ZtvifdRGKAXgeP841bArjQIyR7SWfKR906gS2hUFBM_htBPOkGfPupcn6fRfYmbU04k4r5-1AdtQNPVe8pwThMQ5AIDBtfjD_W1sT_Y6OEdmaiiGmASGCYiq6-CRWa3eVR18MvuCe30QghzEKwhlyDDzGv5ueXvFQa0oTL44b8lWfztBisGzQCsU_R6O9KZlm7QZaV4RMaxD6AqTE13wr7BgccEzu9FdXKUwNGmf8K--DyUDB5dA2AXES9TUIF-g4owfNPYfNAFbND8NlfWm21dn4j_3VqxSoi2-rRvd6dXKH1z8Cf5XX7DBb4At2SXRSeNEeU0rcxvlAf1nj9PTlll-CsPbiP_Y7TU9gJF6DI398EUR","e":"AAEAAQ"},"attributes":{"enabled":true,"created":1580374804,"updated":1580374804,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '840' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 09:00: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-3072-hsm-file/0e87754c9f854c8880a1e60ef3611727","kty":"RSA-HSM","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"poRsk03syfWxAhoRwPkjMHH-inHG5I0t8Ebi37ybQZ0IriqK7AH5JFVje16Lqq008IhJrBCQfv5B_Io6NuEe5ac4jHJQHADe2laOXxduyuI_N-frPXF4-AJ4oBHVZVtdLBOY2hw93F7pFR37ZtvifdRGKAXgeP841bArjQIyR7SWfKR906gS2hUFBM_htBPOkGfPupcn6fRfYmbU04k4r5-1AdtQNPVe8pwThMQ5AIDBtfjD_W1sT_Y6OEdmaiiGmASGCYiq6-CRWa3eVR18MvuCe30QghzEKwhlyDDzGv5ueXvFQa0oTL44b8lWfztBisGzQCsU_R6O9KZlm7QZaV4RMaxD6AqTE13wr7BgccEzu9FdXKUwNGmf8K--DyUDB5dA2AXES9TUIF-g4owfNPYfNAFbND8NlfWm21dn4j_3VqxSoi2-rRvd6dXKH1z8Cf5XX7DBb4At2SXRSeNEeU0rcxvlAf1nj9PTlll-CsPbiP_Y7TU9gJF6DI398EUR","e":"AAEAAQ"},"attributes":{"enabled":true,"created":1580374804,"updated":1580374804,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '840' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 09:00: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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "RSA-HSM", "key_size": 4096, "attributes": {"enabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '69' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: POST + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-hsm-file/create?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-hsm-file/c1286844380d460783dddff845a4130d","kty":"RSA-HSM","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"yoC1IrR_SGFy7_IzrYb1qt8SRcbRK_4NWt0rmlobs_cxUXmcejEmA6FDhbxLXq_wqflQNg14wR4gwR_uPDsATXkHJQF2xFPqYsDiSXdDUHRqK2GhGrTr-vOkZ04QHe0sAWj24Kjl92qaunER7UgOQEHVkN-U98gw2IeY4RQ4qZ6BZc1xsYlOVrLsAhZZmTJDE2ev7P7dIDD5822T3HV37vUK6Jp1WVREAA5Qo_4Bh3bSe3MYcGE2APAJj5iedHeTB8EIxY31OoYMiy7ic8PK-oMTbdtIEQURcAwxdN1VSaI_r2u2v6WV8Y7zAw_S90o6vbn7jeXPfBMByYQAdCnKQoK7P3ubx4fTqjAEJHAFDSUC0hEErEgoJAtAOxfdlgp6xoYggJxS2LlaKi3k8KlKjxXMV3TP9dDzNQkPExIiEB3Hl_Gjb-GMhhn006lbP7YwUfoQlaLtE178J4yLAGzWOKmWsAmLxoVC2AGtw7bwgcchc3JxqnQYukK7PZRQ8zQn8jCl8IbRrGEJzWjdN6J_kh2NxaUspM9JYXCL15I-AGe32Vb9AF-HTXL9WhbLSXUvJ0hXiKjGlz3TpRwbV0pJX-w87oZ00iMyK2dDAZs51w0UQVF7KEBksOo3D5y2I8fkIYW6OBL9HVUHgHDsf-S7Bc0EjRvvap6exOOH7-OM8uE","e":"AAEAAQ"},"attributes":{"enabled":true,"created":1580374813,"updated":1580374813,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '1011' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 09:00:14 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-hsm-file/c1286844380d460783dddff845a4130d","kty":"RSA-HSM","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"yoC1IrR_SGFy7_IzrYb1qt8SRcbRK_4NWt0rmlobs_cxUXmcejEmA6FDhbxLXq_wqflQNg14wR4gwR_uPDsATXkHJQF2xFPqYsDiSXdDUHRqK2GhGrTr-vOkZ04QHe0sAWj24Kjl92qaunER7UgOQEHVkN-U98gw2IeY4RQ4qZ6BZc1xsYlOVrLsAhZZmTJDE2ev7P7dIDD5822T3HV37vUK6Jp1WVREAA5Qo_4Bh3bSe3MYcGE2APAJj5iedHeTB8EIxY31OoYMiy7ic8PK-oMTbdtIEQURcAwxdN1VSaI_r2u2v6WV8Y7zAw_S90o6vbn7jeXPfBMByYQAdCnKQoK7P3ubx4fTqjAEJHAFDSUC0hEErEgoJAtAOxfdlgp6xoYggJxS2LlaKi3k8KlKjxXMV3TP9dDzNQkPExIiEB3Hl_Gjb-GMhhn006lbP7YwUfoQlaLtE178J4yLAGzWOKmWsAmLxoVC2AGtw7bwgcchc3JxqnQYukK7PZRQ8zQn8jCl8IbRrGEJzWjdN6J_kh2NxaUspM9JYXCL15I-AGe32Vb9AF-HTXL9WhbLSXUvJ0hXiKjGlz3TpRwbV0pJX-w87oZ00iMyK2dDAZs51w0UQVF7KEBksOo3D5y2I8fkIYW6OBL9HVUHgHDsf-S7Bc0EjRvvap6exOOH7-OM8uE","e":"AAEAAQ"},"attributes":{"enabled":true,"created":1580374813,"updated":1580374813,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '1011' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 09:00:15 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - python/3.7.6 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.2 azure-keyvault/7.0 + Azure-SDK-For-Python + accept-language: + - en-US + method: GET + uri: https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-hsm-file/?api-version=7.0 + response: + body: + string: '{"key":{"kid":"https://cli-test-keyvault-000002.vault.azure.net/keys/rsa-4096-hsm-file/c1286844380d460783dddff845a4130d","kty":"RSA-HSM","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"yoC1IrR_SGFy7_IzrYb1qt8SRcbRK_4NWt0rmlobs_cxUXmcejEmA6FDhbxLXq_wqflQNg14wR4gwR_uPDsATXkHJQF2xFPqYsDiSXdDUHRqK2GhGrTr-vOkZ04QHe0sAWj24Kjl92qaunER7UgOQEHVkN-U98gw2IeY4RQ4qZ6BZc1xsYlOVrLsAhZZmTJDE2ev7P7dIDD5822T3HV37vUK6Jp1WVREAA5Qo_4Bh3bSe3MYcGE2APAJj5iedHeTB8EIxY31OoYMiy7ic8PK-oMTbdtIEQURcAwxdN1VSaI_r2u2v6WV8Y7zAw_S90o6vbn7jeXPfBMByYQAdCnKQoK7P3ubx4fTqjAEJHAFDSUC0hEErEgoJAtAOxfdlgp6xoYggJxS2LlaKi3k8KlKjxXMV3TP9dDzNQkPExIiEB3Hl_Gjb-GMhhn006lbP7YwUfoQlaLtE178J4yLAGzWOKmWsAmLxoVC2AGtw7bwgcchc3JxqnQYukK7PZRQ8zQn8jCl8IbRrGEJzWjdN6J_kh2NxaUspM9JYXCL15I-AGe32Vb9AF-HTXL9WhbLSXUvJ0hXiKjGlz3TpRwbV0pJX-w87oZ00iMyK2dDAZs51w0UQVF7KEBksOo3D5y2I8fkIYW6OBL9HVUHgHDsf-S7Bc0EjRvvap6exOOH7-OM8uE","e":"AAEAAQ"},"attributes":{"enabled":true,"created":1580374813,"updated":1580374813,"recoveryLevel":"Purgeable"}}' + headers: + cache-control: + - no-cache + content-length: + - '1011' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 30 Jan 2020 09:00:17 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=101.69.200.36;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - eastus2 + x-ms-keyvault-service-version: + - 1.1.0.891 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +version: 1 diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/test_keyvault_commands.py b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/test_keyvault_commands.py index 0dd5c197452..bc19540c892 100644 --- a/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/test_keyvault_commands.py +++ b/src/azure-cli/azure/cli/command_modules/keyvault/tests/latest/test_keyvault_commands.py @@ -28,6 +28,7 @@ def _asn1_to_iso8601(asn1_date): TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) +KEYS_DIR = os.path.join(TEST_DIR, 'keys') def _create_keyvault(test, kwargs, additional_args=None): @@ -237,6 +238,102 @@ def test_keyvault_key(self, resource_group): checks=[self.check('key.kty', 'EC'), self.check('key.crv', 'P-521')]) +class KeyVaultKeyDownloadScenarioTest(ScenarioTest): + @ResourceGroupPreparer(name_prefix='cli_test_kv_key_download') + def test_keyvault_key_download(self, resource_group): + import OpenSSL.crypto + + self.kwargs.update({ + 'kv': self.create_random_name('cli-test-keyvault-', 24), + 'loc': 'eastus2' + }) + _create_keyvault(self, self.kwargs) + + key_names = [ + 'ec-p256.pem', + 'ec-p384.pem', + 'ec-p521.pem', + 'ec-p256k.pem', + 'rsa-2048.pem', + 'rsa-3072.pem', + 'rsa-4096.pem', + 'ec-p256-hsm.pem', + 'ec-p384-hsm.pem', + 'ec-p521-hsm.pem', + 'ec-p256k-hsm.pem', + 'rsa-2048-hsm.pem', + 'rsa-3072-hsm.pem', + 'rsa-4096-hsm.pem' + ] + + # RSA Keys + # * Generate: `openssl genrsa -out rsa-4096.pem 4096` + # * Extract public key: `openssl rsa -in rsa-4096.pem -pubout > rsa-4096.pub.pem` + # * Public key PEM to DER: `openssl rsa -pubin -inform PEM -in rsa-4096.pub.pem -outform DER -out rsa-4096.pub.der` + + # EC Keys + # * Generate: `openssl ecparam -genkey -name secp521r1 -out ec521.key` + # * Extract public key (PEM): `openssl ec -in ec-p521.pem -pubout -out ec-p521.pub.pem` + # * Extract public key (DER): `openssl ec -in ec-p521.pem -pubout -outform DER -out ec-p521.pub.der` + + for key_name in key_names: + var_name = key_name.split('.')[0] + '-file' + if 'hsm' in key_name: # Should be generated + if key_name.startswith('rsa'): + rsa_size = key_name.split('-')[1] + self.cmd('keyvault key create --vault-name {{kv}} -n {var_name}' + ' -p hsm --kty RSA-HSM --size {rsa_size}'.format(var_name=var_name, rsa_size=rsa_size)) + elif key_name.startswith('ec'): + ec_curve = key_name.split('-')[1] + curve_names = { + 'p256': 'P-256', + 'p384': 'P-384', + 'p521': 'P-521', + 'p256k': 'P-256K' + } + self.cmd('keyvault key create --vault-name {{kv}} -n {var_name}' + ' -p hsm --kty EC-HSM --curve {curve_name}' + .format(var_name=var_name, curve_name=curve_names[ec_curve])) + else: # Should be imported (Have already been generated offline) + self.kwargs[var_name] = os.path.join(KEYS_DIR, key_name) + self.cmd('keyvault key import --vault-name {{kv}} -n {var_name} --pem-file "{{{var_name}}}"' + .format(var_name=var_name)) + + der_downloaded_filename = var_name + '.der' + pem_downloaded_filename = var_name + '.pem' + + try: + self.cmd('keyvault key download --vault-name {{kv}} -n {var_name} -f "{filename}" -e DER' + .format(var_name=var_name, filename=der_downloaded_filename)) + self.cmd('keyvault key download --vault-name {{kv}} -n {var_name} -f "{filename}" -e PEM' + .format(var_name=var_name, filename=pem_downloaded_filename)) + + if 'hsm' in key_name: # TODO: Currently we haven't found a good way to verify online generated keys + continue + + expected_pem = [] + pem_pub_filename = os.path.join(KEYS_DIR, key_name.split('.')[0] + '.pub.pem') + with open(pem_pub_filename, 'r') as pem_file: + expected_pem = pem_file.readlines() + expected_pem = ''.join(expected_pem).replace('\n', '') + + def verify(path, file_type): + with open(path, 'rb') as f: + pub_key = OpenSSL.crypto.load_publickey(file_type, f.read()) + actual_pem = OpenSSL.crypto.dump_publickey(OpenSSL.crypto.FILETYPE_PEM, pub_key) + if isinstance(actual_pem, bytes): + actual_pem = actual_pem.decode("utf-8") + self.assertIn(expected_pem, actual_pem.replace('\n', '')) + + verify(der_downloaded_filename, OpenSSL.crypto.FILETYPE_ASN1) + verify(pem_downloaded_filename, OpenSSL.crypto.FILETYPE_PEM) + finally: + if os.path.exists(der_downloaded_filename): + os.remove(der_downloaded_filename) + if os.path.exists(pem_downloaded_filename): + os.remove(pem_downloaded_filename) + + class KeyVaultSecretSoftDeleteScenarioTest(ScenarioTest): @ResourceGroupPreparer(name_prefix='cli_test_keyvault_secret') def test_keyvault_secret_soft_delete(self, resource_group): @@ -266,7 +363,6 @@ def test_keyvault_secret_soft_delete(self, resource_group): class KeyVaultSecretScenarioTest(ScenarioTest): - def _test_download_secret(self): secret_path = os.path.join(TEST_DIR, 'test_secret.txt') self.kwargs['src_path'] = secret_path