2011-11-18 21 views
6

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

अब तक मैंने http://d-gecko.svn.sourceforge.net/viewvc/d-gecko/trunk/ डेल्फी बाइंडिंग के साथ XPCOM का उपयोग करने का प्रयास किया है। हालांकि वहां बहुत अधिक दस्तावेज नहीं हैं और मैं सभी शब्दावली और अवधारणाओं के साथ उलझन में हूं। सबसे अच्छा मेरे द्वारा प्रबंधित कर सकता था:

var ns:nsIX509CertDB; 
     servMgr:nsIServiceManager; 
     p:Pchar; 
    begin 
     GRE_Startup; 
     NS_GetServiceManager(servmgr); 
     servMgr.GetServiceByContractID('@mozilla.org/security/x509certdb;1',NS_IX509CERTDB_IID,ns); 
     ns.FindCertNicknames(nil,1,count,p); 
     GRE_Shutdown; 
    end; 

इस कोड को मैं certdb वस्तु का उदाहरण मिलता किया का उपयोग करना है और मैं प्रमाण पत्र के लिए यह पूछने के लिए सक्षम था। हालांकि यह पूरी तरह से खाली प्रतीत होता है (FindCertNicknames से गिनती 0 है) और यह ओसीएसपी बदलने पर प्रतिक्रिया नहीं करता है (IsOcspOn हमेशा सत्य लौटाता है)। मैं सोच रहा हूं कि मैंने या तो नया प्रमाणपत्र बनाया है या मुझे किसी भी तरह से डिफ़ॉल्ट उपयोगकर्ता प्रोफ़ाइल को सक्रिय करने की आवश्यकता है।

मैंने softokn.dll को PKCS # 11 लाइब्रेरी के रूप में एक्सेस करने का भी प्रयास किया। ऐसा लगता है कि इसमें कुछ प्रकार के पीकेसीएस # 11 एपीआई हैं, यह अच्छी प्रतिक्रिया नहीं दे रहा है। अर्थात। C_Rititialize पर CKR_BAD_ARGUMENTS।

अंतिम और वास्तव में खराब तरीका प्रमाण पत्र फ़ाइलों तक सीधे पहुंच जाएगा क्योंकि यह "मानक" एनएसएस होना चाहिए, लेकिन मुझे वास्तव में इस तरह से पसंद नहीं है।

उत्तर

0

मैंने पीकेसीएस # 11 तरीके से थोड़ी अधिक खोज की और मुझे वास्तव में कुछ करने के लिए मिला। Softokn.dll लाइब्रेरी "लगभग" मानक पीकेसीएस # 11 लाइब्रेरी है, https://developer.mozilla.org/en/PKCS11_Module_Specs देखें। मुख्य बात यह है कि आपको इसे विशेष तर्कों के साथ प्रारंभ करने की आवश्यकता है (संरचना को लिंक किए गए यूआरएल में वर्णित किया गया है)।

एनएसएस एरर रिटर्न मानों की जांच करने के लिए यह आसान है: http://people.mozilla.com/~chofmann/l10n/tree/mozilla/security/nss/cmd/pk11mode/pk11mode.c पर CKR_NETSCAPE _.. देखें। वहाँ एक लापता शब्द, शायद "समर्थित" है, में "एमओडी डीबी समारोह मानक के माध्यम से नहीं है -

पिछले कुंजी बात यह है कि आप के रूप में प्रलेखन secmod.db उपयोग के बारे में स्पष्ट नहीं है हाथ से टोकन निर्दिष्ट करने की आवश्यकता है पीकेसीएस # 11 इंटरफेस "।

यह सब निम्न स्तर के कोडिंग है और अभी भी बहुत सारे काम की आवश्यकता होगी, इसलिए यदि आप स्क्रैच से शुरू कर रहे हैं तो यूजीन द्वारा सुझाए गए सिक्योरबैकबॉक्स का उपयोग करना बेहतर हो सकता है।

1

हमारा सिक्योरब्लैकबॉक्स पीकेसीएस # 11 के माध्यम से softtokn.dll के साथ काम करता है और आप सुरक्षित प्रमाणपत्र प्रबंधन के लिए SecureBlackbox द्वारा प्रदान किए गए इंटरफेस का उपयोग कर सकते हैं।