Use a namedtuple to keep errors in
diff --git a/cryptography/hazmat/backends/openssl/backend.py b/cryptography/hazmat/backends/openssl/backend.py
index b14ec2d..318edec 100644
--- a/cryptography/hazmat/backends/openssl/backend.py
+++ b/cryptography/hazmat/backends/openssl/backend.py
@@ -13,6 +13,7 @@
 
 from __future__ import absolute_import, division, print_function
 
+import collections
 import itertools
 
 from cryptography import utils
@@ -34,6 +35,10 @@
 )
 
 
+_OpenSSLError = collections.namedtuple("_OpenSSLError",
+                                       ["code", "lib", "func", "reason"])
+
+
 @utils.register_interface(CipherBackend)
 @utils.register_interface(HashBackend)
 @utils.register_interface(HMACBackend)
@@ -239,14 +244,14 @@
             func = self._lib.ERR_GET_FUNC(code)
             reason = self._lib.ERR_GET_REASON(code)
 
-            errors.append((code, lib, func, reason))
+            errors.append(_OpenSSLError(code, lib, func, reason))
         return errors
 
     def _unknown_error(self, error):
         return InternalError(
             "Unknown error code {0} from OpenSSL, "
             "you should probably file a bug. {1}".format(
-                error[0], self._err_string(error[0])
+                error.code, self._err_string(error.code)
             )
         )