]> www.wagner.pp.ru Git - oss/ctypescrypto.git/blobdiff - tests/testec.py
Python 3 support for modules pbkdf2 pkey ec x509
[oss/ctypescrypto.git] / tests / testec.py
index ccf289cfe16922f7c09d5705ec3cd243f83e6768..b5d060c7a464096057f200c73954b37f8f260a19 100644 (file)
@@ -1,3 +1,4 @@
+from ctypescrypto import pyver
 from ctypescrypto.oid import Oid
 from ctypescrypto.ec import create
 from base64 import b16decode
@@ -18,13 +19,13 @@ def dump_pub_key(key):
     """
     return Popen(["openssl","pkey","-text_pub","-noout"],stdin=PIPE,stdout=PIPE).communicate(key)[0]
 class TestEcCreation(unittest.TestCase):
-    ec1priv="""-----BEGIN PRIVATE KEY-----
+    ec1priv=b"""-----BEGIN PRIVATE KEY-----
 MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgKnG6neqZvB98EEuuxnHs
 fv+L/5abuNNG20wzUqRpncOhRANCAARWKXWeUZ6WiCKZ2kHx87jmJyx0G3ZB1iQC
 +Gp2AJYswbQPhGPigKolzIbZYfwnn7QOca6N8QDhPAn3QQK8trZI
 -----END PRIVATE KEY-----
 """
-    bigkey="""-----BEGIN PRIVATE KEY-----
+    bigkey=b"""-----BEGIN PRIVATE KEY-----
 MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgAAAAAAAAAAAAAAAAAAAA
 AUVRIxlQt1/EQC2hcy/Jvr6hRANCAASRZsKJufkF5V+ePfn2nX81a0oiCV+JT0cV
 cUqktWYGr/GB65Zr5Ky1z/nha2bYCb6U4hTwbJP9CRCZr5hJklXn
@@ -34,13 +35,24 @@ cUqktWYGr/GB65Zr5Ky1z/nha2bYCb6U4hTwbJP9CRCZr5hJklXn
         key=create(Oid("secp256k1"),b16decode("2A71BA9DEA99BC1F7C104BAEC671EC7EFF8BFF969BB8D346DB4C3352A4699DC3",True))
             
         out=key.exportpriv()
+        if pyver > 2:
+            out=out.encode("ascii")
         self.assertEqual(dump_key(out),dump_key(self.ec1priv))
-        self.assertEqual(str(key),dump_pub_key(self.ec1priv))
+        if pyver == 2:
+            self.assertEqual(str(key),dump_pub_key(self.ec1priv))
+        else:    
+            self.assertEqual(str(key).encode("ascii"),dump_pub_key(self.ec1priv))
 
     def test_bignum(self):
-        keyval='\xff'*32
+        keyval=b'\xff'*32
         key=create(Oid("secp256k1"),keyval)
-        self.assertEqual(dump_key(key.exportpriv()),dump_key(self.bigkey))
-        self.assertEqual(str(key),dump_pub_key(self.bigkey))
+        keyblob = key.exportpriv()
+        if pyver > 2:
+            keyblob = keyblob.encode("ascii")
+        self.assertEqual(dump_key(keyblob),dump_key(self.bigkey))
+        keyblob2 = str(key)
+        if pyver > 2:
+             keyblob2 = keyblob2.encode('ascii')
+        self.assertEqual(keyblob2,dump_pub_key(self.bigkey))
 if __name__ == "__main__":
     unittest.main()