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). Possible values include: 'EC', 21 'EC-HSM', 'RSA', 'RSA-HSM', 'oct' 22 :type kty: str or ~azure.keyvault.v2016_10_01.models.JsonWebKeyType 23 :param key_ops: 24 :type key_ops: list[str] 25 :param n: RSA modulus. 26 :type n: bytes 27 :param e: RSA public exponent. 28 :type e: bytes 29 :param d: RSA private exponent, or the D component of an EC private key. 30 :type d: bytes 31 :param dp: RSA private key parameter. 32 :type dp: bytes 33 :param dq: RSA private key parameter. 34 :type dq: bytes 35 :param qi: RSA private key parameter. 36 :type qi: bytes 37 :param p: RSA secret prime. 38 :type p: bytes 39 :param q: RSA secret prime, with p < q. 40 :type q: bytes 41 :param k: Symmetric key. 42 :type k: bytes 43 :param t: HSM Token, used with 'Bring Your Own Key'. 44 :type t: bytes 45 :param crv: Elliptic curve name. For valid values, see 46 JsonWebKeyCurveName. Possible values include: 'P-256', 'P-384', 'P-521', 47 'SECP256K1' 48 :type crv: str or ~azure.keyvault.v2016_10_01.models.JsonWebKeyCurveName 49 :param x: X component of an EC public key. 50 :type x: bytes 51 :param y: Y component of an EC public key. 52 :type y: bytes 53 """ 54 55 _attribute_map = { 56 'kid': {'key': 'kid', 'type': 'str'}, 57 'kty': {'key': 'kty', 'type': 'str'}, 58 'key_ops': {'key': 'key_ops', 'type': '[str]'}, 59 'n': {'key': 'n', 'type': 'base64'}, 60 'e': {'key': 'e', 'type': 'base64'}, 61 'd': {'key': 'd', 'type': 'base64'}, 62 'dp': {'key': 'dp', 'type': 'base64'}, 63 'dq': {'key': 'dq', 'type': 'base64'}, 64 'qi': {'key': 'qi', 'type': 'base64'}, 65 'p': {'key': 'p', 'type': 'base64'}, 66 'q': {'key': 'q', 'type': 'base64'}, 67 'k': {'key': 'k', 'type': 'base64'}, 68 't': {'key': 'key_hsm', 'type': 'base64'}, 69 'crv': {'key': 'crv', 'type': 'str'}, 70 'x': {'key': 'x', 'type': 'base64'}, 71 'y': {'key': 'y', 'type': 'base64'}, 72 } 73 74 def __init__(self, **kwargs): 75 super(JsonWebKey, self).__init__(**kwargs) 76 self.kid = kwargs.get('kid', None) 77 self.kty = kwargs.get('kty', None) 78 self.key_ops = kwargs.get('key_ops', None) 79 self.n = kwargs.get('n', None) 80 self.e = kwargs.get('e', None) 81 self.d = kwargs.get('d', None) 82 self.dp = kwargs.get('dp', None) 83 self.dq = kwargs.get('dq', None) 84 self.qi = kwargs.get('qi', None) 85 self.p = kwargs.get('p', None) 86 self.q = kwargs.get('q', None) 87 self.k = kwargs.get('k', None) 88 self.t = kwargs.get('t', None) 89 self.crv = kwargs.get('crv', None) 90 self.x = kwargs.get('x', None) 91 self.y = kwargs.get('y', None) 92