# JSON Web Key

JSON Web Key.

class `josepy.jwk.``JWK`(**kwargs)

  Bases: `josepy.json_util.TypedJSONObjectWithFields`

  JSON Web Key.

  `cryptography_key_types` = ()

    Subclasses should override.

  `required` = NotImplemented

    Required members of public key’s representation as defined by JWK/JWA.

  `thumbprint`(hash_function=<class 'cryptography.hazmat.primitives.hashes.SHA256'>)

    Compute JWK Thumbprint.

    https://tools.ietf.org/html/rfc7638

    Returns: | bytes

  `public_key`()

    Generate JWK with public key.

    For symmetric cryptosystems, this would return `self`.

  classmethod `load`(data, password=None, backend=None)

    Load serialized key as JWK.

    Parameters:

    - data (str) – Public or private key serialized as PEM or DER.
    - password (str) – Optional password.
    - backend – A `PEMSerializationBackend` and `DERSerializationBackend` provider.

    Raises: | errors.Error – if unable to deserialize, or unsupported JWK algorithm
    Returns: | JWK of an appropriate type.
    Return type: | `JWK`

class `josepy.jwk.``JWKES`(**kwargs)

  Bases: `josepy.jwk.JWK`

  ES JWK.

  Warning

  This is not yet implemented!

class `josepy.jwk.``JWKOct`(**kwargs)

  Bases: `josepy.jwk.JWK`

  Symmetric JWK.

class `josepy.jwk.``JWKRSA`(*args, **kwargs)

  Bases: `josepy.jwk.JWK`

  RSA JWK.

  Variables: | key – `RSAPrivateKey` or `RSAPublicKey` wrapped in `ComparableRSAKey`

  classmethod `_encode_param`(data)

    Encode Base64urlUInt.

    Return type: | unicode

  classmethod `_decode_param`(data)

    Decode Base64urlUInt.