1234567891011121314151617181920212223242526272829303132333435 |
- # -*- coding: utf-8 -*-
- """
- celery.security.utils
- ~~~~~~~~~~~~~~~~~~~~~
-
- Utilities used by the message signing serializer.
-
- """
- from __future__ import absolute_import
-
- import sys
-
- from contextlib import contextmanager
-
- from celery.exceptions import SecurityError
- from celery.five import reraise
-
- try:
- from OpenSSL import crypto
- except ImportError: # pragma: no cover
- crypto = None # noqa
-
- __all__ = ['reraise_errors']
-
-
- @contextmanager
- def reraise_errors(msg='{0!r}', errors=None):
- assert crypto is not None
- errors = (crypto.Error, ) if errors is None else errors
- try:
- yield
- except errors as exc:
- reraise(SecurityError,
- SecurityError(msg.format(exc)),
- sys.exc_info()[2])
|