key.py 678 B

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