मेरी C#
/.NET
आवेदन में मैं अगर किसी दिए गए निष्पादन योग्य डिजिटलहस्ताक्षरित किया गया है जांच करने के लिए है (अधिमानतः बिना Exception
परीक्षण।)जांचें कि दिया गया निष्पादन योग्य डिजिटल हस्ताक्षरित और मान्य है या नहीं?
तब मैं जांच करने की आवश्यकता है अपने प्रमाण पत्र(के आधार पर वैध है स्थापित रूट प्रमाण पत्र) और यदि फाइल सामग्री हस्ताक्षर के लिए मान्य है।
BCL
में इतने सारे वर्गों रहे हैं, मैं कहाँ & शुरू करने के लिए क्या उपयोग करने के लिए पता नहीं है, और कुछ भी मैं अब तक मिल गया है मेरा भ्रम को समाप्त नहीं करता है ...
मैं था
bool IsSignedFile(string path);
Cert GetCertificateFromSignedFile(string path);
bool IsValidCertificate(Cert cert)
Sig GetSignatureFromSignedFile(string path);
bool IsValidSignature(string path, Sig sig, Cert cert);
जोड़ा गया स्पष्टीकरण: बिनाP/Invoke
यदि संभव हो तो कुछ इस तरह, करना पसंद
वर्तमान में बड़ी समस्या यह है कि मुझे इस तरह की फ़ाइल के हस्ताक्षर को आसान तरीके से प्राप्त करने का कोई तरीका नहीं मिला है। अभी भी उम्मीद है कि एक प्रदान किया गया, प्रबंधित, BCL
समाधान है क्योंकि मुझे आश्चर्य होगा कि वास्तव में वह हिस्सा गुम है या नहीं। (यह सिर्फ X509Certificate.CreateFromSignedFile
साथ किया जा सकता प्रमाण पत्र के लिए, कि मान्य संभव भी है)
मैं मिश्रण नहीं है कि 50% काम P/Invoke
कोड या एक बड़ा विभिन्न पुस्तकालय के साथ किया पसंद करेंगे।
मुझे AuthenticodeSignatureInformation
कक्षा मिली है, हालांकि किसी दिए गए निष्पादन योग्य के लिए इसका उपयोग करने के बारे में कोई जानकारी नहीं है।
http://stackoverflow.com/questions/7622732/c-how-to-detect-tampering-of- की संभावित डुप्लिकेट ऊपर कोड के सबसे लिखा था प्रामाणिकोड-हस्ताक्षरित फ़ाइल – DeCaf
मुझे आशा है कि यह उत्तर दिए गए प्रश्न का डुप्लिकेट नहीं होगा;) – ordag
से जुड़े प्रश्न में तीन उत्तरों हैं जो मैं देख सकता हूं। (उनमें से कोई भी स्वीकार नहीं किया गया था, लेकिन यह कहना नहीं है कि वे प्रासंगिक नहीं हैं)। Http: // stackoverflow पर एक और समान है।कॉम/प्रश्न/301024/मान्य-प्रामाणिकोड-हस्ताक्षर-ऑन-एक्स-सी-कैपिकॉम के बिना, लेकिन सब कुछ दुर्भाग्य से पी/आवेषण के उपयोग के लिए इंगित करता है। – DeCaf