Skip to main content
# PyJWE
[JSON Web Encryption](https://tools.ietf.org/html/rfc7516) implementation in Python

[![PyPI version](https://badge.fury.io/py/PyJWE.svg)](https://badge.fury.io/py/PyJWE)
[![Build Status](https://travis-ci.org/chrisseto/pyjwe.svg?branch=master)](https://travis-ci.org/chrisseto/pyjwe)


## Basic Usage

```python
import jwe

key = b'MySecretKey'
salt = b'pepper'

derived_key = jwe.kdf(key, salt)

encoded = jwe.encrypt(b'SuperSecretData', derived_key)

print(encoded)

jwe.decrypt(encoded, derived_key) # b'SuperSecretData'
```


## FAQ

### What is the kdf function? Should I use it? Do I have to use it?

`jwe.kdf` is a very simple [key derivation function](https://en.wikipedia.org/wiki/Key_derivation_function) that uses the [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2).

It is mostly there for the purpose of [key stretching](https://en.wikipedia.org/wiki/Key_stretching) so that users' keys do not have to be the perfect length for AES256.

You do not have to use it, but if you do not your key must be exactly 256 bits.


### Why is `dir` the only algorithm supported?

Because [key wrapping](https://en.wikipedia.org/wiki/Key_Wrap) is more or less [completely useless](https://security.stackexchange.com/questions/40052/when-do-i-use-nist-aes-key-wrapping).


### Why is AES 256 GCM the only encryption methd?

It met my needs and I've yet to need another method.
Feel free to submit an issue if you would like another method implemented.

Metadata

Release files for PyJWE 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyJWE 1.0.0
File Size Uploaded
PyJWE-1.0.0.tar.gz 8.1 kB Details

Release files / PyJWE-1.0.0.tar.gz

Download URL PyJWE-1.0.0.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e3b3de7be4fcc260e5f1a47ead9c9a9211d8ce98f9e1d88d9a7225198aa9ce47
BLAKE2b-256 checksum
How to use checksums
59f99d8f24fdcae49fcb18607bdde460fdfc80a55721b86014d0c2fb617ee8b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

0.1.6

2 release files

0.1.5

1 release file

0.1.4

2 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page