-
-
Notifications
You must be signed in to change notification settings - Fork 273
/
signing.py
44 lines (31 loc) · 1.07 KB
/
signing.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"""Package signing."""
try:
import cPickle as pickle
except ImportError:
import pickle
from django.core import signing
from django_q.conf import Conf
BadSignature = signing.BadSignature
class SignedPackage(object):
"""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(object):
"""Simple wrapper around Pickle for signing.dumps and signing.loads."""
@staticmethod
def dumps(obj):
return pickle.dumps(obj)
@staticmethod
def loads(data):
return pickle.loads(data)