2012-07-17 10 views
6

में प्रमाण पत्र बाइट [] से X509 प्रमाणपत्र में कनवर्ट करना मैंने डेटाबेस में बेस 64 एन्कोडेड स्ट्रिंग के रूप में एक प्रमाणपत्र संग्रहीत किया है। मैं इसे डेटाबेस से पढ़ सकता हूं और इसे डीकोड कर सकता हूं लेकिन मैं डीकोडेड बाइट [] को X509 प्रमाणपत्र में कनवर्ट करना चाहता हूं। मैं ऐसा करने के लिए नमूना कोड की तलाश में हूं। मैंने कोशिश की है:जावा में

CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); 
InputStream in = new ByteArrayInputStream(bytes); 
X509Certificate cert = (X509Certificate)certFactory.generateCertificate(in); 

यह एन्कोडिंग प्रकार के साथ एक समस्या का कारण बनता है। प्रमाण पत्र का प्रतिनिधित्व करने वाला एक वैध नमूना स्ट्रिंग या बाइट [] अच्छा होगा।

कोई भी पॉइंटर्स बहुत अच्छा होगा! धन्यवाद।

+1

कि आप का उल्लेख "एन्कोडिंग प्रकार के साथ इस मुद्दे" क्या है: आप कि byte[] खुद का उपयोग कर openssl उत्पन्न कर सकते हैं? क्या यह एक डेटाबेस मुद्दा या जावा मुद्दा है? –

+0

मुझे संदेह है कि आपको जो चाहिए वह http://docs.oracle.com/javase/1.4.2/docs/api/java/security/cert/Certificate.html#getEncoded%28%29 है। GetEncoded() विधि आपको एक बाइट [] वापस कर देगी। –

+0

आपने बाइट सरणी कैसे प्राप्त की? और एन्कोडिंग प्रकार के साथ समस्या वास्तव में क्या है? और कोड की इन पंक्तियों में से कौन सा अपवाद फेंकता है? और अपवाद क्या है? – EJP

उत्तर

0

आपका नमूना कोड ठीक दिखता है।

openssl genrsa -out privkey.pem 
openssl req -new -x509 -key privkey.pem -outform DER -out cert.der 
+4

-1: ओपी राज्य, "जावा में" –

+0

मैंने अपने जावा विशिष्ट प्रश्न का उत्तर दिया। यह ठीक लग रहा है। मैं सवाल के दूसरे भाग को संबोधित कर रहा था, जहां वह नमूने मांग रहा है: बाहरी उपकरण openssl के साथ उत्पन्न करें। – martijno

+1

ओपी "एन्कोडिंग प्रकार के साथ समस्या" का उल्लेख करता है। क्या आपका उत्तर उस प्रश्न का उत्तर देता है (वास्तव में यह सुनिश्चित नहीं है कि सवाल खुद क्या है!)? ओपी प्रश्न के लिए आपका ओपनएसएल उदाहरण किस तरह से प्रासंगिक है? –

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