]> www.wagner.pp.ru Git - oss/ctypescrypto.git/blobdiff - tests/testpkey.py
Added explicit check for CMS functions in libcrypto
[oss/ctypescrypto.git] / tests / testpkey.py
index 1018dc69a4caf94219de3fb09ed2a59f274f977f..190cb88fef990215ca9d472104bb57010cd8f286 100644 (file)
@@ -1,5 +1,6 @@
 from ctypescrypto.pkey import PKey
-import unittest
+from ctypescrypto import pyver
+import unittest,re
 from base64 import b64decode, b16decode
 from subprocess import Popen,PIPE,CalledProcessError
 
@@ -10,10 +11,12 @@ def pem2der(s):
     return b64decode(data)
 
 def runopenssl(args,indata):
-    p=Popen(['openssl']+args,stdin=PIPE,stdout=PIPE,stderr=PIPE,universal_newlines=True)
+    p=Popen(['openssl']+args,stdin=PIPE,stdout=PIPE,stderr=PIPE)
     (out,err)=p.communicate(indata)
     if p.returncode:
         raise CalledProcessError(p.returncode," ".join(['openssl']+args)+":"+err)
+    if pyver > 2:
+        out = out.decode("utf-8")
     return out
 
 
@@ -93,7 +96,7 @@ fv+L/5abuNNG20wzUqRpncOhRANCAARWKXWeUZ6WiCKZ2kHx87jmJyx0G3ZB1iQC
 -----END PRIVATE KEY-----
 """
     ec1keytext="""Public-Key: (256 bit)
-pub: 
+pub:
     04:56:29:75:9e:51:9e:96:88:22:99:da:41:f1:f3:
     b8:e6:27:2c:74:1b:76:41:d6:24:02:f8:6a:76:00:
     96:2c:c1:b4:0f:84:63:e2:80:aa:25:cc:86:d9:61:
@@ -138,6 +141,8 @@ AvhqdgCWLMG0D4Rj4oCqJcyG2WH8J5+0DnGujfEA4TwJ90ECvLa2SA==
         from ctypescrypto.cipher import CipherType
         key=PKey(privkey=self.rsa)
         pem=key.exportpriv(password='2222',cipher=CipherType("aes256"))
+        if pyver >2:
+            pem = pem.encode("ascii")
         self.assertEqual(runopenssl(["pkey","-text_pub","-noout","-passin","pass:2222"],
                                     pem),self.rsakeytext)
     def test_export_priv_der(self):
@@ -155,19 +160,19 @@ AvhqdgCWLMG0D4Rj4oCqJcyG2WH8J5+0DnGujfEA4TwJ90ECvLa2SA==
         
         key=PKey(privkey=self.ec1priv)
         self.assertIsNotNone(key.key)
-        self.assertEqual(str(key),self.ec1keytext)
+        self.assertEqual(re.sub("pub: \n","pub:\n",str(key)),self.ec1keytext)
     def test_unencrypted_der_ec(self):
         key=PKey(privkey=pem2der(self.ec1priv),format="DER")
         self.assertIsNotNone(key.key)
-        self.assertEqual(str(key),self.ec1keytext)
+        self.assertEqual(re.sub("pub: \n","pub:\n",str(key)),self.ec1keytext)
     def test_pubkey_pem(self):
         key=PKey(pubkey=self.ec1pub)
         self.assertIsNotNone(key.key)   
-        self.assertEqual(str(key),self.ec1keytext)
+        self.assertEqual(re.sub("pub: \n","pub:\n",str(key)),self.ec1keytext)
     def test_pubkey_der(self):
         key=PKey(pubkey=pem2der(self.ec1pub),format="DER")
         self.assertIsNotNone(key.key)   
-        self.assertEqual(str(key),self.ec1keytext)
+        self.assertEqual(re.sub("pub: \n","pub:\n",str(key)),self.ec1keytext)
     def test_compare(self):
         key1=PKey(privkey=self.ec1priv)
         self.assertIsNotNone(key1.key)