के साथ X.50 9 प्रमाण पत्र पढ़ना मैं बाहरी पार्टी से प्राप्त प्रमाणपत्र को पढ़ने के लिए जावा का उपयोग करने का प्रयास कर रहा हूं। कोड निम्न त्रुटि फेंक है:जावा
java.lang.RuntimeException: java.security.cert.CertificateException: Unable to initialize, java.io.IOException: extra data given to DerValue constructor
कोड:
FileInputStream ksfis = new FileInputStream(this.getCertificateFile());
ksbufin = new BufferedInputStream(ksfis);
certificate = (X509Certificate)
CertificateFactory.getInstance("X.509").generateCertificate(ksbufin);
यकीन है कि समस्या नहीं कोड में, मैं एक स्व-हस्ताक्षरित प्रमाणपत्र बनाया गया और कोड के साथ इस्तेमाल किया गया था बनाने के लिए, और यह ठीक काम किया। मैंने सिस्टम कुंजी श्रृंखला में दोनों प्रमाण पत्र स्थापित किए हैं, और वे दोनों मान्य हैं। मैं एक मैक और जावा 1.6 का उपयोग कर रहा हूँ।
कोई विचार है कि जब मैं बाहरी पार्टी प्रमाणपत्र लोड करता हूं तो मुझे उपरोक्त अपवाद क्यों मिलता है? क्या आपको लगता है कि यह स्थानांतरण के दौरान दूषित हो गया है? यदि ऐसा होता है, तो इसे स्थानीय सिस्टम पर मान्य नहीं दिखाना चाहिए, है ना? इस openssl का उपयोग कर टाइप करने के लिए
यदि आप इसे टेक्स्ट एडिटर में खोलते हैं, तो क्या यह टेक्स्ट या कचरा दिखाता है? –
मैंने टेक्स्ट एडिटर में अपना खोला और उसका पूरा कचरा खोला और तीसरे पक्ष में BEGIN सर्टिफिकेट और ईएनडी सर्टिफिकेट टेक्स्ट और इन दोनों सिरों के अंदर सामग्री == (बेस 64 एन्कोडेड?) – Java
के साथ अच्छी तरह व्यवस्थित जंक है, अच्छी तरह से ' ---- स्टार्ट सर्टिफिकेट ----- \ n आधार 64 जंक \ n ----- अंत प्रमाण पत्र ----- 'मुझे लगता है? –