]> www.wagner.pp.ru Git - oss/ctypescrypto.git/blob - tests/testpkey.py
Make setup actually run tests
[oss/ctypescrypto.git] / tests / testpkey.py
1 from ctypescrypto.pkey import PKey
2 import unittest
3
4 class TestReadPkey(unittest.TestCase):
5         def test_unencrypted_pem(self):
6                 rsa="""-----BEGIN PRIVATE KEY-----
7 MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAL9CzVZu9bczTmB8
8 776pPUoPo6WbAfwQqqiGrj91bk2mYE+MNLo4yIQH45IcwGzkyS8+YyQJf8Bux5BC
9 oZ2nwzXm5+JZkxkN1mtMzit2D7/hHmrZLoSbr0sxXFrD4a35RI4hXnSK9Sk01sXA
10 Te2OgHzm5nk1sG97G6SFq7CHe3gvAgMBAAECgYAgGV8K7Y5xk7vIt88oyZCOuHc3
11 mP9JRabOp+PgpJ3BjHXHg/lpc5Q7jHNmF0s4O2GEe0z6RFnbevwlOvmS0xAQ1hpg
12 5TnVVkiZvcJeQaZqWIlEOaLqA12YdhSyorfB6p3tfQ7ZmQusg3SCsru5kPJV4sm0
13 I+MuRCQZWSzIqelloQJBAPbtScJI0lXx8sktntZi69cAVvLtz5z1T7bZwFakNkNE
14 SUCjNc/hEEI6/1LScV8Kx9kgQ0+W8smu+GyUDceyVFECQQDGSeS7cTmojkiPQxPB
15 zb0vS+Nfpq6oYsx+gn5TBgMeWIZZrtMEaUU2o+rwsjKBP/gy6D1zC2b4W5O/A/7a
16 1GR/AkBUQhYoKKc1UpExGtMXfrvRKrmAvatZeM/Rqi4aooAtpfCFEOw82iStJOqY
17 /VxYPRqCuaKeVvjT31O/4SlumihxAkBahRU0NKYbuoiJThfQ23lIBB7SZadKG4A7
18 KJs+j3oQ+lyqyFJwqxX7sazpIJBJzMgjhT24LTZenn++LbbEcz1FAkBmDmxoq7qO
19 Ao6uTm8fnkD4C836wS4mYAPqwRBK1JvnEXEQee9irf+ip89BAg74ViTcGF9lwJwQ
20 gOM+X5Db+3pK
21 -----END PRIVATE KEY-----
22 """
23                 keytext="""Public-Key: (1024 bit)
24 Modulus:
25     00:bf:42:cd:56:6e:f5:b7:33:4e:60:7c:ef:be:a9:
26     3d:4a:0f:a3:a5:9b:01:fc:10:aa:a8:86:ae:3f:75:
27     6e:4d:a6:60:4f:8c:34:ba:38:c8:84:07:e3:92:1c:
28     c0:6c:e4:c9:2f:3e:63:24:09:7f:c0:6e:c7:90:42:
29     a1:9d:a7:c3:35:e6:e7:e2:59:93:19:0d:d6:6b:4c:
30     ce:2b:76:0f:bf:e1:1e:6a:d9:2e:84:9b:af:4b:31:
31     5c:5a:c3:e1:ad:f9:44:8e:21:5e:74:8a:f5:29:34:
32     d6:c5:c0:4d:ed:8e:80:7c:e6:e6:79:35:b0:6f:7b:
33     1b:a4:85:ab:b0:87:7b:78:2f
34 Exponent: 65537 (0x10001)
35 """
36                 key=PKey(privkey=rsa)
37                 self.assertIsNotNone(key.key)
38                 self.assertEqual(str(key),keytext)
39         def test_unencrypted_pem_ec(self):
40                 pem="""-----BEGIN EC PRIVATE KEY-----
41 MHQCAQEEICpxup3qmbwffBBLrsZx7H7/i/+Wm7jTRttMM1KkaZ3DoAcGBSuBBAAK
42 oUQDQgAEVil1nlGelogimdpB8fO45icsdBt2QdYkAvhqdgCWLMG0D4Rj4oCqJcyG
43 2WH8J5+0DnGujfEA4TwJ90ECvLa2SA==
44 -----END EC PRIVATE KEY-----
45 """
46                 keytext="""Public-Key: (256 bit)
47 pub: 
48     04:56:29:75:9e:51:9e:96:88:22:99:da:41:f1:f3:
49     b8:e6:27:2c:74:1b:76:41:d6:24:02:f8:6a:76:00:
50     96:2c:c1:b4:0f:84:63:e2:80:aa:25:cc:86:d9:61:
51     fc:27:9f:b4:0e:71:ae:8d:f1:00:e1:3c:09:f7:41:
52     02:bc:b6:b6:48
53 ASN1 OID: secp256k1
54 """
55                 
56                 key=PKey(privkey=pem)
57                 self.assertIsNotNone(key.key)
58                 self.assertEqual(str(key),keytext)
59         def test_pubkey_pem(self):
60                 pub="""-----BEGIN PUBLIC KEY-----
61 MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEVil1nlGelogimdpB8fO45icsdBt2QdYk
62 AvhqdgCWLMG0D4Rj4oCqJcyG2WH8J5+0DnGujfEA4TwJ90ECvLa2SA==
63 -----END PUBLIC KEY-----
64 """
65                 key=PKey(pubkey=pub)
66                 keytext="""Public-Key: (256 bit)
67 pub: 
68     04:56:29:75:9e:51:9e:96:88:22:99:da:41:f1:f3:
69     b8:e6:27:2c:74:1b:76:41:d6:24:02:f8:6a:76:00:
70     96:2c:c1:b4:0f:84:63:e2:80:aa:25:cc:86:d9:61:
71     fc:27:9f:b4:0e:71:ae:8d:f1:00:e1:3c:09:f7:41:
72     02:bc:b6:b6:48
73 ASN1 OID: secp256k1
74 """
75                 self.assertIsNotNone(key.key)   
76                 self.assertEqual(str(key),keytext)
77         def test_compare(self):
78                 pem="""-----BEGIN EC PRIVATE KEY-----
79 MHQCAQEEICpxup3qmbwffBBLrsZx7H7/i/+Wm7jTRttMM1KkaZ3DoAcGBSuBBAAK
80 oUQDQgAEVil1nlGelogimdpB8fO45icsdBt2QdYkAvhqdgCWLMG0D4Rj4oCqJcyG
81 2WH8J5+0DnGujfEA4TwJ90ECvLa2SA==
82 -----END EC PRIVATE KEY-----
83 """
84                 pub="""-----BEGIN PUBLIC KEY-----
85 MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEVil1nlGelogimdpB8fO45icsdBt2QdYk
86 AvhqdgCWLMG0D4Rj4oCqJcyG2WH8J5+0DnGujfEA4TwJ90ECvLa2SA==
87 -----END PUBLIC KEY-----
88 """
89                 key1=PKey(privkey=pem)
90                 self.assertIsNotNone(key1.key)
91                 key2=PKey(pubkey=pub)
92                 self.assertIsNotNone(key2.key)
93                 self.assertEqual(key1,key2)
94
95 if __name__ == "__main__":
96         unittest.main()