key.py 653 B

12345678910111213141516171819202122232425
  1. # -*- coding: utf-8 -*-
  2. """
  3. celery.security.key
  4. ~~~~~~~~~~~~~~~~~~~
  5. Private key for the security serializer.
  6. """
  7. from __future__ import absolute_import
  8. from kombu.utils.encoding import ensure_bytes
  9. from .utils import crypto, reraise_errors
  10. class PrivateKey(object):
  11. def __init__(self, key):
  12. with reraise_errors('Invalid private key: {0!r}'):
  13. self._key = crypto.load_privatekey(crypto.FILETYPE_PEM, key)
  14. def sign(self, data, digest):
  15. """sign string containing data."""
  16. with reraise_errors('Unable to sign data: {0!r}'):
  17. return crypto.sign(self._key, ensure_bytes(data), digest)