2009-02-03 53 views
2

任何人可以解釋什麼是以下原因:Python的M2Crypto - 生成DSA密鑰對分離的公共/私有組件

>>> from M2Crypto import DSA, BIO 
>>> dsa = DSA.gen_params(1024) 
..+........+++++++++++++++++++++++++++++++++++++++++++++++++++* 
............+.+.+..+.........+.............+.....................+. 
...+.............+...........+......................................... 
+.........+................+..........+......+..+.+...+..........+..+.. 
..+...+......+....+.............+.................+.......+.........+.. 
....+......+.+..+..........+........+.+...+..+...............+......... 
..+.....+........+..........+++++++++++++++++++++++++++++++++++++++++++ 
++++++++* 
>>> mem = BIO.MemoryBuffer() 
>>> dsa.save_key_bio(mem, cipher=None) 
1 
>>> dsa.save_pub_key_bio(mem) 
0 
>>> print mem.getvalue() 
-----BEGIN DSA PRIVATE KEY----- 
MIIBIgIBAAKBgQDPGRFSTqqx8vet5kaW5m99A83REotTcX9HOv+zrqMxQpaTlinS 
MDz49I4psDPJ+bWH7vySEdOYO2JGUj6kYZdz/ZwyNjphWNjQkaUrmfaVLzS3PHpW 
aMrPEweLesf/PT4KXm2HaDbaW/g2Ds5h+Zlq9LDKcN2vfvyeiTCmf1esyQIVAO9I 
ippU4PIdvJVO9HQRkqrD2bxPAoGBAIwVgM7dgNVwihJva6qeeh7ypy3ESNB9k8nY 
fOnES+SqZGQbkPrJIusRCJNKERiMATJXNRMfBeWD8htNRezbgtr0OpuYSBurAQjp 
hKKVI3DHSv7XT49BQ3tdJww8lQfkOhHOfFTG6U1dJhWdggp0WN3EjYlt77agRsjR 
4t5sD1f3 
-----END DSA PRIVATE KEY----- 
-----BEGIN PUBLIC KEY----- 
-----END PUBLIC KEY----- 
>>> 

顯然我失去了一些東西。 M2Crypto不敏感的文檔沒有幫助。

回答

7

調用dsa.gen_key(),然後保存。你實際上並沒有生成公鑰。

>>> from M2Crypto import DSA, BIO 
>>> dsa = DSA.gen_params(1024) 
..+..etc 
>>> mem = BIO.MemoryBuffer() 
>>> dsa.gen_key() 
>>> dsa.save_key_bio(mem, cipher=None) 
1 
>>> dsa.save_pub_key_bio(mem) 
1 
>>> print mem.getvalue() 
-----BEGIN DSA PRIVATE KEY----- 
MIIBuwIBAAKBgQDowiLFDXGwaWIOkZybeeqSXYZ8KCLmXg5XfnAtDBlVOokB91Rj 
etc. 
-----END DSA PRIVATE KEY----- 
-----BEGIN PUBLIC KEY----- 
MIIBtzCCASsGByqGSM44BAEwggEeAoGBAOjCIsUNcbBpYg6RnJt56pJdhnwoIuZe 
Dld+cC0MGVU6iQH3VGNEzKycBVQeVYke3itZwQALSlT2JfUsmOjeZYIkc9l2YYob 
rixObXfQyc0AOBM/J53F0F6R8+xvEwN/Hmdd9SjjbdZi8gve+dr9UfnKHXi0KPUF 
s2ougGhXeEjTAhUAiW5bMzG8nCVjXErgwaDEx+JEdtECgYACba2quw3xibhT3JNd 
sDh0gIRpHPQgIgxgzGv6A09Vdb4VgtWf0MYAo6gAhxsZIWWKzQ94Oe1nf7OhC+B+ 
VjT+PW+ExSrbJVONTN5ycE64O7+2L+q/hZSjjkxXgfcApqeVtZp4wKqbS976Kpch 
WgNl0zdkvV8JddRs0oKQ0Bl7dwOBhQACgYEAgkdF/+ncobVcYXfXHBUH3H5SLD3y 
u2zUWGhXM4/MUTwPromDOQ8Zd0H7myYhmQvVUb+J9mJHMIn7Guf4JDH+8d6rBpzo 
U5yEGqgsSqYqgtStzDvsKHfqw3mvjvsktm66N/vm36eai2I6J15QibdtP0lb1Um8 
EeECDTxWUWT93rs= 
-----END PUBLIC KEY----- 

>>> 
+0

aaah謝謝。說得通。 – Baczek 2009-02-04 00:52:51

相關問題