JSON Web Algorithms

JSON Web Algorithms.


class josepy.jwa.JWA[source]

JSON Web Algorithm.

class josepy.jwa.JWASignature(name: str)[source]

Base class for JSON Web Signature Algorithms.

classmethod register(signature_cls: JWASignature) JWASignature[source]

Register class for JSON deserialization.

to_partial_json() Any[source]

Partially serialize.

Following the example, partial serialization means the following:

assert isinstance(Bar().to_partial_json()[0], Foo)
assert isinstance(Bar().to_partial_json()[1], Foo)

# in particular...
assert Bar().to_partial_json() != ['foo', 'foo']

josepy.errors.SerializationError – in case of any serialization error.


Partially serializable object.

classmethod from_json(jobj: Any) JWASignature[source]

Deserialize a decoded JSON document.


jobj – Python object, composed of only other basic data types, as decoded from JSON document. Not necessarily dict (as decoded from “JSON object” document).


josepy.errors.DeserializationError – if decoding was unsuccessful, e.g. in case of unparseable X509 certificate, or wrong padding in JOSE base64 encoded string, etc.

abstract sign(key: Any, msg: bytes) bytes[source]

Sign the msg using key.

abstract verify(key: Any, msg: bytes, sig: bytes) bool[source]

Verify the msg and sig using key.

josepy.jwa.HS256 = HS256

HMAC using SHA-256

josepy.jwa.HS384 = HS384

HMAC using SHA-384

josepy.jwa.HS512 = HS512

HMAC using SHA-512

josepy.jwa.RS256 = RS256

RSASSA-PKCS-v1_5 using SHA-256

josepy.jwa.RS384 = RS384

RSASSA-PKCS-v1_5 using SHA-384

josepy.jwa.RS512 = RS512

RSASSA-PKCS-v1_5 using SHA-512

josepy.jwa.PS256 = PS256

RSASSA-PSS using SHA-256 and MGF1 with SHA-256

josepy.jwa.PS384 = PS384

RSASSA-PSS using SHA-384 and MGF1 with SHA-384

josepy.jwa.PS512 = PS512

RSASSA-PSS using SHA-512 and MGF1 with SHA-512

josepy.jwa.ES256 = ES256

ECDSA using P-256 and SHA-256

josepy.jwa.ES384 = ES384

ECDSA using P-384 and SHA-384

josepy.jwa.ES512 = ES512

ECDSA using P-521 and SHA-512