2008-09-24 14 views
8

मुझे सी # का उपयोग करके एस/एमआईएम संदेश बनाने की जरूरत है (जैसा आरएफसी 2633, "एस/एमआईएम संस्करण 3 संदेश विनिर्देश" और आरएफसी 3335 में निर्दिष्ट है)। एकमात्र एस/एमआईएम लाइब्रेरी मैं एक वाणिज्यिक पुस्तकालय (http://www.example-code.com/csharp/smime.asp) पा सकता हूं, जो हमारे लिए अच्छा नहीं है।एस/एमआईएम पुस्तकालयों के लिए .NET?

क्या एस/एमआईएम संदेश बनाने और विशेष रूप से, .p7s फ़ाइलों को पूरा करने के लिए कोई मौजूदा पुस्तकालय हैं?

मैं सभी एन्क्रिप्टेड और हस्ताक्षर किए तत्वों को इस फ़ाइल में जाने की जरूरत है कि है, लेकिन मैं आरएफसी दस्तावेज़ की सहायता से अपने खुद के पुस्तकालय handrolling बिना .p7s फ़ाइल बनाना चाहते हैं ...


संपादित करें: मुझे एक और commercial S/MIME library मिला है, जो अभी भी हमारी आवश्यकताओं के लिए अच्छा नहीं है। यह अधिक से अधिक दिख रहा है जैसे मुझे एक एस/एमआईएम लाइब्रेरी रोल करना है, जो दुखी है। क्या हर कोई .NET में है, जिसे वाणिज्यिक, बंद स्रोत पुस्तकालयों का उपयोग करके एस/एमआईएम की आवश्यकता होती है?

उत्तर

0

मैं इस S/MIME पुस्तकालय का इस्तेमाल किया है नहीं है, लेकिन अपने आवेदन में एक ही विक्रेता से एक और पुस्तकालय का उपयोग करता है और यह ठीक काम करता है:

http://www.chilkatsoft.com/mime-dotnet.asp

p7s हस्ताक्षर करने के लिए उनके पुस्तकालय, अलग है जो आपके बजट पर निर्भर कोई समस्या हो सकती:

http://www.chilkatsoft.com/crypt-dotnet.asp

+0

भले ही लागत कोई मुद्दा नहीं था (जो मुझे यकीन है कि यह होगा), एक और मुद्दा यह है कि कैसे chilkatsoft पुस्तकालय प्रदान करता है। मैं शर्त लगाता हूं कि वह बस कुछ डीएलएस प्रदान करता है, जिसे आप विजुअल स्टूडियो के साथ खुशी से उपयोग कर सकते हैं? मेरा बॉस बनाम.net के लिए वसंत के लिए बहुत सस्ता है, हम http://www.microsoft.com/express/vwd/ – Gabriel

+0

का उपयोग करते हैं जैसे मैंने कहा, हम दृश्य वेब देव का उपयोग करते हैं, जिसने डीएलएल कैपेबिलिट्स को सीमित किया है। विशेष रूप से, डीएलएल को संकलित नहीं करते हैं, और मुझे लगता है कि यह सामान्य रूप से विदेशी डीएलएल के साथ बहुत ही सीमित अंतःक्रियाशीलता है, हालांकि मैं गलत हो सकता हूं। ओह, मैं विजुअल स्टूडियो के लिए कितना लंबा हूं! – Gabriel

0

यह पूरा s/MIME को लागू करने के रूप में यह अतिरिक्त काम की बहुत सारी की आवश्यकता काफी मुश्किल है। आप अपने कार्य के लिए SMIME components in SecureBlackbox का उपयोग कर सकते हैं।

अपडेट: सिक्योरब्लैकबॉक्स हमारा उत्पाद है। यह सिल्वरलाइट और विंडोज फोन (आम सहित) का पूरी तरह से समर्थन करता है।

3

Rebex Secure Mail पर एक नज़र डालें। यह एक बहुत ही स्थिर पुस्तकालय है जिसका उपयोग मैं कई सालों से करता हूं। यह 100% प्रबंधित कोड है और स्रोत कोड भी उपलब्ध है।

2

मैं कोई भाग्य के साथ बहुत समय बिताया नेट के लिए एक अच्छा S/MIME पुस्तकालय की तलाश में,। मैंने ओपेकमेल नामक अपना खुद का निर्माण समाप्त कर दिया।

यह खुला स्रोत और पूरी तरह से नि: शुल्क है। यह System.Net.Mail.SmtpClient क्लास से प्राप्त होता है, इसलिए मौजूदा कोड को पोर्ट करना सरल है। इसमें पीओपी 3 और आईएमएपी के साथ काम करने के लिए कक्षाएं भी शामिल हैं।

इसे http://opaquemail.org/ पर देखें।

एक S/MIME ट्रिपल लिपटे संदेश (जो डिजिटल रूप से हस्ताक्षरित है, एन्क्रिप्टेड, तो डिजिटल फिर से हस्ताक्षर किए) भेजने का एक उदाहरण है:

// Instantiate a new SMTP connection to Gmail using TLS/SSL protection. 
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587); 
smtpClient.Credentials = new NetworkCredential("[email protected]", "[email protected]"); 
smtpClient.EnableSsl = true; 

// Create a new MailMessage class with lorem ipsum. 
MailMessage message = new MailMessage("[email protected]", "[email protected]", "Example subject", "Lorem ipsum body."); 

// Specify that the message should be signed, have its envelope encrypted, and then be signed again (triple-wrapped). 
message.SmimeSigned = true; 
message.SmimeEncryptedEnvelope = true; 
message.SmimeTripleWrapped = true; 

// Specify that the message should be timestamped. 
message.SmimeSigningOptionFlags = SmimeSigningOptionFlags.SignTime; 

// Load the signing certificate from the Local Machine store.    
message.SmimeSigningCertificate = CertHelper.GetCertificateBySubjectName(StoreLocation.LocalMachine, "[email protected]"); 

// Send the message. 
await smtpClient.SendAsync(message); 

आशा इस मदद करता है।

10

मैंने अपनी खुद की एमआईएम लाइब्रेरी को एस/एमआईएमई के समर्थन के साथ MimeKit कहा है जो System.Net.Mail पर आधारित किसी भी चीज़ से कहीं अधिक मजबूत है जो डरावनी रूप से टूटा हुआ है।

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

+1

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

+0

हां, मैं अभी तक इसके आसपास नहीं मिला है। मैं जल्द ही उसका ख्याल रखने की कोशिश करूंगा। – jstedfast

+0

आईओएस और एंड्रॉइड के लिए सभी एस/एमआईएमई और पीजीपी समर्थन के निर्माण के लिए माइमकिट को बस एक पैच किया गया :-) – jstedfast

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