Skip to content

Instantly share code, notes, and snippets.

class PrivateKey(object):
def __init__(self, key_text=None):
self.key = _init(key_text, default=NACLPrivateKey.generate()._private_key)
def __str__(self):
return _to_string(self.key)
def save(self, fname):
_save(self.key, fname)
def encrypt(self, message):
return _encrypt(message, SealedBox(NACLPrivateKey(self.key).public_key).encrypt)
def decrypt(self, encrypted):
class PublicKey(object):
def __init__(self, key_text=None):
if key_text == None:
raise CryptoException("Public Key cannot be initialized from scratch.")
self.key = _init(key_text, default=None)
def save(self, fname):
_save(self.key, fname)
def encrypt(self, message):
return _encrypt(message, SealedBox(NACLPublicKey(self.key)).encrypt)
@ybchri
ybchri / crypto.py
Created July 4, 2018 20:08
Samsa Crypto Library
from nacl import secret
from nacl import utils
from base64 import b64encode, b64decode
from nacl.public import PrivateKey as NACLPrivateKey, PublicKey as NACLPublicKey, SealedBox
import json
from rest_framework import serializers
from django.contrib.postgres.fields import JSONField
# helpers