@@ -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+
2728Low level API is focuses on solid, high quality, production ready primitives
2829as specified directly in the [ PASETO] ( https://tools.ietf.org/html/draft-paragon-paseto-rfc-00 )
2930protocol.
3031See [ paseto-spec] ( https://github.com/paseto-standard/paseto-spec ) for protocol details.
3132
32- # Example use
33+ # Example use with Version2
3334``` python
3435from paseto.protocol.version2 import encrypt, decrypt
3536
@@ -61,6 +62,38 @@ print(f"plain_text={plain_text}")
6162print (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
6598In the future a high level API will provide developer friendly access to low level API
6699and support easy integration into other projects.
0 commit comments