28 lines
679 B
Python
28 lines
679 B
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
celery.security.key
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
Private key for the security serializer.
|
|
|
|
"""
|
|
from __future__ import absolute_import
|
|
|
|
from kombu.utils.encoding import ensure_bytes
|
|
|
|
from .utils import crypto, reraise_errors
|
|
|
|
__all__ = ['PrivateKey']
|
|
|
|
|
|
class PrivateKey(object):
|
|
|
|
def __init__(self, key):
|
|
with reraise_errors('Invalid private key: {0!r}'):
|
|
self._key = crypto.load_privatekey(crypto.FILETYPE_PEM, key)
|
|
|
|
def sign(self, data, digest):
|
|
"""sign string containing data."""
|
|
with reraise_errors('Unable to sign data: {0!r}'):
|
|
return crypto.sign(self._key, ensure_bytes(data), digest)
|