diff --git a/.travis.yml b/.travis.yml
index 00902b8..d65665e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -45,6 +45,21 @@
   - python: "pypy"
     env: TOXENV=pypy-cryptographyMaster
 
+  # And older cryptography versions.
+  - python: "2.6"
+    env: TOXENV=py26-cryptography1.1
+  - python: "2.7"
+    env: TOXENV=py27-cryptography1.1
+  - python: "3.3"
+    env: TOXENV=py33-cryptography1.1
+  - python: "3.4"
+    env: TOXENV=py34-cryptography1.1
+  - python: "3.5"
+    env: TOXENV=py35-cryptography1.1
+  - python: "pypy"
+    env: TOXENV=pypy-cryptography1.1
+
+
   # Make sure we don't break Twisted
   - python: "2.7"
     env: TOXENV=py27-twistedMaster
@@ -84,8 +99,6 @@
   - env: TOXENV=py33-cryptographyMaster
   - env: TOXENV=py34-cryptographyMaster
   - env: TOXENV=py35-cryptographyMaster
-  - env: TOXENV=pypy-cryptographyMaster
-  - env: TOXENV=pypy
 
 install:
   - |
@@ -96,6 +109,15 @@
       python get-pip.py --user
       pip install --user virtualenv
     else
+      # install our own pypy. This can be removed if and when Travis gets a reasonably up to date pypy
+      if [[ "${TOXENV}" = pypy* ]]; then
+          git clone https://github.com/yyuu/pyenv.git ~/.pyenv
+          PYENV_ROOT="$HOME/.pyenv"
+          PATH="$PYENV_ROOT/bin:$PATH"
+          eval "$(pyenv init -)"
+          pyenv install pypy-4.0.1
+          pyenv global pypy-4.0.1
+      fi
       pip install virtualenv
     fi
     python -m virtualenv ~/.venv
@@ -110,6 +132,12 @@
       export CFLAGS="-I/usr/local/opt/openssl/include"
       export PATH="/usr/local/opt/openssl/bin:$PATH"
     fi
+    # activate the pypy env we installed via our custom pyenv in the install stage
+    if [[ "${TOXENV}" == "pypy" ]]; then
+        PYENV_ROOT="$HOME/.pyenv"
+        PATH="$PYENV_ROOT/bin:$PATH"
+        eval "$(pyenv init -)"
+    fi
     # This section potentially downloads, compiles and installs openssl 0.9.8zg
     if [[ "${OPENSSL}" == "0.9.8" ]]; then
       # download, compile, and install if it's not already present via travis cache
diff --git a/setup.cfg b/setup.cfg
index e68206f..8a1dc84 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
 [pytest]
-minversion = 2.8.2
+minversion = 2.8.5
 strict = true
 testpaths = tests
 
diff --git a/src/OpenSSL/crypto.py b/src/OpenSSL/crypto.py
index a00b5c0..6d78bd7 100644
--- a/src/OpenSSL/crypto.py
+++ b/src/OpenSSL/crypto.py
@@ -247,7 +247,7 @@
         if self._only_public:
             raise TypeError("public key only")
 
-        if _lib.EVP_PKEY_type(self._pkey.type) != _lib.EVP_PKEY_RSA:
+        if _lib.EVP_PKEY_type(self.type()) != _lib.EVP_PKEY_RSA:
             raise TypeError("key type unsupported")
 
         rsa = _lib.EVP_PKEY_get1_RSA(self._pkey)
@@ -263,7 +263,12 @@
 
         :return: The type of the key.
         """
-        return self._pkey.type
+        try:
+            # cryptography 1.2+
+            return _lib.Cryptography_EVP_PKEY_id(self._pkey)
+        except AttributeError:
+            # Older releases of cryptography.
+            return self._pkey.type
 
     def bits(self):
         """
diff --git a/tests/test_ssl.py b/tests/test_ssl.py
index de144ce..ecdb40c 100644
--- a/tests/test_ssl.py
+++ b/tests/test_ssl.py
@@ -2346,42 +2346,8 @@
         server = self._loopbackServerFactory(server)
         client = self._loopbackClientFactory(client)
 
-        self.assertEqual('before/accept initialization',
-                         server.state_string().decode())
-        self.assertEqual('before/connect initialization',
-                         client.state_string().decode())
-
-        for conn in [server, client]:
-            try:
-                conn.do_handshake()
-            except WantReadError:
-                pass
-
-        self.assertEqual('SSLv3 read client hello B',
-                         server.state_string().decode())
-        self.assertEqual('SSLv3 read server hello A',
-                         client.state_string().decode())
-
-        for conn in [server, client]:
-            try:
-                conn.do_handshake()
-            except WantReadError:
-                pass
-
-        assert server.state_string().decode() in (
-            "SSLv3 read client certificate A",
-            "SSLv3 read client key exchange A",  # 1.0.2d+
-        )
-        self.assertEqual('SSLv3 read server session ticket A',
-                         client.state_string().decode())
-
-        for conn in [server, client]:
-            conn.do_handshake()
-
-        self.assertEqual('SSL negotiation finished successfully',
-                         server.state_string().decode())
-        self.assertEqual('SSL negotiation finished successfully',
-                         client.state_string().decode())
+        assert b"before/accept initialization" == server.state_string()
+        assert b"before/connect initialization" == client.state_string()
 
     def test_app_data_wrong_args(self):
         """
diff --git a/tox.ini b/tox.ini
index 73f6018..cf4912b 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist = coverage-clean,{pypy,py26,py27,py33,py34,py35}{,-cryptographyMaster},py27-twistedMaster,pypi-readme,check-manifest,flake8,docs,coverage-report
+envlist = coverage-clean,{pypy,py26,py27,py33,py34,py35}{,-cryptographyMaster,-cryptography1.1},py27-twistedMaster,pypi-readme,check-manifest,flake8,docs,coverage-report
 
 [testenv]
 whitelist_externals =
@@ -7,8 +7,9 @@
 passenv = ARCHFLAGS CFLAGS LC_ALL LDFLAGS PATH LD_LIBRARY_PATH TERM
 deps =
     coverage
-    pytest>=2.8.2,!=2.8.4
+    pytest>=2.8.5
     cryptographyMaster: git+https://github.com/pyca/cryptography.git
+    cryptography1.1: cryptography<1.2
 setenv =
     # Do not allow the executing environment to pollute the test environment
     # with extra packages.
