2012-08-16 19 views
18

के साथ एक ईसीडीएसए प्रमाण पत्र कैसे बना सकता हूं मैं सी ++ में एक सर्वर ऐप बना रहा हूं जिसे ईसीडीएसए सार्वजनिक कुंजी वाले प्रमाण पत्र को स्वीकार करने की आवश्यकता है। इसे प्रमाण पत्र को सत्यापित करना होगा और, सत्यापन पर, प्रमाण पत्र के साथ भेजे गए संदेश को प्रमाणीकृत करने के लिए प्रमाणपत्र में निहित सार्वजनिक कुंजी का उपयोग करना होगा। मेरे पास फ्लू पर उत्पन्न ईसीएसडीए कीपैयर का उपयोग करके यह सब काम कर रहा है - यानी मेरा कोड अच्छी तरह से काम कर रहा है - लेकिन अब मुझे प्रमाणपत्र का टुकड़ा करने की जरूरत है। और मैंने सोचा कि मैं क्लाइंट पर स्थापित प्रमाणपत्र बनाने के लिए ओपनएसएसएल की कमांड लाइन का उपयोग कर सकता हूं (एक अलग फ़ाइल में ईसीडीएसए निजी कुंजी को सूखने के साथ)।मैं ओपनएसएसएल कमांड लाइन

क्या कोई मदद कर सकता है?

बहुत धन्यवाद।

उत्तर

28

आप एक वक्र को नहीं चुना है, तो आप इस आदेश के साथ उन्हें सूचीबद्ध कर सकते हैं:

openssl ecparam -list_curves 

मैं इस उदाहरण के लिए sect571r1 उठाया। यदि आपके पास पहले से कोई नहीं है तो ईसी प्राइवेट कुंजी उत्पन्न करने के लिए इसका उपयोग करें:

openssl ecparam -out ec_key.pem -name sect571r1 -genkey 

और फिर प्रमाणपत्र उत्पन्न करें। आपका प्रमाणपत्र cert.pem में होगा।

openssl req -new -key ec_key.pem -x509 -nodes -days 365 -out cert.pem 

यह भी देखें: req, ecparam

+2

'secp256k1' शायद समय पर सर्वाधिक अंतर-संचालित है। – jww

+8

मुझे लगता है कि आपका मतलब है 'secp256r1'। [इस पोस्ट] के अनुसार (http://openssl.6102.n7.nabble.com/P-256-curve-not-supported-in-openssl-1-0-1-tp5379p5380.html) इसे इस रूप में जाना जाता है OpenSSL में 'prim256v1'। – oliverdm