mirror of
https://github.com/django-q2/django-q2.git
synced 2026-09-28 19:58:11 +08:00
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
"""Package signing."""
|
|
try:
|
|
import cPickle as pickle
|
|
except ImportError:
|
|
import pickle
|
|
|
|
from django_q import core_signing as signing
|
|
|
|
from django_q.conf import Conf
|
|
|
|
BadSignature = signing.BadSignature
|
|
|
|
|
|
class SignedPackage:
|
|
|
|
"""Wraps Django's signing module with custom Pickle serializer."""
|
|
|
|
@staticmethod
|
|
def dumps(obj, compressed=Conf.COMPRESSED):
|
|
return signing.dumps(obj,
|
|
key=Conf.SECRET_KEY,
|
|
salt=Conf.PREFIX,
|
|
compress=compressed,
|
|
serializer=PickleSerializer)
|
|
|
|
@staticmethod
|
|
def loads(obj):
|
|
return signing.loads(obj,
|
|
key=Conf.SECRET_KEY,
|
|
salt=Conf.PREFIX,
|
|
serializer=PickleSerializer)
|
|
|
|
|
|
class PickleSerializer:
|
|
|
|
"""Simple wrapper around Pickle for signing.dumps and signing.loads."""
|
|
|
|
@staticmethod
|
|
def dumps(obj):
|
|
return pickle.dumps(obj, protocol=pickle.HIGHEST_PROTOCOL)
|
|
|
|
@staticmethod
|
|
def loads(data):
|
|
return pickle.loads(data)
|