पर विफल रहता है जब मैं मैक ओएस एक्स 10.6 द्वारा प्रदान की गई सुरक्षा ढांचे से SecPKCS12Import()
का उपयोग करने का प्रयास करता हूं, तो परिणाम कोड हमेशा errSecUnimplemented
प्रदान किए गए तर्कों के बावजूद होता है।सुरक्षा.फ्रेमवर्क से SecPKCS12Import() ओएस एक्स 10.6
इसके अलावा, लिंकर SecImportExport.h (यानी kSecImportExportPassphrase
, kSecImportItemIdentity
, et al।) में घोषित इस फ़ंक्शन के लिए प्रासंगिक स्थिरांक के प्रतीक नहीं ढूंढ पा रहा है।
इस पुस्तकालय के साथ पृथ्वी पर क्या चल रहा है - क्या यह क्रिया लागू है या नहीं? लिंकर ढांचे में अन्य सभी प्रतीकों को क्यों हल कर सकता है, लेकिन ये नहीं? मुझे एक PKCS12-स्वरूपित बाइनरी ब्लॉब को SecIdentityRef या SecCertificateRef और SecKeyRef जोड़ी में कैसे परिवर्तित करना चाहिए?
मैं क्या गलत कर रहा हूं? मुझे यकीन है कि यह एक पीईबीकेएसी मुद्दा है। :-)
संपादित करें: मुझे लगता है कि मैं अपने प्रश्न में बहुत अस्पष्ट था। मुझे पता है कि सुरक्षा। फ्रेमवर्क लागू किया गया है, यह देखते हुए कि मैं बिना किसी समस्या के अन्य कार्यक्षमता का उपयोग करने में सक्षम हूं। यह देखते हुए, मैं काफी हद तक निश्चित हूं कि मैं ढांचे के खिलाफ सही तरीके से लिंक कर रहा हूं, क्योंकि यदि मैं लिंक हटा देता हूं, तो प्रतीकों में से कोई भी नहीं पाया जा सकता है - जैसा कि अपेक्षित है। जब मैं ढांचे को फिर से जोड़ता हूं, तो SecPKCS12Import()
से संबंधित स्थिरांक के अपवाद के साथ सभी प्रतीकों पाए जाते हैं, उदाहरण के लिए kSecImportExportPassphrase
, kSecImportItemIdentity
, आदि
यह देखते हुए कि मैं इन प्रतीकों का उपयोग नहीं कर सकते हैं, मैं क्या हो सकता था गलत तार (@"kSecImportItemIdentity"
, आदि) में पारित कर दिया है, लेकिन त्रुटि कोड errSecUnimplemented
था। इससे मुझे विश्वास हुआ कि शायद यह विशिष्ट कार्यक्षमता लागू नहीं की गई है।
मैंने 10.5 एसडीके का उपयोग करने की कोशिश की, लेकिन यह निश्चित रूप से काम नहीं किया। :-)
संपादित करें: मेरी आयात सिर्फ एक नियमित रूप से #import <Security/Security.h>
है। किक्स के लिए, मैंने #import <Security/SecImportExport.h>
भी कोशिश की, लेकिन इससे कोई बदलाव नहीं हुआ। उस ने कहा, त्रुटि लिंकर द्वारा जारी की जाती है, संकलक नहीं।
मैंने लाइब्रेरी द्वारा निर्यात किए गए प्रतीकों की सूची के लिए dyldinfo -export Security.framework/Security
चलाया और new प्रतीकों में से कई पाया, लेकिन kSecImportExportPassphrase
और दोस्तों को स्पष्ट रूप से याद आ रही थी। यह समझा सकता है कि लिंकर प्रतीक क्यों नहीं ढूंढ सकता है। SecPKCS12Import
के लिए प्रतीक प्रतीक तालिका में प्रकट होता है और मैं इसे बिना किसी समस्या के कॉल कर सकता हूं, यह केवल कार्यक्षमता नहीं है।
कम से कम 10.6.2 के रूप में अनुपूरक होने की पुष्टि की गई - कृपया इस पर एक रडार दर्ज करें। नीचे मेरे जवाब में विवरण। –