2013-02-23 47 views
6

मैं थोड़ी देर के लिए OpenSSL और Node.js को एकीकृत करने का एक तरीका ढूंढ रहा हूं।Node.js से OpenSSL तक पहुंचने के लिए विभिन्न दृष्टिकोण

मेरे लक्ष्य हैं:

  • मैं होने के लिए मंच स्वतंत्र है, इसलिए एक समाधान पर ओएस एक्स, लिनक्स और विंडोज काम करना चाहिए चाहते हैं।
  • मैं अनावश्यक डिस्क संचालन से बचना चाहता हूं। उदाहरण के लिए, एक निजी कुंजी फ़ाइल में नहीं हो सकती है, लेकिन डेटाबेस में (एक बेवकूफ उदाहरण हो सकता है, लेकिन आइए इसे वैध आवश्यकता मानें)।
  • मैं बनाने की चाबियाँ, सीएसआरएस, सीएसआर पर हस्ताक्षर करने, सीएर्ट्स बनाने, ... सभी प्रमाणपत्र सामान, अंत से अंत तक समर्थन करना चाहता हूं।

अब विकल्प पर विचार किया है कर रहे हैं:

  • OpenSSL पुस्तकालय जो Node.js. में एकीकृत है का उपयोग करें दुर्भाग्य से, क्रिप्टो मॉड्यूल प्रमाण पत्र चीजें प्रदान नहीं करता है।
  • बाहरी मॉड्यूल का उपयोग कर ओपनएसएसएल लाइब्रेरी का उपयोग करें। दुर्भाग्यवश, मुझे नहीं पता कि यह कैसे करना है, शायद सी/सी ++ में लापता ज्ञान के कारण।
  • ओपनएसएसएल बाइनरी को बाल प्रक्रिया के रूप में उपयोग करें। यह देखते हुए कि ओपनएसएसएल उपलब्ध है, यह सभी प्लेटफार्मों पर काम करना चाहिए। यह अच्छा नहीं है, लेकिन यह काम करता है।

प्रश्न # 1: जैसा कि मैंने लिखा है, मेरे पास ओपनएसएसएल लाइब्रेरी को सीधे एक्सेस करने के बारे में थोड़ा सा विचार नहीं है जो नोड.जे.एस. के साथ बंडल किया जाता है। मैं इस से कैसे संपर्क करूंगा?

फिलहाल, मैं बाइनरी को बाल प्रक्रिया के रूप में उपयोग करने के साथ चिपकता हूं। दुर्भाग्यवश, यह आवश्यक है कि निजी चीजों जैसी सभी चीजें या तो फाइलें (जिन्हें मैं स्पष्ट रूप से टालना चाहता हूं) के रूप में दिया जाता है, या मैं/dev/stdin (जो विंडोज पर काम नहीं करता) का उपयोग करके सबकुछ सौंपता है।

प्रश्न # 2: मैं इससे कैसे निपट सकता हूं? क्या # 1 का समाधान इस मुद्दे को हल करेगा?

+0

मुझे लगता है कि जवाब "नोडज के लिए बाइंडिंग लिखना सीखें (जिसमें सी ++ के कुछ ज्ञान शामिल हैं)"। – thejh

+0

सवाल यह है कि क्या यह मुद्दों को हल करेगा। –

+2

मुझे इसमें भी रूचि है। यदि आपको कोई समाधान मिलता है या यदि आप Node.js के लिए ओपनएसएसएल बाइंडिंग लिखने में सहायता चाहते हैं तो मुझे बताएं। – antimeme

उत्तर

2

प्रश्न # 1 का उत्तर यह है कि आप नहीं कर सकते हैं। बाइंडिंग के बिना, आप नोडज द्वारा उजागर किए गए कार्यों तक पहुंच सकते हैं।

दुर्भाग्यवश विंडोज़ में/dev/stdin के लिए काम करने का तरीका नहीं लगता है। नामांकितपिप एक विकल्प होगा लेकिन नोडजेस उनका समर्थन नहीं करता है। आप इंटरएक्टिव मोड में nodejs openssl.exe लॉन्च करने में सक्षम हो सकते हैं और stdin के माध्यम से कमांड भेज सकते हैं, और stdout के माध्यम से आउटपुट पढ़ सकते हैं लेकिन यह बहुत अक्षम लगता है।

तो उत्तर प्रश्न # 2 है कि आप विंडोज़ समस्या से निपट नहीं सकते हैं।

आपके जीते बाध्यकारी को लिखना एकमात्र विकल्प है। यह वास्तव में इतना मुश्किल नहीं है - कुछ मुझे यकीन है कि आप सहयोगियों को मदद करने के लिए मिल सकते हैं।

+1

बिल्कुल सही, धन्यवाद :-) –