2012-04-28 17 views
5

मैं पाइथन लिपि बनाने की कोशिश कर रहा हूं, जो पीकेसीएस # 12 पैकेज लेगा और x509 प्रमाणपत्र में निहित कुछ जानकारी प्रिंट करेगा और इस purpouses PyOpenSSL मॉड्यूल के लिए उपयोग करेगा। अब तक मैं प्रमाणपत्र सार्वजनिक कुंजी से प्राप्त करना चाहता हूं। लेकिन पीकेई ऑब्जेक्ट में उचित विधि नहीं है। मैं यहां से कहां से बाहर निकल सकता हूं? सार्वजनिक विचार कैसे प्राप्त करें कोई विचार?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> 

धन्यवाद।

+0

प्रतीक्षा की तरह प्रमाण पत्र लोड कर सकते हैं, यह आप की तरह लग रहा ' प्रकाशन प्राप्त करने के लिए पहले से ही 'get_pubkey' विधि का उपयोग कर रहे हैं सी कुंजी क्या काम नहीं कर रहा है – larsks

+0

तो, इसे प्रिंट कैसे करें? – usp

उत्तर

-2

क्या यह काम करेगा?

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

from OpenSSL import crypto 

crypto.dump_privatekey(PKey) 
-2

इसके बजाय का उपयोग करें:

c.dump_privatekey(c.FILETYPE_TEXT,pubkey) 
0

सबसे पहले आप इस

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 

आप देखेंगे

की तरह कुछ
-----BEGIN PUBLIC KEY----- 
.... 
.... 
-----END PUBLIC KEY----- 
संबंधित मुद्दे