initial commit

This commit is contained in:
AF 2020-08-05 03:25:44 +03:00
parent 6335a8f743
commit f3637d2081

21
v25/messaging/encoding.py Normal file
View File

@ -0,0 +1,21 @@
from typing import Any, Optional
import nacl.encoding
import nacl.utils
ENCODER = nacl.encoding.URLSafeBase64Encoder
NONCE_SIZE = 32
class Encoding:
@staticmethod
def encode(raw: Any) -> Optional[str]:
return None if raw is None else ENCODER.encode(bytes(raw)).decode('ascii')
@staticmethod
def decode(s: str) -> bytes:
return None if s is None else ENCODER.decode(s.encode('ascii'))
@classmethod
def nonce(cls):
return nacl.utils.random(NONCE_SIZE)