1# coding=utf-8 2# -------------------------------------------------------------------------- 3# Copyright (c) Microsoft Corporation. All rights reserved. 4# Licensed under the MIT License. See License.txt in the project root for 5# license information. 6# 7# Code generated by Microsoft (R) AutoRest Code Generator. 8# Changes may cause incorrect behavior and will be lost if the code is 9# regenerated. 10# -------------------------------------------------------------------------- 11 12from msrest.serialization import Model 13 14 15class JsonWebKey(Model): 16 """As of http://tools.ietf.org/html/draft-ietf-jose-json-web-key-18. 17 18 :param kid: Key identifier. 19 :type kid: str 20 :param kty: JsonWebKey Key Type (kty), as defined in 21 https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. 22 Possible values include: 'EC', 'EC-HSM', 'RSA', 'RSA-HSM', 'oct' 23 :type kty: str or ~azure.keyvault.v7_0.models.JsonWebKeyType 24 :param key_ops: 25 :type key_ops: list[str] 26 :param n: RSA modulus. 27 :type n: bytes 28 :param e: RSA public exponent. 29 :type e: bytes 30 :param d: RSA private exponent, or the D component of an EC private key. 31 :type d: bytes 32 :param dp: RSA private key parameter. 33 :type dp: bytes 34 :param dq: RSA private key parameter. 35 :type dq: bytes 36 :param qi: RSA private key parameter. 37 :type qi: bytes 38 :param p: RSA secret prime. 39 :type p: bytes 40 :param q: RSA secret prime, with p < q. 41 :type q: bytes 42 :param k: Symmetric key. 43 :type k: bytes 44 :param t: HSM Token, used with 'Bring Your Own Key'. 45 :type t: bytes 46 :param crv: Elliptic curve name. For valid values, see 47 JsonWebKeyCurveName. Possible values include: 'P-256', 'P-384', 'P-521', 48 'P-256K' 49 :type crv: str or ~azure.keyvault.v7_0.models.JsonWebKeyCurveName 50 :param x: X component of an EC public key. 51 :type x: bytes 52 :param y: Y component of an EC public key. 53 :type y: bytes 54 """ 55 56 _attribute_map = { 57 'kid': {'key': 'kid', 'type': 'str'}, 58 'kty': {'key': 'kty', 'type': 'str'}, 59 'key_ops': {'key': 'key_ops', 'type': '[str]'}, 60 'n': {'key': 'n', 'type': 'base64'}, 61 'e': {'key': 'e', 'type': 'base64'}, 62 'd': {'key': 'd', 'type': 'base64'}, 63 'dp': {'key': 'dp', 'type': 'base64'}, 64 'dq': {'key': 'dq', 'type': 'base64'}, 65 'qi': {'key': 'qi', 'type': 'base64'}, 66 'p': {'key': 'p', 'type': 'base64'}, 67 'q': {'key': 'q', 'type': 'base64'}, 68 'k': {'key': 'k', 'type': 'base64'}, 69 't': {'key': 'key_hsm', 'type': 'base64'}, 70 'crv': {'key': 'crv', 'type': 'str'}, 71 'x': {'key': 'x', 'type': 'base64'}, 72 'y': {'key': 'y', 'type': 'base64'}, 73 } 74 75 def __init__(self, *, kid: str=None, kty=None, key_ops=None, n: bytes=None, e: bytes=None, d: bytes=None, dp: bytes=None, dq: bytes=None, qi: bytes=None, p: bytes=None, q: bytes=None, k: bytes=None, t: bytes=None, crv=None, x: bytes=None, y: bytes=None, **kwargs) -> None: 76 super(JsonWebKey, self).__init__(**kwargs) 77 self.kid = kid 78 self.kty = kty 79 self.key_ops = key_ops 80 self.n = n 81 self.e = e 82 self.d = d 83 self.dp = dp 84 self.dq = dq 85 self.qi = qi 86 self.p = p 87 self.q = q 88 self.k = k 89 self.t = t 90 self.crv = crv 91 self.x = x 92 self.y = y 93