2012-04-28 15 views
5

Używam tring do stworzenia skryptu Pythona, który zająłby pakiet PKCS # 12 i wydrukowałby informacje zawarte w certyfikacie x509 i wykorzystał do tego celu moduł PyOpenSSL. Do tej pory chcę pobrać z publicznego klucza certyfikatu. Ale obiekt PKey nie ma odpowiedniej metody. Gdzie mogę się stąd wydostać? Wszelkie pomysły, jak zdobyć klucz publiczny?Jak zdobyć klucz publiczny za pomocą PyOpenSSL?

pfx=open('./1.p12','rb').read() 
PKCS=crypto.load_pkcs12(pfx) 
cert=PKCS.get_certificate() 
PKey=cert.get_pubkey() 

print PKey 
<OpenSSL.crypto.PKey object at 0x012432D8> 

Dzięki.

+0

czekaj, to wygląda jak ty” już korzystam z metody 'get_pubkey', aby uzyskać publikację klawisz c. Co nie działa? – larsks

+0

Jak to wydrukować? – usp

Odpowiedz

-2

Czy to działa?

print PKey 
<OpenSSL.crypto.PKey object at 0x012432D8> 

from OpenSSL import crypto 

crypto.dump_privatekey(PKey) 
-2

Zamiast używać:

c.dump_privatekey(c.FILETYPE_TEXT,pubkey) 
0

pierwsze można załadować certyfikat jak ten

from OpenSSL import crypto 

#cert is the encrypted certificate int this format -----BEGIN -----END  
crtObj = crypto.load_certificate(crypto.FILETYPE_PEM, cert) 
pubKeyObject = crtObj.get_pubkey() 
pubKeyString = crypto.dump_publickey(crypto.FILETYPE_PEM,pubKeyObject) 
print pubKeyString 

widać coś podobnego

-----BEGIN PUBLIC KEY----- 
.... 
.... 
-----END PUBLIC KEY----- 
Powiązane problemy