2010-03-29 13 views
6

के लिए update.rdf मेनिफेस्ट के हस्ताक्षर को स्वचालित करें। मैं एक फ़ायरफ़ॉक्स एक्सटेंशन विकसित कर रहा हूं और मैं अपने बीटा टेस्टर्स (जो तकनीक-समझदार नहीं हैं) को स्वचालित अपडेट प्रदान करना चाहता हूं। दुर्भाग्यवश, अद्यतन सर्वर HTTPS प्रदान नहीं करता है। Extension Developer Guide on signing updates के अनुसार, मुझे अपने update.rdf पर हस्ताक्षर करना होगा और install.rdf में एक एन्कोडेड सार्वजनिक कुंजी प्रदान करनी होगी।मेरे फ़ायरफ़ॉक्स एक्सटेंशन

McCoy उपकरण do all of this पर है, लेकिन यह एक इंटरैक्टिव जीयूआई उपकरण है और मैं एक एंटी स्क्रिप्ट का उपयोग करके विस्तार पैकेजिंग को स्वचालित करना चाहता हूं (क्योंकि यह एक बहुत बड़ी प्रक्रिया का हिस्सा है)। मुझे नीचे से update.rdf मेनिफेस्ट पर हस्ताक्षर करने के लिए क्या हो रहा है, इसका एक और सटीक विवरण नहीं मिल रहा है, और मैककॉय स्रोत जावास्क्रिप्ट का एक बहुत भयानक है।

दस्तावेज़ का कहना है:

ऐड-ऑन लेखक एक सार्वजनिक/निजी आरएसए क्रिप्टोग्राफ़िक कुंजी जोड़ी बनाता है। कुंजी का सार्वजनिक हिस्सा डीईआर एन्कोड किया गया है और उसके बाद बेस 64 एन्कोड किया गया है और एड-ऑन के install.rdf में एक अद्यतन के रूप में जोड़ा गया है।

(...)

मोटे तौर पर अद्यतन जानकारी एक स्ट्रिंग में बदल जाती है, तो एक SHA512 एल्गोरिथ्म हैशिंग का उपयोग टुकड़ों में बांटा और इस हैश निजी कुंजी का उपयोग करके हस्ताक्षरित किया गया है। परिणामस्वरूप डेटा डीईआर एन्कोड किया गया है, तो बेस 64 को हस्ताक्षर प्रविष्टि के रूप में update.rdf में शामिल करने के लिए एन्कोड किया गया है।

मुझे डीईआर एन्कोडिंग के बारे में अच्छी तरह से पता नहीं है, लेकिन ऐसा लगता है कि इसे कुछ पैरामीटर की आवश्यकता है।

तो किसी को भी

  • या तो पूर्ण algortihm update.rdf पर हस्ताक्षर और एक पूर्वनिर्धारित कुंजीयुग्म, या asn1coding की तरह एक कमांड लाइन उपकरण है कि क्या मैककॉय
  • करने के लिए एक स्क्रिप्ट विकल्प का उपयोग कर install.rdf को पता होगा suffise जाएगा
  • एक अच्छा/सरल डेवलपर ट्यूटोरियल डीईआर एन्कोडिंग पर

उत्तर

3

चीजें पिछले वर्ष से स्थानांतरित कर दिया:

स्वागत uhura को (और वे official MDC McCoy पृष्ठ पर सूचीबद्ध हैं)

uhura -k signature.key yourextension.xpi http://yourupdateurl 

अतिरिक्त लाभ आप उत्पन्न कर सकते हैं कि, बैकअप, अपने स्वयं के क्रिप्टो कुंजियों है मोज़िला के डीबी से बंधे बिना। केवल दोष है: पर्ल आधारित (सीपीएएन के साथ या बिना, लापता निर्भरताओं को ठीक करने के लिए कितना दर्दनाक)

एक साइड नोट के रूप में, मैंने लगभग अपनी खुद की पायथन आधारित लिपि लिखना शुरू कर दिया था, लेकिन कोई भी आरडीएफ-जागरूक हस्ताक्षर lib नहीं मिला ; या, वास्तव में, यहां तक ​​कि एक्सएमएल-हस्ताक्षर libs भी अजगर के लिए बकवास हैं (लेकिन हे, XML-DSig is inherently evil, यह नहीं है)। एक्सटेंशन प्रकट करने के लिए मोज़िला ने आरडीएफ क्यों चुना?

+1

मैंने लाइन # 55 से हमारे $ tmp = catfile (curdir(), "update.rdf.mxtools। $$। Tmp") को बदल दिया है; यूहुरा बल्ले में –

+0

वास्तव में हम इसे लिनक्स पर उपयोग करते हैं!बीटीडब्ल्यू, हम update.rdf फ़ाइलों पर हस्ताक्षर करने और संबंधित कुंजी का प्रबंधन करने के साथ तंग आ गए, इसलिए हम HTTPS: // पर चले गए; आजकल एसएसएल सर्टिफिकेट सस्ता सस्ते हैं ... – Stefano

+0

अब यह 2015 है, और फ़ायरफ़ॉक्स एडॉन्स का निर्माण अभी भी पूर्ण नरक है। मुझे विश्वास है कि * मोज़िला * बुरा है। – makhdumi

2

यकीन नहीं करता है, तो आप पहले से ही समाधान मिल गया, लेकिन मैककॉय उपकरण एक कमांड लाइन पैच है।

+0

आपका मतलब है http://hyperstruct.net/projects/spock? यही वह समाधान है जिसे मैं ढूंढ रहा हूं, लेकिन 2008 से इसे बनाए रखा नहीं गया है और मैक के लिए पैक नहीं किया गया है। WinXP/Cygwin के तहत –

संबंधित मुद्दे