Fixed #529 -- use the native bytes syntax (#536)

diff --git a/tests/test_crypto.py b/tests/test_crypto.py
index c441e15..a44ac14 100644
--- a/tests/test_crypto.py
+++ b/tests/test_crypto.py
@@ -15,7 +15,7 @@
 
 import pytest
 
-from six import u, b, binary_type
+from six import binary_type
 
 from cryptography.hazmat.backends.openssl.backend import backend
 from cryptography.hazmat.primitives import serialization
@@ -60,7 +60,7 @@
 GOOD_DIGEST = "SHA1"
 BAD_DIGEST = "monkeys"
 
-root_cert_pem = b("""-----BEGIN CERTIFICATE-----
+root_cert_pem = b"""-----BEGIN CERTIFICATE-----
 MIIC7TCCAlagAwIBAgIIPQzE4MbeufQwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UE
 BhMCVVMxCzAJBgNVBAgTAklMMRAwDgYDVQQHEwdDaGljYWdvMRAwDgYDVQQKEwdU
 ZXN0aW5nMRgwFgYDVQQDEw9UZXN0aW5nIFJvb3QgQ0EwIhgPMjAwOTAzMjUxMjM2
@@ -78,9 +78,9 @@
 hkgaZnzoIq/Uamidegk4hirsCT/R+6vsKAAxNTcBjUeZjlykCJWy5ojShGftXIKY
 w/njVbKMXrvc83qmTdGl3TAM0fxQIpqgcglFLveEBgzn
 -----END CERTIFICATE-----
-""")
+"""
 
-root_key_pem = b("""-----BEGIN RSA PRIVATE KEY-----
+root_key_pem = b"""-----BEGIN RSA PRIVATE KEY-----
 MIICXQIBAAKBgQD5mkLpi7q6ROdu7khB3S9aanA0Zls7vvfGOmB80/yeylhGpsjA
 jWen0VtSQke/NlEPGtO38tsV7CsuFnSmschvAnGrcJl76b0UOOHUgDTIoRxC6QDU
 3claegwsrBA+sJEBbqx5RdXbIRGicPG/8qQ4Zm1SKOgotcbwiaor2yxZ2wIDAQAB
@@ -95,9 +95,9 @@
 6AWSeGAdtRFHVzR7oHjVAkB4hutvxiOeiIVQNBhM6RSI9aBPMI21DoX2JRoxvNW2
 cbvAhow217X9V0dVerEOKxnNYspXRrh36h7k4mQA+sDq
 -----END RSA PRIVATE KEY-----
-""")
+"""
 
-intermediate_cert_pem = b("""-----BEGIN CERTIFICATE-----
+intermediate_cert_pem = b"""-----BEGIN CERTIFICATE-----
 MIICVzCCAcCgAwIBAgIRAMPzhm6//0Y/g2pmnHR2C4cwDQYJKoZIhvcNAQENBQAw
 WDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAklMMRAwDgYDVQQHEwdDaGljYWdvMRAw
 DgYDVQQKEwdUZXN0aW5nMRgwFgYDVQQDEw9UZXN0aW5nIFJvb3QgQ0EwHhcNMTQw
@@ -112,9 +112,9 @@
 9n5zXb1ZwhW/sTWgUvmOceJ4/XVs9FkdWOOn1J0XBch9ZIiFe/s5ASIgG7fUdcUF
 9mAWS6FK2ca3xIh5kIupCXOFa0dPvlw/YUFT
 -----END CERTIFICATE-----
-""")
+"""
 
-intermediate_key_pem = b("""-----BEGIN RSA PRIVATE KEY-----
+intermediate_key_pem = b"""-----BEGIN RSA PRIVATE KEY-----
 MIICWwIBAAKBgQDYcEQw5lfbEQRjr5Yy4yxAHGV0b9Al+Lmu7wLHMkZ/ZMmKFGIb
 ljbviiD1Nz97Oh2cpB91YwOXOTN2vXHq26S+A5xe8z/QJbBsyghMur88CjdT21H2
 qwMa+r5dCQwEhuGIiZ3KbzB/n4DTMYI5zy4IYPv0pjxShZn4aZTCCK2IUwIDAQAB
@@ -129,9 +129,9 @@
 /qUot9YUBF8m6BuGsQJATHHmdFy/fG1VLkyBp49CAa8tN3Z5r/CgTznI4DfMTf4C
 NbRHn2UmYlwQBa+L5lg9phewNe8aEwpPyPLoV85U8Q==
 -----END RSA PRIVATE KEY-----
-""")
+"""
 
-server_cert_pem = b("""-----BEGIN CERTIFICATE-----
+server_cert_pem = b"""-----BEGIN CERTIFICATE-----
 MIICKDCCAZGgAwIBAgIJAJn/HpR21r/8MA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV
 BAYTAlVTMQswCQYDVQQIEwJJTDEQMA4GA1UEBxMHQ2hpY2FnbzEQMA4GA1UEChMH
 VGVzdGluZzEYMBYGA1UEAxMPVGVzdGluZyBSb290IENBMCIYDzIwMDkwMzI1MTIz
@@ -145,9 +145,9 @@
 2mgpFQ6FHpoIENGvJhdEKpptQ5i7KaGhnDNTfdy3x1+h852G99f1iyj0RmbuFcM8
 uzujnS8YXWvM7DM1Ilozk4MzPug8jzFp5uhKCQ==
 -----END CERTIFICATE-----
-""")
+"""
 
-server_key_pem = normalize_privatekey_pem(b("""-----BEGIN RSA PRIVATE KEY-----
+server_key_pem = normalize_privatekey_pem(b"""-----BEGIN RSA PRIVATE KEY-----
 MIICWwIBAAKBgQC+pvhuud1dLaQQvzipdtlcTotgr5SuE2LvSx0gz/bg1U3u1eQ+
 U5eqsxaEUceaX5p5Kk+QflvW8qdjVNxQuYS5uc0gK2+OZnlIYxCf4n5GYGzVIx3Q
 SBj/TAEFB2WuVinZBiCbxgL7PFM1Kpa+EwVkCAduPpSflJJPwkYGrK2MHQIDAQAB
@@ -162,9 +162,9 @@
 NaeNCFfH3aeTrX0LyQJAMBWjWmeKM2G2sCExheeQK0ROnaBC8itCECD4Jsve4nqf
 r50+LF74iLXFwqysVCebPKMOpDWp/qQ1BbJQIPs7/A==
 -----END RSA PRIVATE KEY-----
-"""))
+""")
 
-intermediate_server_cert_pem = b("""-----BEGIN CERTIFICATE-----
+intermediate_server_cert_pem = b"""-----BEGIN CERTIFICATE-----
 MIICWDCCAcGgAwIBAgIRAPQFY9jfskSihdiNSNdt6GswDQYJKoZIhvcNAQENBQAw
 ZjEVMBMGA1UEAxMMaW50ZXJtZWRpYXRlMQwwCgYDVQQKEwNvcmcxETAPBgNVBAsT
 CG9yZy11bml0MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVNh
@@ -179,9 +179,9 @@
 3bfAtV7eSAqBsfxYXyof7G1ALANQERkq3+oyLP1iVt08W1WOUlIMPhdCF/QuCwy6
 x9MJLhUCGLJPM+O2rAPWVD9wCmvq10ALsiH3yA==
 -----END CERTIFICATE-----
-""")
+"""
 
-intermediate_server_key_pem = b("""-----BEGIN RSA PRIVATE KEY-----
+intermediate_server_key_pem = b"""-----BEGIN RSA PRIVATE KEY-----
 MIICXAIBAAKBgQCqklnKB37DV9os6vWI4CZsGHHlJlZxMJn9mMdBMkzsa49PrbhC
 SqyLEWCFEp0NE7CnCcA/uAxG6QuqLLj6RG4ZPk5/IaCAv3mLbGoD7N6GOPTyVJOW
 8Yel48mALJNq8jLn4uOyPgMqcrK6HGZuJdNGsfzc0OCLFWQ5tMSaH85UrQIDAQAB
@@ -196,9 +196,9 @@
 ipWJWe0aAlP18ZcEQQJBAL+5lekZ/GUdQoZ4HAsN5a9syrzavJ9VvU1KOOPorPZK
 nMRZbbQgP+aSB7yl6K0gaLaZ8XaK0pjxNBh6ASqg9f4=
 -----END RSA PRIVATE KEY-----
-""")
+"""
 
-client_cert_pem = b("""-----BEGIN CERTIFICATE-----
+client_cert_pem = b"""-----BEGIN CERTIFICATE-----
 MIICJjCCAY+gAwIBAgIJAKxpFI5lODkjMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV
 BAYTAlVTMQswCQYDVQQIEwJJTDEQMA4GA1UEBxMHQ2hpY2FnbzEQMA4GA1UEChMH
 VGVzdGluZzEYMBYGA1UEAxMPVGVzdGluZyBSb290IENBMCIYDzIwMDkwMzI1MTIz
@@ -212,9 +212,9 @@
 9Zdr0U4UDCU9SmmGYh4o7R4TZ5pGFvBYvjhHbkSFYFQXZxKUi+WUxplP6I0wr2KJ
 PSTJCjJOn3xo2NTKRgV1gaoTf2EhL+RG8TQ=
 -----END CERTIFICATE-----
-""")
+"""
 
-client_key_pem = normalize_privatekey_pem(b("""-----BEGIN RSA PRIVATE KEY-----
+client_key_pem = normalize_privatekey_pem(b"""-----BEGIN RSA PRIVATE KEY-----
 MIICXgIBAAKBgQDAZh/SRtNm5ntMT4qb6YzEpTroMlq2rn+GrRHRiZ+xkCw/CGNh
 btPir7/QxaUj26BSmQrHw1bGKEbPsWiW7bdXSespl+xKiku4G/KvnnmWdeJHqsiX
 eUZtqurMELcPQAw9xPHEuhqqUJvvEoMTsnCEqGM+7DtboCRajYyHfluARQIDAQAB
@@ -229,9 +229,9 @@
 JJEQjOMCVsEJlRk54WWjAkEAzoZNH6UhDdBK5F38rVt/y4SEHgbSfJHIAmPS32Kq
 f6GGcfNpip0Uk7q7udTKuX7Q/buZi/C4YW7u3VKAquv9NA==
 -----END RSA PRIVATE KEY-----
-"""))
+""")
 
-cleartextCertificatePEM = b("""-----BEGIN CERTIFICATE-----
+cleartextCertificatePEM = b"""-----BEGIN CERTIFICATE-----
 MIIC7TCCAlagAwIBAgIIPQzE4MbeufQwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UE
 BhMCVVMxCzAJBgNVBAgTAklMMRAwDgYDVQQHEwdDaGljYWdvMRAwDgYDVQQKEwdU
 ZXN0aW5nMRgwFgYDVQQDEw9UZXN0aW5nIFJvb3QgQ0EwIhgPMjAwOTAzMjUxMjM2
@@ -249,9 +249,9 @@
 hkgaZnzoIq/Uamidegk4hirsCT/R+6vsKAAxNTcBjUeZjlykCJWy5ojShGftXIKY
 w/njVbKMXrvc83qmTdGl3TAM0fxQIpqgcglFLveEBgzn
 -----END CERTIFICATE-----
-""")
+"""
 
-cleartextPrivateKeyPEM = normalize_privatekey_pem(b("""\
+cleartextPrivateKeyPEM = normalize_privatekey_pem(b"""\
 -----BEGIN RSA PRIVATE KEY-----
 MIICXQIBAAKBgQD5mkLpi7q6ROdu7khB3S9aanA0Zls7vvfGOmB80/yeylhGpsjA
 jWen0VtSQke/NlEPGtO38tsV7CsuFnSmschvAnGrcJl76b0UOOHUgDTIoRxC6QDU
@@ -267,9 +267,9 @@
 6AWSeGAdtRFHVzR7oHjVAkB4hutvxiOeiIVQNBhM6RSI9aBPMI21DoX2JRoxvNW2
 cbvAhow217X9V0dVerEOKxnNYspXRrh36h7k4mQA+sDq
 -----END RSA PRIVATE KEY-----
-"""))
+""")
 
-cleartextCertificateRequestPEM = b("""-----BEGIN CERTIFICATE REQUEST-----
+cleartextCertificateRequestPEM = b"""-----BEGIN CERTIFICATE REQUEST-----
 MIIBnjCCAQcCAQAwXjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAklMMRAwDgYDVQQH
 EwdDaGljYWdvMRcwFQYDVQQKEw5NeSBDb21wYW55IEx0ZDEXMBUGA1UEAxMORnJl
 ZGVyaWNrIERlYW4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANp6Y17WzKSw
@@ -280,9 +280,9 @@
 Vrb3HUNqOkiwsJf6kCtq5oPn3QVYzTa76Dt2y3Rtzv6boRSlmlfrgS92GNma8JfR
 oICQk3nAudi6zl1Dix3BCv1pUp5KMtGn3MeDEi6QFGy2rA==
 -----END CERTIFICATE REQUEST-----
-""")
+"""
 
-encryptedPrivateKeyPEM = b("""-----BEGIN RSA PRIVATE KEY-----
+encryptedPrivateKeyPEM = b"""-----BEGIN RSA PRIVATE KEY-----
 Proc-Type: 4,ENCRYPTED
 DEK-Info: DES-EDE3-CBC,9573604A18579E9E
 
@@ -300,12 +300,12 @@
 MbzjS007Oe4qqBnCWaFPSnJX6uLApeTbqAxAeyCql56ULW5x6vDMNC3dwjvS/CEh
 11n8RkgFIQA0AhuKSIg3CbuartRsJnWOLwgLTzsrKYL4yRog1RJrtw==
 -----END RSA PRIVATE KEY-----
-""")
+"""
 
-encryptedPrivateKeyPEMPassphrase = b("foobar")
+encryptedPrivateKeyPEMPassphrase = b"foobar"
 
 
-cleartextPublicKeyPEM = b("""-----BEGIN PUBLIC KEY-----
+cleartextPublicKeyPEM = b"""-----BEGIN PUBLIC KEY-----
 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxszlc+b71LvlLS0ypt/l
 gT/JzSVJtnEqw9WUNGeiChywX2mmQLHEt7KP0JikqUFZOtPclNY823Q4pErMTSWC
 90qlUxI47vNJbXGRfmO2q6Zfw6SE+E9iUb74xezbOJLjBuUIkQzEKEFV+8taiRV+
@@ -314,14 +314,14 @@
 8Xk5iKICEXwnZreIt3jyygqoOKsKZMK/Zl2VhMGhJR6HXRpQCyASzEG7bgtROLhL
 ywIDAQAB
 -----END PUBLIC KEY-----
-""")
+"""
 
 # Some PKCS#7 stuff.  Generated with the openssl command line:
 #
 #    openssl crl2pkcs7 -inform pem -outform pem -certfile s.pem -nocrl
 #
 # with a certificate and key (but the key should be irrelevant) in s.pem
-pkcs7Data = b("""\
+pkcs7Data = b"""\
 -----BEGIN PKCS7-----
 MIIDNwYJKoZIhvcNAQcCoIIDKDCCAyQCAQExADALBgkqhkiG9w0BBwGgggMKMIID
 BjCCAm+gAwIBAgIBATANBgkqhkiG9w0BAQQFADB7MQswCQYDVQQGEwJTRzERMA8G
@@ -342,7 +342,7 @@
 /g5NDjxFZNDJP1dGiLAxPW6JXwov4v0FmdzfLOZ01jDcgQQZqEpYlgpuI5JEWUQ9
 Ho4EzbYCOaEAMQA=
 -----END PKCS7-----
-""")
+"""
 
 pkcs7DataASN1 = base64.b64decode(b"""
 MIIDNwYJKoZIhvcNAQcCoIIDKDCCAyQCAQExADALBgkqhkiG9w0BBwGgggMKMIID
@@ -365,7 +365,7 @@
 Ho4EzbYCOaEAMQA=
 """)
 
-crlData = b("""\
+crlData = b"""\
 -----BEGIN X509 CRL-----
 MIIBWzCBxTANBgkqhkiG9w0BAQQFADBYMQswCQYDVQQGEwJVUzELMAkGA1UECBMC
 SUwxEDAOBgNVBAcTB0NoaWNhZ28xEDAOBgNVBAoTB1Rlc3RpbmcxGDAWBgNVBAMT
@@ -376,9 +376,9 @@
 0yp4HXRFFoRhhSE/hP+eteaPXRgrsNRLHe9ZDd69wmh7J1wMDb0m81RG7kqcbsid
 vrzEeLDRiiPl92dyyWmu
 -----END X509 CRL-----
-""")
+"""
 
-crlDataUnsupportedExtension = b("""\
+crlDataUnsupportedExtension = b"""\
 -----BEGIN X509 CRL-----
 MIIGRzCCBS8CAQIwDQYJKoZIhvcNAQELBQAwJzELMAkGA1UEBhMCVVMxGDAWBgNV
 BAMMD2NyeXB0b2dyYXBoeS5pbxgPMjAxNTAxMDEwMDAwMDBaGA8yMDE2MDEwMTAw
@@ -415,12 +415,12 @@
 SdEILd164bfBeLuplVI+xpmTEMVNpXBlSXl7+xIw9Vk7p7Q1Pa3k/SvhOldYCm6y
 C1xAg/AAq6w78yzYt18j5Mj0s6eeHi1YpHKw
 -----END X509 CRL-----
-""")
+"""
 
 
 # A broken RSA private key which can be used to test the error path through
 # PKey.check.
-inconsistentPrivateKeyPEM = b("""-----BEGIN RSA PRIVATE KEY-----
+inconsistentPrivateKeyPEM = b"""-----BEGIN RSA PRIVATE KEY-----
 MIIBPAIBAAJBAKy+e3dulvXzV7zoTZWc5TzgApr8DmeQHTYC8ydfzH7EECe4R1Xh
 5kwIzOuuFfn178FBiS84gngaNcrFi0Z5fAkCAwEaAQJBAIqm/bz4NA1H++Vx5Ewx
 OcKp3w19QSaZAwlGRtsUxrP7436QjnREM3Bm8ygU11BjkPVmtrKm6AayQfCHqJoT
@@ -429,11 +429,11 @@
 HjubeEgjpj32AQIhAJqMGTaZVOwevTXvvHwNeH+vRWsAYU/gbx+OQB+7VOcBAiEA
 oolb6NMg/R3enNPvS1O4UU1H8wpaF77L4yiSWlE0p4w=
 -----END RSA PRIVATE KEY-----
-""")
+"""
 
 # certificate with NULL bytes in subjectAltName and common name
 
-nulbyteSubjectAltNamePEM = b("""-----BEGIN CERTIFICATE-----
+nulbyteSubjectAltNamePEM = b"""-----BEGIN CERTIFICATE-----
 MIIE2DCCA8CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBxTELMAkGA1UEBhMCVVMx
 DzANBgNVBAgMBk9yZWdvbjESMBAGA1UEBwwJQmVhdmVydG9uMSMwIQYDVQQKDBpQ
 eXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEgMB4GA1UECwwXUHl0aG9uIENvcmUg
@@ -460,9 +460,9 @@
 kX4LxlEx5RAvpGB2zZVRGr6LobD9rVK91xuHYNIxxxfEGE8tCCWjp0+3ksri9SXx
 VHWBnbM9YaL32u3hxm8sYB/Yb8WSBavJCWJJqRStVRHM1koZlJmXNx2BX4vPo6iW
 RFEIPQsFZRLrtnCAiEhyT8bC2s/Njlu6ly9gtJZWSV46Q3ZjBL4q9sHKqZQ=
------END CERTIFICATE-----""")
+-----END CERTIFICATE-----"""
 
-large_key_pem = b("""-----BEGIN RSA PRIVATE KEY-----
+large_key_pem = b"""-----BEGIN RSA PRIVATE KEY-----
 MIIJYgIBAAKCAg4AtRua8eIeevRfsj+fkcHr1vmse7Kgb+oX1ssJAvCb1R7JQMnH
 hNDjDP6b3vEkZuPUzlDHymP+cNkXvvi4wJ4miVbO3+SeU4Sh+jmsHeHzGIXat9xW
 9PFtuPM5FQq8zvkY8aDeRYmYwN9JKu4/neMBCBqostYlTEWg+bSytO/qWnyHTHKh
@@ -514,7 +514,7 @@
 le7YjqHugezmjMGlA0sDw5aCXjfbl74vowRFYMO6e3ItApfSRgNV86CDoX74WI/5
 AYU/QVM4wGt8XGT2KwDFJaxYGKsGDMWmXY04dS+WPuetCbouWUusyFwRb9SzFave
 vYeU7Ab/
------END RSA PRIVATE KEY-----""")
+-----END RSA PRIVATE KEY-----"""
 
 ec_private_key_pem = b"""-----BEGIN PRIVATE KEY-----
 MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgYirTZSx+5O8Y6tlG
@@ -568,7 +568,7 @@
         # This isn't necessarily the best string representation.  Perhaps it
         # will be changed/improved in the future.
         self.assertEquals(
-            str(X509Extension(b('basicConstraints'), True, b('CA:false'))),
+            str(X509Extension(b'basicConstraints', True, b'CA:false')),
             'CA:FALSE')
 
     def test_type(self):
@@ -579,7 +579,7 @@
         self.assertIdentical(X509Extension, X509ExtensionType)
         self.assertConsistentType(
             X509Extension,
-            'X509Extension', b('basicConstraints'), True, b('CA:true'))
+            'X509Extension', b'basicConstraints', True, b'CA:true')
 
     def test_construction(self):
         """
@@ -587,14 +587,14 @@
         flag, and an extension value and returns an
         :py:class:`X509ExtensionType` instance.
         """
-        basic = X509Extension(b('basicConstraints'), True, b('CA:true'))
+        basic = X509Extension(b'basicConstraints', True, b'CA:true')
         self.assertTrue(
             isinstance(basic, X509ExtensionType),
             "%r is of type %r, should be %r" % (
                 basic, type(basic), X509ExtensionType))
 
         comment = X509Extension(
-            b('nsComment'), False, b('pyOpenSSL unit test'))
+            b'nsComment', False, b'pyOpenSSL unit test')
         self.assertTrue(
             isinstance(comment, X509ExtensionType),
             "%r is of type %r, should be %r" % (
@@ -606,26 +606,26 @@
         extension name or value.
         """
         self.assertRaises(
-            Error, X509Extension, b('thisIsMadeUp'), False, b('hi'))
+            Error, X509Extension, b'thisIsMadeUp', False, b'hi')
         self.assertRaises(
-            Error, X509Extension, b('basicConstraints'), False, b('blah blah'))
+            Error, X509Extension, b'basicConstraints', False, b'blah blah')
 
         # Exercise a weird one (an extension which uses the r2i method).  This
         # exercises the codepath that requires a non-NULL ctx to be passed to
         # X509V3_EXT_nconf.  It can't work now because we provide no
         # configuration database.  It might be made to work in the future.
         self.assertRaises(
-            Error, X509Extension, b('proxyCertInfo'), True,
-            b('language:id-ppl-anyLanguage,pathlen:1,policy:text:AB'))
+            Error, X509Extension, b'proxyCertInfo', True,
+            b'language:id-ppl-anyLanguage,pathlen:1,policy:text:AB')
 
     def test_get_critical(self):
         """
         :py:meth:`X509ExtensionType.get_critical` returns the value of the
         extension's critical flag.
         """
-        ext = X509Extension(b('basicConstraints'), True, b('CA:true'))
+        ext = X509Extension(b'basicConstraints', True, b'CA:true')
         self.assertTrue(ext.get_critical())
-        ext = X509Extension(b('basicConstraints'), False, b('CA:true'))
+        ext = X509Extension(b'basicConstraints', False, b'CA:true')
         self.assertFalse(ext.get_critical())
 
     def test_get_short_name(self):
@@ -633,26 +633,26 @@
         :py:meth:`X509ExtensionType.get_short_name` returns a string giving the
         short type name of the extension.
         """
-        ext = X509Extension(b('basicConstraints'), True, b('CA:true'))
-        self.assertEqual(ext.get_short_name(), b('basicConstraints'))
-        ext = X509Extension(b('nsComment'), True, b('foo bar'))
-        self.assertEqual(ext.get_short_name(), b('nsComment'))
+        ext = X509Extension(b'basicConstraints', True, b'CA:true')
+        self.assertEqual(ext.get_short_name(), b'basicConstraints')
+        ext = X509Extension(b'nsComment', True, b'foo bar')
+        self.assertEqual(ext.get_short_name(), b'nsComment')
 
     def test_get_data(self):
         """
         :py:meth:`X509Extension.get_data` returns a string giving the data of
         the extension.
         """
-        ext = X509Extension(b('basicConstraints'), True, b('CA:true'))
+        ext = X509Extension(b'basicConstraints', True, b'CA:true')
         # Expect to get back the DER encoded form of CA:true.
-        self.assertEqual(ext.get_data(), b('0\x03\x01\x01\xff'))
+        self.assertEqual(ext.get_data(), b'0\x03\x01\x01\xff')
 
     def test_get_data_wrong_args(self):
         """
         :py:meth:`X509Extension.get_data` raises :py:exc:`TypeError` if passed
         any arguments.
         """
-        ext = X509Extension(b('basicConstraints'), True, b('CA:true'))
+        ext = X509Extension(b'basicConstraints', True, b'CA:true')
         self.assertRaises(TypeError, ext.get_data, None)
         self.assertRaises(TypeError, ext.get_data, "foo")
         self.assertRaises(TypeError, ext.get_data, 7)
@@ -664,13 +664,13 @@
         case.
         """
         ext1 = X509Extension(
-            b('basicConstraints'), False, b('CA:TRUE'), subject=self.x509)
+            b'basicConstraints', False, b'CA:TRUE', subject=self.x509)
         self.x509.add_extensions([ext1])
         self.x509.sign(self.pkey, 'sha1')
         # This is a little lame.  Can we think of a better way?
         text = dump_certificate(FILETYPE_TEXT, self.x509)
-        self.assertTrue(b('X509v3 Basic Constraints:') in text)
-        self.assertTrue(b('CA:TRUE') in text)
+        self.assertTrue(b'X509v3 Basic Constraints:' in text)
+        self.assertTrue(b'CA:TRUE' in text)
 
     def test_subject(self):
         """
@@ -678,11 +678,11 @@
         :py:class:`X509Extension` provides its value.
         """
         ext3 = X509Extension(
-            b('subjectKeyIdentifier'), False, b('hash'), subject=self.x509)
+            b'subjectKeyIdentifier', False, b'hash', subject=self.x509)
         self.x509.add_extensions([ext3])
         self.x509.sign(self.pkey, 'sha1')
         text = dump_certificate(FILETYPE_TEXT, self.x509)
-        self.assertTrue(b('X509v3 Subject Key Identifier:') in text)
+        self.assertTrue(b'X509v3 Subject Key Identifier:' in text)
 
     def test_missing_subject(self):
         """
@@ -690,7 +690,7 @@
         is given no value, something happens.
         """
         self.assertRaises(
-            Error, X509Extension, b('subjectKeyIdentifier'), False, b('hash'))
+            Error, X509Extension, b'subjectKeyIdentifier', False, b'hash')
 
     def test_invalid_subject(self):
         """
@@ -710,12 +710,12 @@
         case.
         """
         ext1 = X509Extension(
-            b('basicConstraints'), False, b('CA:TRUE'), issuer=self.x509)
+            b'basicConstraints', False, b'CA:TRUE', issuer=self.x509)
         self.x509.add_extensions([ext1])
         self.x509.sign(self.pkey, 'sha1')
         text = dump_certificate(FILETYPE_TEXT, self.x509)
-        self.assertTrue(b('X509v3 Basic Constraints:') in text)
-        self.assertTrue(b('CA:TRUE') in text)
+        self.assertTrue(b'X509v3 Basic Constraints:' in text)
+        self.assertTrue(b'CA:TRUE' in text)
 
     def test_issuer(self):
         """
@@ -723,13 +723,13 @@
         :py:class:`X509Extension` provides its value.
         """
         ext2 = X509Extension(
-            b('authorityKeyIdentifier'), False, b('issuer:always'),
+            b'authorityKeyIdentifier', False, b'issuer:always',
             issuer=self.x509)
         self.x509.add_extensions([ext2])
         self.x509.sign(self.pkey, 'sha1')
         text = dump_certificate(FILETYPE_TEXT, self.x509)
-        self.assertTrue(b('X509v3 Authority Key Identifier:') in text)
-        self.assertTrue(b('DirName:/CN=Yoda root CA') in text)
+        self.assertTrue(b'X509v3 Authority Key Identifier:' in text)
+        self.assertTrue(b'DirName:/CN=Yoda root CA' in text)
 
     def test_missing_issuer(self):
         """
@@ -739,8 +739,8 @@
         self.assertRaises(
             Error,
             X509Extension,
-            b('authorityKeyIdentifier'), False,
-            b('keyid:always,issuer:always'))
+            b'authorityKeyIdentifier', False,
+            b'keyid:always,issuer:always')
 
     def test_invalid_issuer(self):
         """
@@ -1174,8 +1174,8 @@
         a = self._x509name(CN="foo", C="US")
         self.assertEqual(
             a.der(),
-            b('0\x1b1\x0b0\t\x06\x03U\x04\x06\x13\x02US'
-              '1\x0c0\n\x06\x03U\x04\x03\x0c\x03foo'))
+            b'0\x1b1\x0b0\t\x06\x03U\x04\x06\x13\x02US'
+            b'1\x0c0\n\x06\x03U\x04\x03\x0c\x03foo')
 
     def test_get_components(self):
         """
@@ -1186,11 +1186,11 @@
         a = self._x509name()
         self.assertEqual(a.get_components(), [])
         a.CN = "foo"
-        self.assertEqual(a.get_components(), [(b("CN"), b("foo"))])
+        self.assertEqual(a.get_components(), [(b"CN", b"foo")])
         a.organizationalUnitName = "bar"
         self.assertEqual(
             a.get_components(),
-            [(b("CN"), b("foo")), (b("OU"), b("bar"))])
+            [(b"CN", b"foo"), (b"OU", b"bar")])
 
     def test_load_nul_byte_attribute(self):
         """
@@ -1361,12 +1361,12 @@
         """
         request = X509Req()
         request.add_extensions([
-            X509Extension(b('basicConstraints'), True, b('CA:false'))])
+            X509Extension(b'basicConstraints', True, b'CA:false')])
         exts = request.get_extensions()
         self.assertEqual(len(exts), 1)
-        self.assertEqual(exts[0].get_short_name(), b('basicConstraints'))
+        self.assertEqual(exts[0].get_short_name(), b'basicConstraints')
         self.assertEqual(exts[0].get_critical(), 1)
-        self.assertEqual(exts[0].get_data(), b('0\x00'))
+        self.assertEqual(exts[0].get_data(), b'0\x00')
 
     def test_get_extensions(self):
         """
@@ -1377,16 +1377,16 @@
         exts = request.get_extensions()
         self.assertEqual(exts, [])
         request.add_extensions([
-            X509Extension(b('basicConstraints'), True, b('CA:true')),
-            X509Extension(b('keyUsage'), False, b('digitalSignature'))])
+            X509Extension(b'basicConstraints', True, b'CA:true'),
+            X509Extension(b'keyUsage', False, b'digitalSignature')])
         exts = request.get_extensions()
         self.assertEqual(len(exts), 2)
-        self.assertEqual(exts[0].get_short_name(), b('basicConstraints'))
+        self.assertEqual(exts[0].get_short_name(), b'basicConstraints')
         self.assertEqual(exts[0].get_critical(), 1)
-        self.assertEqual(exts[0].get_data(), b('0\x03\x01\x01\xff'))
-        self.assertEqual(exts[1].get_short_name(), b('keyUsage'))
+        self.assertEqual(exts[0].get_data(), b'0\x03\x01\x01\xff')
+        self.assertEqual(exts[1].get_short_name(), b'keyUsage')
         self.assertEqual(exts[1].get_critical(), 0)
-        self.assertEqual(exts[1].get_data(), b('\x03\x02\x07\x80'))
+        self.assertEqual(exts[1].get_data(), b'\x03\x02\x07\x80')
 
     def test_add_extensions_wrong_args(self):
         """
@@ -1572,28 +1572,28 @@
         self.assertEqual(get(), None)
 
         # GMT (Or is it UTC?) -exarkun
-        when = b("20040203040506Z")
+        when = b"20040203040506Z"
         set(when)
         self.assertEqual(get(), when)
 
         # A plus two hours and thirty minutes offset
-        when = b("20040203040506+0530")
+        when = b"20040203040506+0530"
         set(when)
         self.assertEqual(get(), when)
 
         # A minus one hour fifteen minutes offset
-        when = b("20040203040506-0115")
+        when = b"20040203040506-0115"
         set(when)
         self.assertEqual(get(), when)
 
         # An invalid string results in a ValueError
-        self.assertRaises(ValueError, set, b("foo bar"))
+        self.assertRaises(ValueError, set, b"foo bar")
 
         # The wrong number of arguments results in a TypeError.
         self.assertRaises(TypeError, set)
         with pytest.raises(TypeError):
             set(b"20040203040506Z", b"20040203040506Z")
-        self.assertRaises(TypeError, get, b("foo bar"))
+        self.assertRaises(TypeError, get, b"foo bar")
 
     # XXX ASN1_TIME (not GENERALIZEDTIME)
 
@@ -1620,7 +1620,7 @@
         internally.
         """
         cert = load_certificate(FILETYPE_PEM, self.pemData)
-        self.assertEqual(cert.get_notBefore(), b("20090325123658Z"))
+        self.assertEqual(cert.get_notBefore(), b"20090325123658Z")
 
     def test_get_notAfter(self):
         """
@@ -1629,7 +1629,7 @@
         internally.
         """
         cert = load_certificate(FILETYPE_PEM, self.pemData)
-        self.assertEqual(cert.get_notAfter(), b("20170611123658Z"))
+        self.assertEqual(cert.get_notAfter(), b"20170611123658Z")
 
     def test_gmtime_adj_notBefore_wrong_args(self):
         """
@@ -1732,14 +1732,14 @@
             # Digest verified with the command:
             # openssl x509 -in root_cert.pem -noout -fingerprint -md5
             cert.digest("MD5"),
-            b("19:B3:05:26:2B:F8:F2:FF:0B:8F:21:07:A8:28:B8:75"))
+            b"19:B3:05:26:2B:F8:F2:FF:0B:8F:21:07:A8:28:B8:75")
 
     def _extcert(self, pkey, extensions):
         cert = X509()
         cert.set_pubkey(pkey)
         cert.get_subject().commonName = "Unit Tests"
         cert.get_issuer().commonName = "Unit Tests"
-        when = b(datetime.now().strftime("%Y%m%d%H%M%SZ"))
+        when = datetime.now().strftime("%Y%m%d%H%M%SZ").encode("ascii")
         cert.set_notBefore(when)
         cert.set_notAfter(when)
 
@@ -1754,10 +1754,10 @@
         that are present in the certificate.
         """
         pkey = load_privatekey(FILETYPE_PEM, client_key_pem)
-        ca = X509Extension(b('basicConstraints'), True, b('CA:FALSE'))
-        key = X509Extension(b('keyUsage'), True, b('digitalSignature'))
+        ca = X509Extension(b'basicConstraints', True, b'CA:FALSE')
+        key = X509Extension(b'keyUsage', True, b'digitalSignature')
         subjectAltName = X509Extension(
-            b('subjectAltName'), True, b('DNS:example.com'))
+            b'subjectAltName', True, b'DNS:example.com')
 
         # Try a certificate with no extensions at all.
         c = self._extcert(pkey, [])
@@ -1777,27 +1777,27 @@
         :py:obj:`X509Extension` corresponding to the extension at that index.
         """
         pkey = load_privatekey(FILETYPE_PEM, client_key_pem)
-        ca = X509Extension(b('basicConstraints'), True, b('CA:FALSE'))
-        key = X509Extension(b('keyUsage'), True, b('digitalSignature'))
+        ca = X509Extension(b'basicConstraints', True, b'CA:FALSE')
+        key = X509Extension(b'keyUsage', True, b'digitalSignature')
         subjectAltName = X509Extension(
-            b('subjectAltName'), False, b('DNS:example.com'))
+            b'subjectAltName', False, b'DNS:example.com')
 
         cert = self._extcert(pkey, [ca, key, subjectAltName])
 
         ext = cert.get_extension(0)
         self.assertTrue(isinstance(ext, X509Extension))
         self.assertTrue(ext.get_critical())
-        self.assertEqual(ext.get_short_name(), b('basicConstraints'))
+        self.assertEqual(ext.get_short_name(), b'basicConstraints')
 
         ext = cert.get_extension(1)
         self.assertTrue(isinstance(ext, X509Extension))
         self.assertTrue(ext.get_critical())
-        self.assertEqual(ext.get_short_name(), b('keyUsage'))
+        self.assertEqual(ext.get_short_name(), b'keyUsage')
 
         ext = cert.get_extension(2)
         self.assertTrue(isinstance(ext, X509Extension))
         self.assertFalse(ext.get_critical())
-        self.assertEqual(ext.get_short_name(), b('subjectAltName'))
+        self.assertEqual(ext.get_short_name(), b'subjectAltName')
 
         self.assertRaises(IndexError, cert.get_extension, -1)
         self.assertRaises(IndexError, cert.get_extension, 4)
@@ -1812,13 +1812,13 @@
         cert = load_certificate(FILETYPE_PEM, nulbyteSubjectAltNamePEM)
 
         ext = cert.get_extension(3)
-        self.assertEqual(ext.get_short_name(), b('subjectAltName'))
+        self.assertEqual(ext.get_short_name(), b'subjectAltName')
         self.assertEqual(
-            b("DNS:altnull.python.org\x00example.com, "
-              "email:null@python.org\x00user@example.org, "
-              "URI:http://null.python.org\x00http://example.org, "
-              "IP Address:192.0.2.1, IP Address:2001:DB8:0:0:0:0:0:1\n"),
-            b(str(ext)))
+            b"DNS:altnull.python.org\x00example.com, "
+            b"email:null@python.org\x00user@example.org, "
+            b"URI:http://null.python.org\x00http://example.org, "
+            b"IP Address:192.0.2.1, IP Address:2001:DB8:0:0:0:0:0:1\n",
+            str(ext).encode("ascii"))
 
     def test_invalid_digest_algorithm(self):
         """
@@ -1845,8 +1845,8 @@
         self.assertTrue(isinstance(subj, X509Name))
         self.assertEquals(
             subj.get_components(),
-            [(b('C'), b('US')), (b('ST'), b('IL')), (b('L'), b('Chicago')),
-             (b('O'), b('Testing')), (b('CN'), b('Testing Root CA'))])
+            [(b'C', b'US'), (b'ST', b'IL'), (b'L', b'Chicago'),
+             (b'O', b'Testing'), (b'CN', b'Testing Root CA')])
 
     def test_set_subject_wrong_args(self):
         """
@@ -1872,7 +1872,7 @@
         cert.set_subject(name)
         self.assertEquals(
             cert.get_subject().get_components(),
-            [(b('C'), b('AU')), (b('O'), b('Unit Tests'))])
+            [(b'C', b'AU'), (b'O', b'Unit Tests')])
 
     def test_get_issuer_wrong_args(self):
         """
@@ -1892,8 +1892,8 @@
         comp = subj.get_components()
         self.assertEquals(
             comp,
-            [(b('C'), b('US')), (b('ST'), b('IL')), (b('L'), b('Chicago')),
-             (b('O'), b('Testing')), (b('CN'), b('Testing Root CA'))])
+            [(b'C', b'US'), (b'ST', b'IL'), (b'L', b'Chicago'),
+             (b'O', b'Testing'), (b'CN', b'Testing Root CA')])
 
     def test_set_issuer_wrong_args(self):
         """
@@ -1918,7 +1918,7 @@
         cert.set_issuer(name)
         self.assertEquals(
             cert.get_issuer().get_components(),
-            [(b('C'), b('AU')), (b('O'), b('Unit Tests'))])
+            [(b'C', b'AU'), (b'O', b'Unit Tests')])
 
     def test_get_pubkey_uninitialized(self):
         """
@@ -1964,7 +1964,7 @@
         """
         cert = load_certificate(FILETYPE_PEM, self.pemData)
         self.assertEqual(
-            b("sha1WithRSAEncryption"), cert.get_signature_algorithm())
+            b"sha1WithRSAEncryption", cert.get_signature_algorithm())
 
     def test_get_undefined_signature_algorithm(self):
         """
@@ -1973,7 +1973,7 @@
         """
         # This certificate has been modified to indicate a bogus OID in the
         # signature algorithm field so that OpenSSL does not recognize it.
-        certPEM = b("""\
+        certPEM = b"""\
 -----BEGIN CERTIFICATE-----
 MIIC/zCCAmigAwIBAgIBATAGBgJ8BQUAMHsxCzAJBgNVBAYTAlNHMREwDwYDVQQK
 EwhNMkNyeXB0bzEUMBIGA1UECxMLTTJDcnlwdG8gQ0ExJDAiBgNVBAMTG00yQ3J5
@@ -1993,7 +1993,7 @@
 PEVk0Mk/V0aIsDE9bolfCi/i/QWZ3N8s5nTWMNyBBBmoSliWCm4jkkRZRD0ejgTN
 tgI5
 -----END CERTIFICATE-----
-""")
+"""
         cert = load_certificate(FILETYPE_PEM, certPEM)
         self.assertRaises(ValueError, cert.get_signature_algorithm)
 
@@ -2347,7 +2347,7 @@
         """
         passwd = b'Dogmeat[]{}!@#$%^&*()~`?/.,<>-_+=";:'
         p12 = self.gen_pkcs12(server_cert_pem, server_key_pem, root_cert_pem)
-        for friendly_name in [b('Serverlicious'), None, b('###')]:
+        for friendly_name in [b'Serverlicious', None, b'###']:
             p12.set_friendlyname(friendly_name)
             self.assertEqual(p12.get_friendlyname(), friendly_name)
             dumped_p12 = p12.export(passphrase=passwd, iter=2, maciter=3)
@@ -2609,7 +2609,7 @@
         """
         self.assertRaises(
             Error,
-            load_privatekey, FILETYPE_PEM, encryptedPrivateKeyPEM, b("quack"))
+            load_privatekey, FILETYPE_PEM, encryptedPrivateKeyPEM, b"quack")
 
     def test_load_privatekey_passphraseWrongType(self):
         """
@@ -2653,7 +2653,7 @@
 
         def cb(*a):
             called.append(None)
-            return b("quack")
+            return b"quack"
         self.assertRaises(
             Error,
             load_privatekey, FILETYPE_PEM, encryptedPrivateKeyPEM, cb)
@@ -2742,7 +2742,7 @@
         :py:obj:`dump_privatekey` writes an encrypted PEM when given a
         passphrase.
         """
-        passphrase = b("foo")
+        passphrase = b"foo"
         key = load_privatekey(FILETYPE_PEM, cleartextPrivateKeyPEM)
         pem = dump_privatekey(FILETYPE_PEM, key, GOOD_CIPHER, passphrase)
         self.assertTrue(isinstance(pem, binary_type))
@@ -2876,7 +2876,7 @@
         :py:obj:`dump_privatekey` writes an encrypted PEM when given a callback
         which returns the correct passphrase.
         """
-        passphrase = b("foo")
+        passphrase = b"foo"
         called = []
 
         def cb(writing):
@@ -3068,7 +3068,7 @@
         type name.
         """
         pkcs7 = load_pkcs7_data(FILETYPE_PEM, pkcs7Data)
-        self.assertEquals(pkcs7.get_type_name(), b('pkcs7-signedData'))
+        self.assertEquals(pkcs7.get_type_name(), b'pkcs7-signedData')
 
     def test_attribute(self):
         """
@@ -3163,7 +3163,7 @@
         revoked = Revoked()
         self.assertTrue(isinstance(revoked, Revoked))
         self.assertEquals(type(revoked), Revoked)
-        self.assertEquals(revoked.get_serial(), b('00'))
+        self.assertEquals(revoked.get_serial(), b'00')
         self.assertEquals(revoked.get_rev_date(), None)
         self.assertEquals(revoked.get_reason(), None)
 
@@ -3183,16 +3183,16 @@
         with grace.
         """
         revoked = Revoked()
-        ret = revoked.set_serial(b('10b'))
+        ret = revoked.set_serial(b'10b')
         self.assertEquals(ret, None)
         ser = revoked.get_serial()
-        self.assertEquals(ser, b('010B'))
+        self.assertEquals(ser, b'010B')
 
-        revoked.set_serial(b('31ppp'))  # a type error would be nice
+        revoked.set_serial(b'31ppp')  # a type error would be nice
         ser = revoked.get_serial()
-        self.assertEquals(ser, b('31'))
+        self.assertEquals(ser, b'31')
 
-        self.assertRaises(ValueError, revoked.set_serial, b('pqrst'))
+        self.assertRaises(ValueError, revoked.set_serial, b'pqrst')
         self.assertRaises(TypeError, revoked.set_serial, 100)
         self.assertRaises(TypeError, revoked.get_serial, 1)
         self.assertRaises(TypeError, revoked.get_serial, None)
@@ -3208,7 +3208,7 @@
         date = revoked.get_rev_date()
         self.assertEquals(date, None)
 
-        now = b(datetime.now().strftime("%Y%m%d%H%M%SZ"))
+        now = datetime.now().strftime("%Y%m%d%H%M%SZ").encode("ascii")
         ret = revoked.set_rev_date(now)
         self.assertEqual(ret, None)
         date = revoked.get_rev_date()
@@ -3227,8 +3227,8 @@
                 self.assertEquals(ret, None)
                 reason = revoked.get_reason()
                 self.assertEquals(
-                    reason.lower().replace(b(' '), b('')),
-                    r.lower().replace(b(' '), b('')))
+                    reason.lower().replace(b' ', b''),
+                    r.lower().replace(b' ', b''))
                 r = reason  # again with the resp of get
 
         revoked.set_reason(None)
@@ -3242,7 +3242,7 @@
         """
         revoked = Revoked()
         self.assertRaises(TypeError, revoked.set_reason, 100)
-        self.assertRaises(ValueError, revoked.set_reason, b('blue'))
+        self.assertRaises(ValueError, revoked.set_reason, b'blue')
 
     def test_get_reason_wrong_arguments(self):
         """
@@ -3295,10 +3295,10 @@
         """
         crl = CRL()
         revoked = Revoked()
-        now = b(datetime.now().strftime("%Y%m%d%H%M%SZ"))
+        now = datetime.now().strftime("%Y%m%d%H%M%SZ").encode("ascii")
         revoked.set_rev_date(now)
-        revoked.set_serial(b('3ab'))
-        revoked.set_reason(b('sUpErSeDEd'))
+        revoked.set_serial(b'3ab')
+        revoked.set_reason(b'sUpErSeDEd')
         crl.add_revoked(revoked)
         return crl
 
@@ -3315,10 +3315,10 @@
 
         # These magic values are based on the way the CRL above was constructed
         # and with what certificate it was exported.
-        text.index(b('Serial Number: 03AB'))
-        text.index(b('Superseded'))
+        text.index(b'Serial Number: 03AB')
+        text.index(b'Superseded')
         text.index(
-            b('Issuer: /C=US/ST=IL/L=Chicago/O=Testing/CN=Testing Root CA')
+            b'Issuer: /C=US/ST=IL/L=Chicago/O=Testing/CN=Testing Root CA'
         )
 
     def test_export_der(self):
@@ -3334,10 +3334,10 @@
         text = _runopenssl(
             dumped_crl, b"crl", b"-noout", b"-text", b"-inform", b"DER"
         )
-        text.index(b('Serial Number: 03AB'))
-        text.index(b('Superseded'))
+        text.index(b'Serial Number: 03AB')
+        text.index(b'Superseded')
         text.index(
-            b('Issuer: /C=US/ST=IL/L=Chicago/O=Testing/CN=Testing Root CA')
+            b'Issuer: /C=US/ST=IL/L=Chicago/O=Testing/CN=Testing Root CA'
         )
 
     def test_export_text(self):
@@ -3365,7 +3365,7 @@
         crl = self._get_crl()
         dumped_crl = crl.export(self.cert, self.pkey, digest=b"sha1")
         text = _runopenssl(dumped_crl, b"crl", b"-noout", b"-text")
-        text.index(b('Signature Algorithm: sha1'))
+        text.index(b'Signature Algorithm: sha1')
 
     def test_export_md5_digest(self):
         """
@@ -3378,7 +3378,7 @@
             self.assertEqual(0, len(catcher))
         dumped_crl = crl.export(self.cert, self.pkey, digest=b"md5")
         text = _runopenssl(dumped_crl, b"crl", b"-noout", b"-text")
-        text.index(b('Signature Algorithm: md5'))
+        text.index(b'Signature Algorithm: md5')
 
     def test_export_default_digest(self):
         """
@@ -3395,7 +3395,7 @@
                 str(catcher[0].message),
             )
         text = _runopenssl(dumped_crl, b"crl", b"-noout", b"-text")
-        text.index(b('Signature Algorithm: md5'))
+        text.index(b'Signature Algorithm: md5')
 
     def test_export_invalid(self):
         """
@@ -3468,20 +3468,20 @@
         crl = CRL()
 
         revoked = Revoked()
-        now = b(datetime.now().strftime("%Y%m%d%H%M%SZ"))
+        now = datetime.now().strftime("%Y%m%d%H%M%SZ").encode("ascii")
         revoked.set_rev_date(now)
-        revoked.set_serial(b('3ab'))
+        revoked.set_serial(b'3ab')
         crl.add_revoked(revoked)
-        revoked.set_serial(b('100'))
-        revoked.set_reason(b('sUpErSeDEd'))
+        revoked.set_serial(b'100')
+        revoked.set_reason(b'sUpErSeDEd')
         crl.add_revoked(revoked)
 
         revs = crl.get_revoked()
         self.assertEqual(len(revs), 2)
         self.assertEqual(type(revs[0]), Revoked)
         self.assertEqual(type(revs[1]), Revoked)
-        self.assertEqual(revs[0].get_serial(), b('03AB'))
-        self.assertEqual(revs[1].get_serial(), b('0100'))
+        self.assertEqual(revs[0].get_serial(), b'03AB')
+        self.assertEqual(revs[1].get_serial(), b'0100')
         self.assertEqual(revs[0].get_rev_date(), now)
         self.assertEqual(revs[1].get_rev_date(), now)
 
@@ -3514,19 +3514,19 @@
         crl = load_crl(FILETYPE_PEM, crlData)
         revs = crl.get_revoked()
         self.assertEqual(len(revs), 2)
-        self.assertEqual(revs[0].get_serial(), b('03AB'))
+        self.assertEqual(revs[0].get_serial(), b'03AB')
         self.assertEqual(revs[0].get_reason(), None)
-        self.assertEqual(revs[1].get_serial(), b('0100'))
-        self.assertEqual(revs[1].get_reason(), b('Superseded'))
+        self.assertEqual(revs[1].get_serial(), b'0100')
+        self.assertEqual(revs[1].get_reason(), b'Superseded')
 
         der = _runopenssl(crlData, b"crl", b"-outform", b"DER")
         crl = load_crl(FILETYPE_ASN1, der)
         revs = crl.get_revoked()
         self.assertEqual(len(revs), 2)
-        self.assertEqual(revs[0].get_serial(), b('03AB'))
+        self.assertEqual(revs[0].get_serial(), b'03AB')
         self.assertEqual(revs[0].get_reason(), None)
-        self.assertEqual(revs[1].get_serial(), b('0100'))
-        self.assertEqual(revs[1].get_reason(), b('Superseded'))
+        self.assertEqual(revs[1].get_serial(), b'0100')
+        self.assertEqual(revs[1].get_reason(), b'Superseded')
 
     def test_load_crl_wrong_args(self):
         """
@@ -3752,12 +3752,12 @@
         :py:obj:`sign` generates a cryptographic signature which
         :py:obj:`verify` can check.
         """
-        content = b(
-            "It was a bright cold day in April, and the clocks were striking "
-            "thirteen. Winston Smith, his chin nuzzled into his breast in an "
-            "effort to escape the vile wind, slipped quickly through the "
-            "glass doors of Victory Mansions, though not quickly enough to "
-            "prevent a swirl of gritty dust from entering along with him.")
+        content = (
+            b"It was a bright cold day in April, and the clocks were striking "
+            b"thirteen. Winston Smith, his chin nuzzled into his breast in an "
+            b"effort to escape the vile wind, slipped quickly through the "
+            b"glass doors of Victory Mansions, though not quickly enough to "
+            b"prevent a swirl of gritty dust from entering along with him.")
 
         # sign the content with this private key
         priv_key = load_privatekey(FILETYPE_PEM, root_key_pem)
@@ -3781,7 +3781,7 @@
             # signing it.
             self.assertRaises(
                 Error, verify,
-                good_cert, sig, content + b("tainted"), digest)
+                good_cert, sig, content + b"tainted", digest)
 
         # test that unknown digest types fail
         self.assertRaises(
@@ -3834,7 +3834,7 @@
         """
         :py:obj:`sign` produces a signature for a string with embedded nulls.
         """
-        content = b("Watch out!  \0  Did you see it?")
+        content = b"Watch out!  \0  Did you see it?"
         priv_key = load_privatekey(FILETYPE_PEM, root_key_pem)
         good_cert = load_certificate(FILETYPE_PEM, root_cert_pem)
         sig = sign(priv_key, content, "sha1")
@@ -3844,12 +3844,12 @@
         """
         :py:obj:`sign` produces a signature for a string when using a long key.
         """
-        content = b(
-            "It was a bright cold day in April, and the clocks were striking "
-            "thirteen. Winston Smith, his chin nuzzled into his breast in an "
-            "effort to escape the vile wind, slipped quickly through the "
-            "glass doors of Victory Mansions, though not quickly enough to "
-            "prevent a swirl of gritty dust from entering along with him.")
+        content = (
+            b"It was a bright cold day in April, and the clocks were striking "
+            b"thirteen. Winston Smith, his chin nuzzled into his breast in an "
+            b"effort to escape the vile wind, slipped quickly through the "
+            b"glass doors of Victory Mansions, though not quickly enough to "
+            b"prevent a swirl of gritty dust from entering along with him.")
 
         priv_key = load_privatekey(FILETYPE_PEM, large_key_pem)
         sign(priv_key, content, "sha1")
@@ -3892,7 +3892,7 @@
             curve = next(iter(curves))
             self.assertEqual(curve.name, get_elliptic_curve(curve.name).name)
         else:
-            self.assertRaises(ValueError, get_elliptic_curve, u("prime256v1"))
+            self.assertRaises(ValueError, get_elliptic_curve, u"prime256v1")
 
     def test_not_a_curve(self):
         """
@@ -3900,7 +3900,7 @@
         with a name which does not identify a supported curve.
         """
         self.assertRaises(
-            ValueError, get_elliptic_curve, u("this curve was just invented"))
+            ValueError, get_elliptic_curve, u"this curve was just invented")
 
     def test_repr(self):
         """
diff --git a/tests/test_rand.py b/tests/test_rand.py
index ece0935..0350e9e 100644
--- a/tests/test_rand.py
+++ b/tests/test_rand.py
@@ -13,7 +13,7 @@
 
 from OpenSSL import rand
 
-from .util import NON_ASCII, TestCase, b
+from .util import NON_ASCII, TestCase
 
 
 class RandTests(TestCase):
@@ -55,15 +55,15 @@
         raises :py:obj:`TypeError`.
         """
         self.assertRaises(TypeError, rand.add)
-        self.assertRaises(TypeError, rand.add, b("foo"), None)
+        self.assertRaises(TypeError, rand.add, b"foo", None)
         self.assertRaises(TypeError, rand.add, None, 3)
-        self.assertRaises(TypeError, rand.add, b("foo"), 3, None)
+        self.assertRaises(TypeError, rand.add, b"foo", 3, None)
 
     def test_add(self):
         """
         :py:obj:`OpenSSL.rand.add` adds entropy to the PRNG.
         """
-        rand.add(b('hamburger'), 3)
+        rand.add(b'hamburger', 3)
 
     def test_seed_wrong_args(self):
         """
@@ -73,13 +73,13 @@
         """
         self.assertRaises(TypeError, rand.seed)
         self.assertRaises(TypeError, rand.seed, None)
-        self.assertRaises(TypeError, rand.seed, b("foo"), None)
+        self.assertRaises(TypeError, rand.seed, b"foo", None)
 
     def test_seed(self):
         """
         :py:obj:`OpenSSL.rand.seed` adds entropy to the PRNG.
         """
-        rand.seed(b('milk shake'))
+        rand.seed(b'milk shake')
 
     def test_status_wrong_args(self):
         """
diff --git a/tests/test_ssl.py b/tests/test_ssl.py
index ac57280..a2aad55 100644
--- a/tests/test_ssl.py
+++ b/tests/test_ssl.py
@@ -75,7 +75,7 @@
     SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP, SSL_CB_CONNECT_EXIT,
     SSL_CB_HANDSHAKE_START, SSL_CB_HANDSHAKE_DONE)
 
-from .util import WARNING_TYPE_EXPECTED, NON_ASCII, TestCase, b
+from .util import WARNING_TYPE_EXPECTED, NON_ASCII, TestCase
 from .test_crypto import (
     cleartextCertificatePEM, cleartextPrivateKeyPEM,
     client_cert_pem, client_key_pem, server_cert_pem, server_key_pem,
@@ -138,10 +138,10 @@
     # Let's pass some unencrypted data to make sure our socket connection is
     # fine.  Just one byte, so we don't have to worry about buffers getting
     # filled up or fragmentation.
-    server.send(b("x"))
-    assert client.recv(1024) == b("x")
-    client.send(b("y"))
-    assert server.recv(1024) == b("y")
+    server.send(b"x")
+    assert client.recv(1024) == b"x"
+    client.send(b"y")
+    assert server.recv(1024) == b"y"
 
     # Most of our callers want non-blocking sockets, make it easy for them.
     server.setblocking(False)
@@ -170,7 +170,7 @@
         2. A new intermediate certificate signed by cacert (icert)
         3. A new server certificate signed by icert (scert)
     """
-    caext = X509Extension(b('basicConstraints'), False, b('CA:true'))
+    caext = X509Extension(b'basicConstraints', False, b'CA:true')
 
     # Step 1
     cakey = PKey()
@@ -179,8 +179,8 @@
     cacert.get_subject().commonName = "Authority Certificate"
     cacert.set_issuer(cacert.get_subject())
     cacert.set_pubkey(cakey)
-    cacert.set_notBefore(b("20000101000000Z"))
-    cacert.set_notAfter(b("20200101000000Z"))
+    cacert.set_notBefore(b"20000101000000Z")
+    cacert.set_notAfter(b"20200101000000Z")
     cacert.add_extensions([caext])
     cacert.set_serial_number(0)
     cacert.sign(cakey, "sha1")
@@ -192,8 +192,8 @@
     icert.get_subject().commonName = "Intermediate Certificate"
     icert.set_issuer(cacert.get_subject())
     icert.set_pubkey(ikey)
-    icert.set_notBefore(b("20000101000000Z"))
-    icert.set_notAfter(b("20200101000000Z"))
+    icert.set_notBefore(b"20000101000000Z")
+    icert.set_notAfter(b"20200101000000Z")
     icert.add_extensions([caext])
     icert.set_serial_number(0)
     icert.sign(cakey, "sha1")
@@ -205,10 +205,10 @@
     scert.get_subject().commonName = "Server Certificate"
     scert.set_issuer(icert.get_subject())
     scert.set_pubkey(skey)
-    scert.set_notBefore(b("20000101000000Z"))
-    scert.set_notAfter(b("20200101000000Z"))
+    scert.set_notBefore(b"20000101000000Z")
+    scert.set_notAfter(b"20200101000000Z")
     scert.add_extensions([
-        X509Extension(b('basicConstraints'), True, b('CA:false'))])
+        X509Extension(b'basicConstraints', True, b'CA:false')])
     scert.set_serial_number(0)
     scert.sign(ikey, "sha1")
 
@@ -925,7 +925,7 @@
         :py:obj:`Context.set_passwd_cb` accepts a callable which will be
         invoked when a private key is loaded from an encrypted PEM.
         """
-        passphrase = b("foobar")
+        passphrase = b"foobar"
         pemFile = self._write_encrypted_pem(passphrase)
         calledWith = []
 
@@ -945,7 +945,7 @@
         :py:obj:`Context.use_privatekey_file` propagates any exception raised
         by the passphrase callback.
         """
-        pemFile = self._write_encrypted_pem(b("monkeys are nice"))
+        pemFile = self._write_encrypted_pem(b"monkeys are nice")
 
         def passphraseCallback(maxlen, verify, extra):
             raise RuntimeError("Sorry, I am a fail.")
@@ -960,7 +960,7 @@
         :py:obj:`OpenSSL.SSL.Error` if the passphrase callback returns a false
         value.
         """
-        pemFile = self._write_encrypted_pem(b("monkeys are nice"))
+        pemFile = self._write_encrypted_pem(b"monkeys are nice")
 
         def passphraseCallback(maxlen, verify, extra):
             return b""
@@ -975,7 +975,7 @@
         :py:obj:`OpenSSL.SSL.Error` if the passphrase callback returns a true
         non-string value.
         """
-        pemFile = self._write_encrypted_pem(b("monkeys are nice"))
+        pemFile = self._write_encrypted_pem(b"monkeys are nice")
 
         def passphraseCallback(maxlen, verify, extra):
             return 10
@@ -990,12 +990,12 @@
         longer than the indicated maximum length, it is truncated.
         """
         # A priori knowledge!
-        passphrase = b("x") * 1024
+        passphrase = b"x" * 1024
         pemFile = self._write_encrypted_pem(passphrase)
 
         def passphraseCallback(maxlen, verify, extra):
             assert maxlen == 1024
-            return passphrase + b("y")
+            return passphrase + b"y"
 
         context = Context(TLSv1_METHOD)
         context.set_passwd_cb(passphraseCallback)
@@ -1680,11 +1680,11 @@
 
         client = Connection(Context(TLSv1_METHOD), None)
         client.set_connect_state()
-        client.set_tlsext_host_name(b("foo1.example.com"))
+        client.set_tlsext_host_name(b"foo1.example.com")
 
         self._interactInMemory(server, client)
 
-        self.assertEqual([(server, b("foo1.example.com"))], args)
+        self.assertEqual([(server, b"foo1.example.com")], args)
 
 
 class NextProtoNegotiationTests(TestCase, _LoopbackMixin):
@@ -2194,13 +2194,13 @@
         self.assertRaises(TypeError, conn.set_tlsext_host_name, object())
         self.assertRaises(TypeError, conn.set_tlsext_host_name, 123, 456)
         self.assertRaises(
-            TypeError, conn.set_tlsext_host_name, b("with\0null"))
+            TypeError, conn.set_tlsext_host_name, b"with\0null")
 
         if PY3:
             # On Python 3.x, don't accidentally implicitly convert from text.
             self.assertRaises(
                 TypeError,
-                conn.set_tlsext_host_name, b("example.com").decode("ascii"))
+                conn.set_tlsext_host_name, b"example.com".decode("ascii"))
 
     def test_get_servername_wrong_args(self):
         """
@@ -2234,10 +2234,10 @@
         :py:obj:`socket.MSG_PEEK` is passed.
         """
         server, client = self._loopback()
-        server.send(b('xy'))
-        self.assertEqual(client.recv(2, MSG_PEEK), b('xy'))
-        self.assertEqual(client.recv(2, MSG_PEEK), b('xy'))
-        self.assertEqual(client.recv(2), b('xy'))
+        server.send(b'xy')
+        self.assertEqual(client.recv(2, MSG_PEEK), b'xy')
+        self.assertEqual(client.recv(2, MSG_PEEK), b'xy')
+        self.assertEqual(client.recv(2), b'xy')
 
     def test_connect_wrong_args(self):
         """
@@ -2892,9 +2892,9 @@
         all of it and returns the number of bytes sent.
         """
         server, client = self._loopback()
-        count = server.send(b('xy'))
+        count = server.send(b'xy')
         self.assertEquals(count, 2)
-        self.assertEquals(client.recv(2), b('xy'))
+        self.assertEquals(client.recv(2), b'xy')
 
     def test_text(self):
         """
@@ -2923,9 +2923,9 @@
         of bytes sent.
         """
         server, client = self._loopback()
-        count = server.send(memoryview(b('xy')))
+        count = server.send(memoryview(b'xy'))
         self.assertEquals(count, 2)
-        self.assertEquals(client.recv(2), b('xy'))
+        self.assertEquals(client.recv(2), b'xy')
 
     @skip_if_py3
     def test_short_buffer(self):
@@ -2935,9 +2935,9 @@
         of bytes sent.
         """
         server, client = self._loopback()
-        count = server.send(buffer(b('xy')))
+        count = server.send(buffer(b'xy'))
         self.assertEquals(count, 2)
-        self.assertEquals(client.recv(2), b('xy'))
+        self.assertEquals(client.recv(2), b'xy')
 
 
 def _make_memoryview(size):
@@ -2961,10 +2961,10 @@
         output_buffer = factory(5)
 
         server, client = self._loopback()
-        server.send(b('xy'))
+        server.send(b'xy')
 
         self.assertEqual(client.recv_into(output_buffer), 2)
-        self.assertEqual(output_buffer, bytearray(b('xy\x00\x00\x00')))
+        self.assertEqual(output_buffer, bytearray(b'xy\x00\x00\x00'))
 
     def test_bytearray_no_length(self):
         """
@@ -2982,11 +2982,11 @@
         output_buffer = factory(10)
 
         server, client = self._loopback()
-        server.send(b('abcdefghij'))
+        server.send(b'abcdefghij')
 
         self.assertEqual(client.recv_into(output_buffer, 5), 5)
         self.assertEqual(
-            output_buffer, bytearray(b('abcde\x00\x00\x00\x00\x00'))
+            output_buffer, bytearray(b'abcde\x00\x00\x00\x00\x00')
         )
 
     def test_bytearray_respects_length(self):
@@ -3007,12 +3007,12 @@
         output_buffer = factory(5)
 
         server, client = self._loopback()
-        server.send(b('abcdefghij'))
+        server.send(b'abcdefghij')
 
         self.assertEqual(client.recv_into(output_buffer), 5)
-        self.assertEqual(output_buffer, bytearray(b('abcde')))
+        self.assertEqual(output_buffer, bytearray(b'abcde'))
         rest = client.recv(5)
-        self.assertEqual(b('fghij'), rest)
+        self.assertEqual(b'fghij', rest)
 
     def test_bytearray_doesnt_overfill(self):
         """
@@ -3034,13 +3034,13 @@
     def test_peek(self):
 
         server, client = self._loopback()
-        server.send(b('xy'))
+        server.send(b'xy')
 
         for _ in range(2):
             output_buffer = bytearray(5)
             self.assertEqual(
                 client.recv_into(output_buffer, flags=MSG_PEEK), 2)
-            self.assertEqual(output_buffer, bytearray(b('xy\x00\x00\x00')))
+            self.assertEqual(output_buffer, bytearray(b'xy\x00\x00\x00'))
 
     @skip_if_py26
     def test_memoryview_no_length(self):
@@ -3101,8 +3101,8 @@
         passed to it.
         """
         server, client = self._loopback()
-        server.sendall(b('x'))
-        self.assertEquals(client.recv(1), b('x'))
+        server.sendall(b'x')
+        self.assertEquals(client.recv(1), b'x')
 
     def test_text(self):
         """
@@ -3129,8 +3129,8 @@
         :py:obj:`Connection.sendall` transmits all of them.
         """
         server, client = self._loopback()
-        server.sendall(memoryview(b('x')))
-        self.assertEquals(client.recv(1), b('x'))
+        server.sendall(memoryview(b'x'))
+        self.assertEquals(client.recv(1), b'x')
 
     @skip_if_py3
     def test_short_buffers(self):
@@ -3139,8 +3139,8 @@
         :py:obj:`Connection.sendall` transmits all of them.
         """
         server, client = self._loopback()
-        server.sendall(buffer(b('x')))
-        self.assertEquals(client.recv(1), b('x'))
+        server.sendall(buffer(b'x'))
+        self.assertEquals(client.recv(1), b'x')
 
     def test_long(self):
         """
@@ -3152,7 +3152,7 @@
         # Should be enough, underlying SSL_write should only do 16k at a time.
         # On Windows, after 32k of bytes the write will block (forever
         # - because no one is yet reading).
-        message = b('x') * (1024 * 32 - 1) + b('y')
+        message = b'x' * (1024 * 32 - 1) + b'y'
         server.sendall(message)
         accum = []
         received = 0
@@ -3160,7 +3160,7 @@
             data = client.recv(1024)
             accum.append(data)
             received += len(data)
-        self.assertEquals(message, b('').join(accum))
+        self.assertEquals(message, b''.join(accum))
 
     def test_closed(self):
         """
@@ -3449,7 +3449,7 @@
             client_conn.client_random(), client_conn.server_random())
 
         # Here are the bytes we'll try to send.
-        important_message = b('One if by land, two if by sea.')
+        important_message = b'One if by land, two if by sea.'
 
         server_conn.write(important_message)
         self.assertEquals(
@@ -3473,7 +3473,7 @@
         """
         server_conn, client_conn = self._loopback()
 
-        important_message = b("Help me Obi Wan Kenobi, you're my only hope.")
+        important_message = b"Help me Obi Wan Kenobi, you're my only hope."
         client_conn.send(important_message)
         msg = server_conn.recv(1024)
         self.assertEqual(msg, important_message)
diff --git a/tests/util.py b/tests/util.py
index 56d7154..2cab91f 100644
--- a/tests/util.py
+++ b/tests/util.py
@@ -24,11 +24,11 @@
 
 from . import memdbg
 
-from OpenSSL._util import ffi, lib, byte_string as b
+from OpenSSL._util import ffi, lib
 
 
 # This is the UTF-8 encoding of the SNOWMAN unicode code point.
-NON_ASCII = b("\xe2\x98\x83").decode("utf-8")
+NON_ASCII = b"\xe2\x98\x83".decode("utf-8")
 
 
 class TestCase(TestCase):