# JSON Web Signature

JOSE Web Signature.

class `acme.jose.jws.``MediaType`

  Bases: `object`

  MediaType field encoder/decoder.

  `PREFIX` = 'application/'

    MIME Media Type and Content Type prefix.

  classmethod `decode`(value)

    Decoder.

  classmethod `encode`(value)

    Encoder.

class `acme.jose.jws.``Header`(**kwargs)

  Bases: `acme.jose.json_util.JSONObjectWithFields`

  JOSE Header.

  Warning

  This class supports only Registered Header Parameter Names (as defined in section 4.1 of the protocol). If you need Public Header Parameter Names (4.2) or Private Header Parameter Names (4.3), you must subclass and override `from_json()` and `to_partial_json()` appropriately.

  Warning

  This class does not support any extensions through the “crit” (Critical) Header Parameter (4.1.11) and as a conforming implementation, `from_json()` treats its occurrence as an error. Please subclass if you seek for a different behaviour.

  Variables:

  - x5tS256 – “x5t#S256”
  - typ (str) – MIME Media Type, inc. `MediaType.PREFIX`.
  - cty (str) – Content-Type, inc. `MediaType.PREFIX`.

  `not_omitted`()

    Fields that would not be omitted in the JSON object.

  `find_key`()

    Find key based on header.

    Todo

    Supports only “jwk” header parameter lookup.

    Returns: | (Public) key found in the header.
    Return type: | JWK
    Raises: | acme.jose.errors.Error – if key could not be found

class `acme.jose.jws.``Signature`(**kwargs)

  Bases: `acme.jose.json_util.JSONObjectWithFields`

  JWS Signature.

  Variables:

  - combined – Combined Header (protected and unprotected, `Header`).
  - protected (unicode) – JWS protected header (Jose Base-64 decoded).
  - header – JWS Unprotected Header (`Header`).
  - signature (str) – The signature.

  `header_cls`

    alias of `Header`

  `verify`(payload, key=None)

    Verify.

    Parameters: | key (JWK) – Key used for verification.

  classmethod `sign`(payload, key, alg, include_jwk=True, protect=frozenset([]), **kwargs)

    Sign.

    Parameters: | key (JWK) – Key for signature.

class `acme.jose.jws.``JWS`(**kwargs)

  Bases: `acme.jose.json_util.JSONObjectWithFields`

  JSON Web Signature.

  Variables:

  - payload (str) – JWS Payload.
  - signature (str) – JWS Signatures.

  `signature_cls`

    alias of `Signature`

  `verify`(key=None)

    Verify.

  classmethod `sign`(payload, **kwargs)

    Sign.

  `signature`

    Get a singleton signature.

    Return type: | `signature_cls`

  `to_compact`()

    Compact serialization.

    Return type: | bytes

  classmethod `from_compact`(compact)

    Compact deserialization.

    Parameters: | compact (bytes) –

class `acme.jose.jws.``CLI`

  Bases: `object`

  JWS CLI.

  classmethod `sign`(args)

    Sign.

  classmethod `verify`(args)

    Verify.

  classmethod `run`(args=['-N', '-bhtml', 'docs/', 'build/html'])

    Parse arguments and sign/verify.