मान लीजिए कि मैं तीन प्रमाण पत्र (Base64 प्रारूप में) करते हैंसी # मैं रूट-सीए-सर्ट प्रमाणपत्र (x50 9) श्रृंखला को कैसे सत्यापित कर सकता हूं?
Root
|
--- CA
|
--- Cert (client/signing/whatever)
मैं प्रमाणपत्र और सी # में प्रमाण पत्र पथ/श्रृंखला कैसे मान्य कर सकते हैं? (ये सभी तीन कर्ट मेरे कंप्यूटर प्रमाण स्टोर में नहीं हो सकते हैं)
संपादित करें: BouncyCastle को सत्यापित करने के लिए कार्य है। लेकिन मैं किसी तीसरे पक्ष की लाइब्रेरी का उपयोग न करने की कोशिश कर रहा हूं।
byte[] b1 = Convert.FromBase64String(x509Str1);
byte[] b2 = Convert.FromBase64String(x509Str2);
X509Certificate cer1 =
new X509CertificateParser().ReadCertificate(b1);
X509Certificate cer2 =
new X509CertificateParser().ReadCertificate(b2);
cer1.Verify(cer2.GetPublicKey());
यदि cer1 प्रमाणपत्र 2 (सीए या रूट) द्वारा हस्ताक्षरित नहीं है, तो अपवाद होगा। यह वही है जो मैं चाहता हूं।
मैं एक बार में 3 को कैसे सत्यापित कर सकता हूं? मैं 3 certs कैसे श्रृंखला कर सकते हैं? – Jacob
मुझे यकीन नहीं है, लेकिन अस्थायी स्टोर [X509Store] (http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.aspx) बनाने का प्रयास करें। उस स्टोर में सभी प्रमाणपत्र जोड़ें। इसके बाद आपको सबसे कम प्रमाण पत्र पर वैध कॉल करना चाहिए। – MichaelMocko