diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -20,5 +20,5 @@
   let extAttrs = PKCS9Attributes [PKCS9Attribute $ ExtBasicConstraints False Nothing, PKCS9Attribute $ ExtKeyUsage [KeyUsage_digitalSignature,KeyUsage_nonRepudiation,KeyUsage_keyEncipherment]]
   Right req <- generateCSR subjectAttrs extAttrs (KeyPairRSA pubKey privKey) SHA512
   putStrLn . show . toPEM $ req -- export in PEM format
-  putStrLn . show $ verify (csrToSigned req) $ PubKeyRSA pubKey -- sign CSR before verify
+  putStrLn . show $ verify (csrToSigned req) $ PubKeyRSA pubKey -- sign CSR before verifying
 ```
diff --git a/pkcs10.cabal b/pkcs10.cabal
--- a/pkcs10.cabal
+++ b/pkcs10.cabal
@@ -1,5 +1,5 @@
 name:                pkcs10
-version:             0.1.0.3
+version:             0.1.0.4
 synopsis:            PKCS#10 library
 description:         Please see README.md
 homepage:            https://github.com/fcomb/pkcs10-hs#readme
@@ -13,6 +13,15 @@
 cabal-version:       >=1.10
 stability:           experimental
 extra-doc-files:     README.md
+extra-source-files:  test/fixtures/dsaparams
+                   , test/fixtures/dsa.pem
+                   , test/fixtures/dsa1.csr
+                   , test/fixtures/dsa2.csr
+                   , test/fixtures/dsa3.csr
+                   , test/fixtures/rsa.pem
+                   , test/fixtures/rsa1.csr
+                   , test/fixtures/rsa2.csr
+                   , test/fixtures/rsa3.csr
 
 library
   ghc-options:         -W
@@ -39,6 +48,8 @@
                      , pkcs10
                      , tasty
                      , tasty-hunit
+                     , tasty-quickcheck
+                     , QuickCheck
                      , bytestring
                      , cryptonite
                      , pem
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -1,6 +1,7 @@
 module Main where
 
 import           Control.Applicative      ((<$>), (<*>))
+import           Control.Monad
 import           Crypto.Hash
 import qualified Crypto.PubKey.DSA        as DSA
 import qualified Crypto.PubKey.RSA        as RSA
@@ -13,16 +14,21 @@
 import           Data.X509
 import           Data.X509.PKCS10
 import           Keys
+import           Test.QuickCheck.Monadic  (monadicIO, run)
 import           Test.Tasty
 import           Test.Tasty.HUnit
+import           Test.Tasty.QuickCheck
 
 main :: IO ()
 main = do
   defaultMain tests
 
 tests :: TestTree
-tests = testGroup "Tests" [unitTests]
+tests = testGroup "Tests" [properties, unitTests]
 
+properties :: TestTree
+properties = testGroup "Properties" [qcProps]
+
 unitTests = testGroup "Unit tests"
   [ testCase "CSR with subject and extension (RSA)" $ do
      req <- defaultRsaCSR subjectAttrs extAttrs
@@ -46,6 +52,9 @@
       checkRsaFixtureCSR "dsa" "dsa3" emptySubjectAttrs emptyExtAttrs readDSA
   ]
 
+qcProps = testGroup "(checked by QuickCheck)"
+  [ testProperty "CSR" (property_csr) ]
+
 subjectAttrs = makeX520Attributes [(X520CommonName, "node.fcomb.io"), (X520OrganizationName, "fcomb")]
 
 pemSubjectAttrs = X520Attributes [(X520CommonName, asn1CharacterString Printable "api"), (X520CommonName, asn1CharacterString Printable "fcomb"), (X520CommonName, asn1CharacterString Printable "com"), (X520StateOrProvinceName, asn1CharacterString Printable "Moscow"), (X520LocalityName, asn1CharacterString Printable "Moscow"), (X520OrganizationName, asn1CharacterString Printable "End Point"), (X520OrganizationalUnitName, asn1CharacterString Printable "fcomb"), (EmailAddress, asn1CharacterString IA5 "in@fcomb.io"), (X509SubjectAltName, asn1CharacterString Printable "DNS.1=fcomb.com")]
@@ -58,13 +67,39 @@
 
 emptyExtAttrs = PKCS9Attributes []
 
+instance Arbitrary PubKey where
+  arbitrary = elements [PubKeyRSA rsaPublicKey, PubKeyDSA dsaPublicKey]
+
+instance Arbitrary ASN1StringEncoding where
+  arbitrary = elements [IA5,UTF8,Printable,Visible]
+
+instance Arbitrary X520Attribute where
+  arbitrary = elements [X520CommonName,X520SerialNumber,X520Name,X520Surname,X520GivenName,X520Initials,X520GenerationQualifier,X520CountryName,X520LocalityName,X520StateOrProvinceName,X520StreetAddress,X520OrganizationName,X520OrganizationalUnitName,X520Title,X520DNQualifier,X520Pseudonym,X509SubjectAltName,EmailAddress,IPAddress,DomainComponent,UserId,RawAttribute [12,3,4,5]]
+
+arbitraryX520Attrs r1 r2 =
+  choose (r1,r2) >>= \l -> replicateM l arbitraryAttr
+  where
+    arbitraryAttr = (,) <$> arbitrary <*> arbitrary
+
+instance Arbitrary X520Attributes where
+  arbitrary = X520Attributes <$> arbitraryX520Attrs 0 15
+
+arbitraryBS r1 r2 = choose (r1,r2) >>= \l -> (B.pack <$> replicateM l arbitrary)
+
+instance Arbitrary ASN1CharacterString where
+  arbitrary = ASN1CharacterString <$> arbitrary <*> arbitraryBS 1 36
+
+property_csr subjectAttrs pubKey = monadicIO $ do
+  req <- run $ defaultRsaCSR subjectAttrs pemExtAttrs
+  return $ checkCSR (csrToSigned req) subjectAttrs pemExtAttrs pubKey
+
 readRSA pem = PubKeyRSA $ readRsaPubKey pem 256
 
 readDSA pem = PubKeyDSA $ readDsaPubKey pem
 
 checkRsaFixtureCSR keyName csrName subjectAttrs extAttrs pkf = do
-  keyPem <- readPEMFile $ "./test/fixtures/" ++ keyName ++ ".pem"
-  csrPem <- readPEMFile $ "./test/fixtures/" ++ csrName ++ ".csr"
+  keyPem <- readPEMFile $ "test/fixtures/" ++ keyName ++ ".pem"
+  csrPem <- readPEMFile $ "test/fixtures/" ++ csrName ++ ".csr"
   checkCSR (readCSR csrPem) subjectAttrs extAttrs $ pkf keyPem
 
 defaultRsaCSR subjectAttrs extAttrs = do
@@ -95,13 +130,13 @@
 
 checkDER csr = do
   let (Right csr') = (fromDER . toDER) csr
-  assertBool "csr' == csr" $ (certificationRequest csr') == csr
+  assertBool "DER: csr' == csr" $ (certificationRequest csr') == csr
 
 checkPEM csr = do
   let (Right csr') = (fromPEM . toPEM) csr
-  assertBool "csr' == csr" $ (certificationRequest csr') == csr
+  assertBool "PEM: csr' == csr" $ (certificationRequest csr') == csr
   let (Right csr'') = (fromPEM . toNewFormatPEM) csr
-  assertBool "csr'' == csr" $
+  assertBool "PEM: csr'' == csr" $
     (certificationRequest csr'') == csr
   assertBool "pemName == CERTIFICATE REQUEST" $
     (pemName . toPEM $ csr) == "CERTIFICATE REQUEST"
diff --git a/test/fixtures/dsa.pem b/test/fixtures/dsa.pem
new file mode 100644
--- /dev/null
+++ b/test/fixtures/dsa.pem
@@ -0,0 +1,12 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIBuwIBAAKBgQCwn7E7CJSxcVw4ywBxTAQzJB8k5z0rVT/SbjuPDCnJCAy68IPU
+7EJekWii8HTFvWSh0HKQalCLS+vzg76VY/9wn8oDDtHT7QSptBn9Xc9Ms3OHFRnf
+kG/SGRggfJ7CvcZ4FSI870ijSy3NYFJWwfSSFVYttxkZ0GW357iin6uiewIVAKRt
+6yDH5JTnplHkAzL4Jhw0LnklAoGAfTz+x2GrElIqHZKle80LVTO0P1fBdhBCHa1h
+8ktPTCVLL6XrraDnqk9jgpLVKXu499IMRwTgElf1bK+TWvwXEeanYIQKU63PdkYf
+BgZoszrnJyGDY0LTLO4e5GpPhLQNHSvVckmYOXIaNb60TkYRWEoLFoWep1/3iNQ/
+EpYmNFsCgYBVZlbcoBHRdjf+VPlx7kZhYt6Y+7GVS8LBc142uuzFW2FIyZQaIYul
+/i45y/GUugDEfDbudY5GGr1My7mLFp6ysxmCwrKhzs/W4yTkfDbdbSiDsZ5tGK/t
+JmITQmBTaAhaLo4rW5rNW2SI+GgGjpJHZnbaV1NDH2RXtUppE7PvoQIVAIRuQNGz
+cdbHbJYTwUj+T+y7t8Xo
+-----END DSA PRIVATE KEY-----
diff --git a/test/fixtures/dsa1.csr b/test/fixtures/dsa1.csr
new file mode 100644
--- /dev/null
+++ b/test/fixtures/dsa1.csr
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIC0zCCApMCAQAwgagxDDAKBgNVBAMTA2FwaTEOMAwGA1UEAxMFZmNvbWIxDDAK
+BgNVBAMTA2NvbTEPMA0GA1UECBMGTW9zY293MQ8wDQYDVQQHEwZNb3Njb3cxEjAQ
+BgNVBAoTCUVuZCBQb2ludDEOMAwGA1UECxMFZmNvbWIxGjAYBgkqhkiG9w0BCQEW
+C2luQGZjb21iLmlvMRgwFgYDVR0REw9ETlMuMT1mY29tYi5jb20wggG2MIIBKwYH
+KoZIzjgEATCCAR4CgYEAsJ+xOwiUsXFcOMsAcUwEMyQfJOc9K1U/0m47jwwpyQgM
+uvCD1OxCXpFoovB0xb1kodBykGpQi0vr84O+lWP/cJ/KAw7R0+0EqbQZ/V3PTLNz
+hxUZ35Bv0hkYIHyewr3GeBUiPO9Io0stzWBSVsH0khVWLbcZGdBlt+e4op+ronsC
+FQCkbesgx+SU56ZR5AMy+CYcNC55JQKBgH08/sdhqxJSKh2SpXvNC1UztD9XwXYQ
+Qh2tYfJLT0wlSy+l662g56pPY4KS1Sl7uPfSDEcE4BJX9Wyvk1r8FxHmp2CEClOt
+z3ZGHwYGaLM65ychg2NC0yzuHuRqT4S0DR0r1XJJmDlyGjW+tE5GEVhKCxaFnqdf
+94jUPxKWJjRbA4GEAAKBgFVmVtygEdF2N/5U+XHuRmFi3pj7sZVLwsFzXja67MVb
+YUjJlBohi6X+LjnL8ZS6AMR8Nu51jkYavUzLuYsWnrKzGYLCsqHOz9bjJOR8Nt1t
+KIOxnm0Yr+0mYhNCYFNoCFoujitbms1bZIj4aAaOkkdmdtpXU0MfZFe1SmkTs++h
+oCkwJwYJKoZIhvcNAQkOMRowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAJBgcq
+hkjOOAQDAy8AMCwCFHE4OUdP8t/FBPo+JU3HOTHog61nAhQD9z9bT36Y7cJ5vBoM
+mQnC6ti5aA==
+-----END CERTIFICATE REQUEST-----
diff --git a/test/fixtures/dsa2.csr b/test/fixtures/dsa2.csr
new file mode 100644
--- /dev/null
+++ b/test/fixtures/dsa2.csr
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICqjCCAmoCAQAwgagxDDAKBgNVBAMTA2FwaTEOMAwGA1UEAxMFZmNvbWIxDDAK
+BgNVBAMTA2NvbTEPMA0GA1UECBMGTW9zY293MQ8wDQYDVQQHEwZNb3Njb3cxEjAQ
+BgNVBAoTCUVuZCBQb2ludDEOMAwGA1UECxMFZmNvbWIxGjAYBgkqhkiG9w0BCQEW
+C2luQGZjb21iLmlvMRgwFgYDVR0REw9ETlMuMT1mY29tYi5jb20wggG2MIIBKwYH
+KoZIzjgEATCCAR4CgYEAsJ+xOwiUsXFcOMsAcUwEMyQfJOc9K1U/0m47jwwpyQgM
+uvCD1OxCXpFoovB0xb1kodBykGpQi0vr84O+lWP/cJ/KAw7R0+0EqbQZ/V3PTLNz
+hxUZ35Bv0hkYIHyewr3GeBUiPO9Io0stzWBSVsH0khVWLbcZGdBlt+e4op+ronsC
+FQCkbesgx+SU56ZR5AMy+CYcNC55JQKBgH08/sdhqxJSKh2SpXvNC1UztD9XwXYQ
+Qh2tYfJLT0wlSy+l662g56pPY4KS1Sl7uPfSDEcE4BJX9Wyvk1r8FxHmp2CEClOt
+z3ZGHwYGaLM65ychg2NC0yzuHuRqT4S0DR0r1XJJmDlyGjW+tE5GEVhKCxaFnqdf
+94jUPxKWJjRbA4GEAAKBgFVmVtygEdF2N/5U+XHuRmFi3pj7sZVLwsFzXja67MVb
+YUjJlBohi6X+LjnL8ZS6AMR8Nu51jkYavUzLuYsWnrKzGYLCsqHOz9bjJOR8Nt1t
+KIOxnm0Yr+0mYhNCYFNoCFoujitbms1bZIj4aAaOkkdmdtpXU0MfZFe1SmkTs++h
+oAAwCQYHKoZIzjgEAwMvADAsAhQ7lDYNBXH4iO4iygdTD9+pKT6VDwIUPFaTXWs6
+q9OZq9+YWUXiQILceks=
+-----END CERTIFICATE REQUEST-----
diff --git a/test/fixtures/dsa3.csr b/test/fixtures/dsa3.csr
new file mode 100644
--- /dev/null
+++ b/test/fixtures/dsa3.csr
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICATCCAcECAQAwADCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQCwn7E7CJSxcVw4
+ywBxTAQzJB8k5z0rVT/SbjuPDCnJCAy68IPU7EJekWii8HTFvWSh0HKQalCLS+vz
+g76VY/9wn8oDDtHT7QSptBn9Xc9Ms3OHFRnfkG/SGRggfJ7CvcZ4FSI870ijSy3N
+YFJWwfSSFVYttxkZ0GW357iin6uiewIVAKRt6yDH5JTnplHkAzL4Jhw0LnklAoGA
+fTz+x2GrElIqHZKle80LVTO0P1fBdhBCHa1h8ktPTCVLL6XrraDnqk9jgpLVKXu4
+99IMRwTgElf1bK+TWvwXEeanYIQKU63PdkYfBgZoszrnJyGDY0LTLO4e5GpPhLQN
+HSvVckmYOXIaNb60TkYRWEoLFoWep1/3iNQ/EpYmNFsDgYQAAoGAVWZW3KAR0XY3
+/lT5ce5GYWLemPuxlUvCwXNeNrrsxVthSMmUGiGLpf4uOcvxlLoAxHw27nWORhq9
+TMu5ixaesrMZgsKyoc7P1uMk5Hw23W0og7GebRiv7SZiE0JgU2gIWi6OK1uazVtk
+iPhoBo6SR2Z22ldTQx9kV7VKaROz76GgADAJBgcqhkjOOAQDAy8AMCwCFGZWWa0n
+rsXpsxy7R3vhfpCGIhP3AhRqaLPrraO3Pggf3UTZLMsYhUA+aA==
+-----END CERTIFICATE REQUEST-----
diff --git a/test/fixtures/dsaparams b/test/fixtures/dsaparams
new file mode 100644
--- /dev/null
+++ b/test/fixtures/dsaparams
@@ -0,0 +1,9 @@
+-----BEGIN DSA PARAMETERS-----
+MIIBHgKBgQCwn7E7CJSxcVw4ywBxTAQzJB8k5z0rVT/SbjuPDCnJCAy68IPU7EJe
+kWii8HTFvWSh0HKQalCLS+vzg76VY/9wn8oDDtHT7QSptBn9Xc9Ms3OHFRnfkG/S
+GRggfJ7CvcZ4FSI870ijSy3NYFJWwfSSFVYttxkZ0GW357iin6uiewIVAKRt6yDH
+5JTnplHkAzL4Jhw0LnklAoGAfTz+x2GrElIqHZKle80LVTO0P1fBdhBCHa1h8ktP
+TCVLL6XrraDnqk9jgpLVKXu499IMRwTgElf1bK+TWvwXEeanYIQKU63PdkYfBgZo
+szrnJyGDY0LTLO4e5GpPhLQNHSvVckmYOXIaNb60TkYRWEoLFoWep1/3iNQ/EpYm
+NFs=
+-----END DSA PARAMETERS-----
diff --git a/test/fixtures/rsa.pem b/test/fixtures/rsa.pem
new file mode 100644
--- /dev/null
+++ b/test/fixtures/rsa.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAn1lF/OiYgXK9EK8qK+amvExWH+zOYfYzonoPgt7MBHymNEt9
+/ceBWhlEuNLSTDeQQFLrxjIrXOuKveNoa1cHXVqejmWAVs3SqBtJovB0eGa0HNum
+mJ9IKTreiGqzXRTXuV/O4J3ZaBoHQuh2OnsJF06MTwZRTBK8hmMHs1RuoZRxomad
+cEaVveoqgi6tLE+3Px+WjmAZmOmJ9Uhn0Ae9Zm+GrYGTVnrbMntNS4YA49twDuUv
+1EjpKiejr6c6qfH7qrAoqKq83AazAWo8GoclRXnwwlwNwQLRPOU9XxK2g8fwjDCw
+Vj0JJDh+dn2FdQ3aQTO31G8XgYj7MMvGMRotVQIDAQABAoIBAAZDbAzU16m+6M+P
+EwlGt6cPGROIK1SOaNkqExIBz+MdQysrDHi9Lshr1det8bYtOO5OVBYmQq4UVA/C
+sIgHk7KHrVPLiY/f5zfUWsCc0vcokkvQFmxJVnzIY5bZGtO9zfzrVyZdDf6Zh0+J
+85u42lKgM8Ona+qhked2XQcfenm/XBOW0LVgysdcNimTvhCnmXrWpxJGXU5lVflI
+DxtxCib/y9E813tiECHj9riHhaQHTeGbEdOxgDLVOK33SLFM7XXO1UEyscfkrb+2
+TaOsVCvlKmXALwk0pa5NDCJxZU1eE7zII5PT4bogjo10BMkpBHyYMq6rXNxPJVvE
+ArLttMECgYEA0uAkSB+HcrYKSoFOVhtR6QOsjwHp7Eoqs7zmQKOT25TOXWCfhFu9
+g6a+eBKXOHaIb1jb1oZzj3lUlyUJNq7edKabr14fuektLn/Fm/7JMlIARrzljUd5
+aCIqBtZWb4/AbU/CbG40DWuk8P6bg63MQRjPq2niMx9L2ke20XEe1HMCgYEAwXJ3
+9+FLC/Wwa1qGiYLpt7qkIbFJsmZVdV0mfLBpyStGP3VdN4DyQntuEGc4G41t2BL1
+7U2AsLalYhaL3PdWbuSlqP1uGChFFMQF4eZHgT1HvzKF7UGEwEPNQbcXuyaTVAuM
+cNQ2iwZDL9o2Dsd5e/qbxcVg0IpjH9N632O3zRcCgYArktEsbgdo9qCtwIZVWJPW
+WEIB0t1pS/IC7deOJ77XsqnptZuAmAxS9dOJsB27NxL+Hxhd/a5HSUTnbmm2+O9S
+n1KwK/zWR45ke1Zz43Pjh/oyo7mzNb+qetTAUO3PY57Zd4+vJB5xX3rXqWStEu6P
+zPasbtakxaTA1+y43m0GbQKBgCts/vFuaeJtbQUsdTc5ZC4Sf/XwTpL11glat+EV
+2SmHxWVJe3uSPtAd1T9pbHcC8L2ow/xZgaIp3kZ+uTcJbyXFvkqJWcWihJ98wbVM
+dJDWqNyLAvWX160xi0pNR86Dgl9DmGtbuELNTRfY7Hm03divEXj8LheieU4Ts2mi
+gQhRAoGAYNfF2Z7XBktidG6TLt3jMJV15syWgEdxy5ut8irw/8lgAN7dwXsiLu9V
+q+43PMARnm9dknlvVgTh7HgCQsZ5j/u36yq5y1I1WG+DCZVpfoInwZFncqsjR1QI
+WJvRmhmLeNoqZjDCdXX5Yuc9Vj5gPW7lQda6AzTcyd43KjBVAak=
+-----END RSA PRIVATE KEY-----
diff --git a/test/fixtures/rsa1.csr b/test/fixtures/rsa1.csr
new file mode 100644
--- /dev/null
+++ b/test/fixtures/rsa1.csr
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIDFzCCAf8CAQAwgagxDDAKBgNVBAMTA2FwaTEOMAwGA1UEAxMFZmNvbWIxDDAK
+BgNVBAMTA2NvbTEPMA0GA1UECBMGTW9zY293MQ8wDQYDVQQHEwZNb3Njb3cxEjAQ
+BgNVBAoTCUVuZCBQb2ludDEOMAwGA1UECxMFZmNvbWIxGjAYBgkqhkiG9w0BCQEW
+C2luQGZjb21iLmlvMRgwFgYDVR0REw9ETlMuMT1mY29tYi5jb20wggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfWUX86JiBcr0Qryor5qa8TFYf7M5h9jOi
+eg+C3swEfKY0S339x4FaGUS40tJMN5BAUuvGMitc64q942hrVwddWp6OZYBWzdKo
+G0mi8HR4ZrQc26aYn0gpOt6IarNdFNe5X87gndloGgdC6HY6ewkXToxPBlFMEryG
+YwezVG6hlHGiZp1wRpW96iqCLq0sT7c/H5aOYBmY6Yn1SGfQB71mb4atgZNWetsy
+e01LhgDj23AO5S/USOkqJ6Ovpzqp8fuqsCioqrzcBrMBajwahyVFefDCXA3BAtE8
+5T1fEraDx/CMMLBWPQkkOH52fYV1DdpBM7fUbxeBiPswy8YxGi1VAgMBAAGgKTAn
+BgkqhkiG9w0BCQ4xGjAYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMA0GCSqGSIb3
+DQEBBQUAA4IBAQBlD7dYBBcBAXL8Yv9+PtpBoiwREP6tj9EA1SG1e8MzdlHcSiHE
+RhMY/sPm2aWEOotzqfpCp32AE4OxhgMrSXrjZCiKvaspb0pXWRZVzen9MnsDFICq
+rrp7JQWbH53gIPBx90WE8Rzhs9rVYPGbRqldbXtpUf6zWIwFXr4KYSyJgBkPQMPB
+UCxli+PJjCDWRFjW9M9LOLPCQ614LcKckwDA8t+Mvgeki7qT7fVoDRbgb4s6bXCe
+5r/66Fp3jIBxyJwIjAV58ayxqjL/CAbAooMQwbRXp64fz7EYmFWnIdvZ9J03doNd
+jUI5TrkOpUn5egxWLJDCgoIo9HuDZGFTLDyd
+-----END CERTIFICATE REQUEST-----
diff --git a/test/fixtures/rsa2.csr b/test/fixtures/rsa2.csr
new file mode 100644
--- /dev/null
+++ b/test/fixtures/rsa2.csr
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIC7jCCAdYCAQAwgagxDDAKBgNVBAMTA2FwaTEOMAwGA1UEAxMFZmNvbWIxDDAK
+BgNVBAMTA2NvbTEPMA0GA1UECBMGTW9zY293MQ8wDQYDVQQHEwZNb3Njb3cxEjAQ
+BgNVBAoTCUVuZCBQb2ludDEOMAwGA1UECxMFZmNvbWIxGjAYBgkqhkiG9w0BCQEW
+C2luQGZjb21iLmlvMRgwFgYDVR0REw9ETlMuMT1mY29tYi5jb20wggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfWUX86JiBcr0Qryor5qa8TFYf7M5h9jOi
+eg+C3swEfKY0S339x4FaGUS40tJMN5BAUuvGMitc64q942hrVwddWp6OZYBWzdKo
+G0mi8HR4ZrQc26aYn0gpOt6IarNdFNe5X87gndloGgdC6HY6ewkXToxPBlFMEryG
+YwezVG6hlHGiZp1wRpW96iqCLq0sT7c/H5aOYBmY6Yn1SGfQB71mb4atgZNWetsy
+e01LhgDj23AO5S/USOkqJ6Ovpzqp8fuqsCioqrzcBrMBajwahyVFefDCXA3BAtE8
+5T1fEraDx/CMMLBWPQkkOH52fYV1DdpBM7fUbxeBiPswy8YxGi1VAgMBAAGgADAN
+BgkqhkiG9w0BAQUFAAOCAQEANRMh7oNCTUmvq7YMimu7SAK0Rgefc96o7PXZ1btL
+xfqyvM/iNB3gZfYKcwa0X5o75x0QOzK3D3E2vx4vPY5/8vGnpBQfu4PtGTK1uR0s
+k7VPG77yCyixY+iukiLX+K5gLpeNiCwIMiz2AkS6YzEbk/GXQc0yCQ0FAEQsD1KK
+uroNQG9eqsRkGvFyTY/gfEVuyoquAduHc0gC/XzKIbvnrsqnbsu2bxTo+4Rohr5P
+l9G/fR1HmqA4UCcCM15K3u/KH68sFhjUDFH+nj/nP8gB2/3uNqcQaxANvB9kFUoT
+1YVD/3z1xSBRAJi/p27Rl4/xz51VldOrQymP/ysw+TImTw==
+-----END CERTIFICATE REQUEST-----
diff --git a/test/fixtures/rsa3.csr b/test/fixtures/rsa3.csr
new file mode 100644
--- /dev/null
+++ b/test/fixtures/rsa3.csr
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICRTCCAS0CAQAwADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ9Z
+RfzomIFyvRCvKivmprxMVh/szmH2M6J6D4LezAR8pjRLff3HgVoZRLjS0kw3kEBS
+68YyK1zrir3jaGtXB11ano5lgFbN0qgbSaLwdHhmtBzbppifSCk63ohqs10U17lf
+zuCd2WgaB0Lodjp7CRdOjE8GUUwSvIZjB7NUbqGUcaJmnXBGlb3qKoIurSxPtz8f
+lo5gGZjpifVIZ9AHvWZvhq2Bk1Z62zJ7TUuGAOPbcA7lL9RI6Sono6+nOqnx+6qw
+KKiqvNwGswFqPBqHJUV58MJcDcEC0TzlPV8StoPH8IwwsFY9CSQ4fnZ9hXUN2kEz
+t9RvF4GI+zDLxjEaLVUCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQATv3egVLAc
+PB5fbwXLvE4l88qF2ygMyg8XSsumE8nPxLKWxXfAzsRhV6qSPlXYJFMKkGP8R1ap
+AfrdTEFD/8d1sBrSCW+T2S0xcqDZpBehnunmgB3ud0++zr7A6iiOpbOchf+ZEbPB
+IEHjuF5zLXn9Nv8CKFag9uFdJkprqkaDkouPIXiQXYZmn5tevNO3Q5woh7H2mizM
+WnNH0Zf+EY/2Lazl4GW4c0J+JzZm01PYuXgSUsWiKGYlCej0pVG/RrBQbSHZqhEi
+eeU3kgd+Zf7xRNT2pexwktkklvDE3kGCEye9zwTRjMV/nL/62ConBkzJOVq2kfNc
+xKOQMecLdpJ6
+-----END CERTIFICATE REQUEST-----
