aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2014-01-24 10:46:04 -0800
committerPaul Kehrer <paul.l.kehrer@gmail.com>2014-01-24 10:46:04 -0800
commit12532f67a03c1681f455211b00315765311a17a5 (patch)
treec6f82790339218517d82850772e6ffdc1c04d374
parentbb41bf4d798a6761889ea828f7d7f160f17b4132 (diff)
parent81744df9e4a109e33743825be6493cffe3026e09 (diff)
downloadcryptography-12532f67a03c1681f455211b00315765311a17a5.tar.gz
cryptography-12532f67a03c1681f455211b00315765311a17a5.tar.bz2
cryptography-12532f67a03c1681f455211b00315765311a17a5.zip
Merge pull request #505 from alex/system-error
Switch to using our own InternalError, instead of SystemError
-rw-r--r--cryptography/exceptions.py4
-rw-r--r--cryptography/hazmat/backends/commoncrypto/backend.py9
-rw-r--r--cryptography/hazmat/backends/openssl/backend.py6
-rw-r--r--tests/hazmat/backends/test_commoncrypto.py6
-rw-r--r--tests/hazmat/backends/test_openssl.py10
5 files changed, 22 insertions, 13 deletions
diff --git a/cryptography/exceptions.py b/cryptography/exceptions.py
index 44363c24..2654b453 100644
--- a/cryptography/exceptions.py
+++ b/cryptography/exceptions.py
@@ -34,3 +34,7 @@ class InvalidTag(Exception):
class InvalidSignature(Exception):
pass
+
+
+class InternalError(Exception):
+ pass
diff --git a/cryptography/hazmat/backends/commoncrypto/backend.py b/cryptography/hazmat/backends/commoncrypto/backend.py
index 7193f1d8..4e70cab5 100644
--- a/cryptography/hazmat/backends/commoncrypto/backend.py
+++ b/cryptography/hazmat/backends/commoncrypto/backend.py
@@ -16,7 +16,9 @@ from __future__ import absolute_import, division, print_function
from collections import namedtuple
from cryptography import utils
-from cryptography.exceptions import UnsupportedAlgorithm, InvalidTag
+from cryptography.exceptions import (
+ UnsupportedAlgorithm, InvalidTag, InternalError
+)
from cryptography.hazmat.backends.interfaces import (
HashBackend, HMACBackend, CipherBackend
)
@@ -197,8 +199,9 @@ class Backend(object):
"the block length"
)
else:
- raise SystemError(
- "The backend returned an error. Code: {0}".format(response)
+ raise InternalError(
+ "The backend returned an unknown error, consider filing a bug."
+ " Code: {0}.".format(response)
)
diff --git a/cryptography/hazmat/backends/openssl/backend.py b/cryptography/hazmat/backends/openssl/backend.py
index ee82ba71..b5116be4 100644
--- a/cryptography/hazmat/backends/openssl/backend.py
+++ b/cryptography/hazmat/backends/openssl/backend.py
@@ -16,7 +16,9 @@ from __future__ import absolute_import, division, print_function
import itertools
from cryptography import utils
-from cryptography.exceptions import UnsupportedAlgorithm, InvalidTag
+from cryptography.exceptions import (
+ UnsupportedAlgorithm, InvalidTag, InternalError
+)
from cryptography.hazmat.backends.interfaces import (
CipherBackend, HashBackend, HMACBackend
)
@@ -154,7 +156,7 @@ class Backend(object):
"the block length"
)
- raise SystemError(
+ raise InternalError(
"Unknown error code from OpenSSL, you should probably file a bug."
)
diff --git a/tests/hazmat/backends/test_commoncrypto.py b/tests/hazmat/backends/test_commoncrypto.py
index cfa332d0..7cc0f72f 100644
--- a/tests/hazmat/backends/test_commoncrypto.py
+++ b/tests/hazmat/backends/test_commoncrypto.py
@@ -14,7 +14,7 @@
import pytest
from cryptography import utils
-from cryptography.exceptions import UnsupportedAlgorithm
+from cryptography.exceptions import UnsupportedAlgorithm, InternalError
from cryptography.hazmat.bindings.commoncrypto.binding import Binding
from cryptography.hazmat.primitives import interfaces
from cryptography.hazmat.primitives.ciphers.algorithms import AES
@@ -49,10 +49,10 @@ class TestCommonCrypto(object):
with pytest.raises(ValueError):
backend._check_response(backend._lib.kCCAlignmentError)
- with pytest.raises(SystemError):
+ with pytest.raises(InternalError):
backend._check_response(backend._lib.kCCMemoryFailure)
- with pytest.raises(SystemError):
+ with pytest.raises(InternalError):
backend._check_response(backend._lib.kCCDecodeError)
def test_nonexistent_aead_cipher(self):
diff --git a/tests/hazmat/backends/test_openssl.py b/tests/hazmat/backends/test_openssl.py
index 2a329920..f01c3f64 100644
--- a/tests/hazmat/backends/test_openssl.py
+++ b/tests/hazmat/backends/test_openssl.py
@@ -14,7 +14,7 @@
import pytest
from cryptography import utils
-from cryptography.exceptions import UnsupportedAlgorithm
+from cryptography.exceptions import UnsupportedAlgorithm, InternalError
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.backends.openssl.backend import backend, Backend
from cryptography.hazmat.primitives import interfaces
@@ -76,20 +76,20 @@ class TestOpenSSL(object):
cipher.encryptor()
def test_handle_unknown_error(self):
- with pytest.raises(SystemError):
+ with pytest.raises(InternalError):
backend._handle_error_code(0, 0, 0)
- with pytest.raises(SystemError):
+ with pytest.raises(InternalError):
backend._handle_error_code(backend._lib.ERR_LIB_EVP, 0, 0)
- with pytest.raises(SystemError):
+ with pytest.raises(InternalError):
backend._handle_error_code(
backend._lib.ERR_LIB_EVP,
backend._lib.EVP_F_EVP_ENCRYPTFINAL_EX,
0
)
- with pytest.raises(SystemError):
+ with pytest.raises(InternalError):
backend._handle_error_code(
backend._lib.ERR_LIB_EVP,
backend._lib.EVP_F_EVP_DECRYPTFINAL_EX,