Skip to content

Commit b1ed0d8

Browse files
committed
update docs
1 parent 1fb38eb commit b1ed0d8

1 file changed

Lines changed: 36 additions & 3 deletions

File tree

README.md

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@ python -m paseto
2222
`libsodium` is required, this will check if it is installed on your system. On Ubuntu 20.04 you can get it with `sudo apt install libsodium23`.
2323

2424
# Low level API
25-
Implements PASETO V2 encrypt / decrypt / sign / verify functions,
26-
supports both `v2.local` and `v2.public` messages.
25+
Implements PASETO Version2 and Version4 protocols supporting `v2.public`, `v2.local`, `v4.public` and `v4.local` messages.
26+
Every protocol version provides access to encrypt() / decrypt() and sign() / verify() functions.
27+
2728
Low level API is focuses on solid, high quality, production ready primitives
2829
as specified directly in the [PASETO](https://tools.ietf.org/html/draft-paragon-paseto-rfc-00)
2930
protocol.
3031
See [paseto-spec](https://github.com/paseto-standard/paseto-spec) for protocol details.
3132

32-
# Example use
33+
# Example use with Version2
3334
```python
3435
from paseto.protocol.version2 import encrypt, decrypt
3536

@@ -61,6 +62,38 @@ print(f"plain_text={plain_text}")
6162
print(f"message={message}")
6263
```
6364

65+
# Example use with Version4
66+
```python
67+
from paseto.protocol.version4 import create_symmetric_key, decrypt, encrypt
68+
69+
message = b"this is a secret message" # your data
70+
key = create_symmetric_key() # encryption key
71+
72+
token = encrypt(message, key)
73+
plain_text = decrypt(token, key)
74+
75+
assert plain_text == message
76+
print(f"token={token}")
77+
print(f"plain_text={plain_text}")
78+
print(f"message={message}")
79+
```
80+
81+
### Message signing
82+
```python
83+
from paseto.protocol.version4 import create_asymmetric_key, sign, verify
84+
85+
message = b"this is a public message" # your data
86+
public_key, secret_key = create_asymmetric_key() # signing / verifying keys
87+
88+
token = sign(message, secret_key)
89+
verified_message = verify(token, public_key)
90+
91+
assert verified_message == message
92+
print(f"token={token}")
93+
print(f"verified_message={verified_message}")
94+
print(f"message={message}")
95+
```
96+
6497
# High level API
6598
In the future a high level API will provide developer friendly access to low level API
6699
and support easy integration into other projects.

0 commit comments

Comments
 (0)