2009-02-03 2 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

Смежные вопросы