Welcome to Python CWT¶
Python CWT is a CBOR Web Token (CWT) and CBOR Object Signing and Encryption (COSE) implementation compliant with various COSE related specifications.
You can install Python CWT with pip:
$ pip install cwt
And then, you can use it as follows:
COSE API:
from cwt import COSE, COSEKey
mac_key = COSEKey.generate_symmetric_key(alg="HS256", kid="01")
# The sender side:
sender = COSE.new()
encoded = sender.encode(
b"Hello world!",
mac_key,
protected={"alg": "HS256"},
unprotected={"kid": "01"},
)
# The recipient side:
recipient = COSE.new()
assert b"Hello world!" == recipient.decode(encoded, mac_key)
CWT API:
import cwt
from cwt import COSEKey
mac_key = COSEKey.generate_symmetric_key(alg="HS256", kid="01")
# The sender side:
token = encode({1: "coaps://as.example", 2: "dajiaji", 7: b"123"}, mac_key)
# The recipient side:
decoded = decode(token, mac_key)
# decoded == {1: 'coaps://as.example', 2: 'dajiaji', 7: b'123', 4: 1620088759, 5: 1620085159, 6: 1620085159}
Index¶
- Installation
- API Reference
encode()
encode_and_mac()
encode_and_sign()
encode_and_encrypt()
decode()
set_private_claim_names()
COSE
COSEAlgs
COSEHeaders
COSEKeyCrvs
COSEKeyOps
COSEKeyParams
COSEKeyTypes
COSETypes
COSEKey
COSEMessage
CWT
CWTClaims
EncryptedCOSEKey
Claims
Recipient
Signer
load_pem_hcert_dsc()
CWTError
EncodeError
DecodeError
VerifyError
COSEKeyInterface
RecipientInterface
- Supported CWT Claims
- Supported COSE Algorithms
- Changes
- Unreleased
- Version 2.7.4
- Version 2.7.3
- Version 2.7.2
- Version 2.7.1
- Version 2.7.0
- Version 2.6.0
- Version 2.5.1
- Version 2.5.0
- Version 2.4.0
- Version 2.3.2
- Version 2.3.1
- Version 2.3.0
- Version 2.2.0
- Version 2.1.0
- Version 2.0.0
- Version 1.6.2
- Version 1.6.1
- Version 1.6.0
- Version 1.5.7
- Version 1.5.6
- Version 1.5.5
- Version 1.5.4
- Version 1.5.3
- Version 1.5.2
- Version 1.5.1
- Version 1.5.0
- Version 1.4.2
- Version 1.4.1
- Version 1.4.0
- Version 1.3.2
- Version 1.3.1
- Version 1.3.0
- Version 1.2.0
- Version 1.1.0
- Version 1.0.0
- Version 0.10.0
- Version 0.9.0
- Version 0.8.1
- Version 0.8.0
- Version 0.7.1
- Version 0.7.0
- Version 0.6.1
- Version 0.6.0
- Version 0.5.0
- Version 0.4.0
- Version 0.3.0
- Version 0.2.3
- Version 0.2.2
- Version 0.2.1
- Version 0.2.0
- Version 0.1.1
- Version 0.1.0