मैं OPENSSL में ईसीडीएसए लागू करना चाहता हूं। लेकिन मुझे चेतावनियां मिल रही हैं

ECDSA_साइन बहिष्कृत और ECDSA_do_verify बहिष्कृत है।

क्या कोई मुझे मार्गदर्शन कर सकता है कि इस त्रुटि को कैसे संभालें।

1
Asif Sayyad 26 मार्च 2020, 09:26

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि आप ओपनएसएसएल के देव संस्करण का उपयोग कर रहे हैं (जो ओपनएसएसएल 3.0 बन जाएगा)। उन कार्यों को देव में पदावनत किया गया है लेकिन नवीनतम स्थिर संस्करण (1.1.1) में पदावनत नहीं किया गया है।

ओपनएसएसएल (ईसीडीएसए सहित) में हस्ताक्षर करने का पसंदीदा तरीका EVP_DigestSign*() एपीआई का उपयोग करना है।

उन कार्यों के लिए मैन पेज यहाँ हैं:

https://www.openssl.org/docs/man1.1.1/man3/EVP_DigestSignInit.html

इनका उपयोग करने के लिए आपको एक EVP_PKEY ऑब्जेक्ट बनाने की आवश्यकता है जिसमें एक ECDSA कुंजी हो। आमतौर पर यह EVP_PKEY_new() का उपयोग करके एक खाली EVP_PKEY बनाकर और फिर EVP_PKEY_assign_EC_KEY का उपयोग करके इसे EC_KEY असाइन करके किया जाता है:

https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_assign_EC_KEY.html

यहां ओपनएसएसएल विकी पर EVP_DigestSign*() एपीआई का उपयोग करके हस्ताक्षर और सत्यापन के लिए उदाहरण कोड है:

https://wiki.openssl.org/index.php/EVP_Signing_and_Verifying

ईवीपी फ़ंक्शंस का उपयोग करने का एक अन्य विकल्प वर्तमान स्थिर संस्करण (1.1.1) का उपयोग करना है जहां आप जिन फ़ंक्शंस का उपयोग करने का प्रयास कर रहे हैं वे बहिष्कृत नहीं हैं। लेकिन ध्यान रखें कि ओपनएसएसएल 3.0 जारी होने पर वे पदावनत हो जाएंगे।

एक तीसरा विकल्प सिर्फ बहिष्करण चेतावनियों को अनदेखा करना है। कार्य अभी भी मौजूद हैं और काम करते हैं। यह मानते हुए कि आपने संकलक को चेतावनियों को त्रुटियों के रूप में मानने का निर्देश नहीं दिया है, आपको अभी भी अपना आवेदन बनाने में सक्षम होना चाहिए। हालांकि ध्यान रखें कि बहिष्कृत के रूप में फ़्लैग किए गए API को अंततः OpenSSL के भविष्य के कुछ संस्करणों में हटाया जा सकता है।

2
Matt Caswell 26 मार्च 2020, 09:24