2013-04-11 7 views
17

हम जावा सुरक्षा API का उपयोग कर डिजिटल हस्ताक्षर (पीकेसीएस 7) उत्पन्न कर रहे हैं। डाइजेस्ट एल्गोरिदम SHA-256 है और एन्क्रिप्शन एल्गोरिदम आरएसए (SHA256withRSA) है।WAS 6.1 आईबीएमजेसीई प्रदाता गलत sha256withrsa हस्ताक्षर उत्पन्न करता है

स्थानीय मशीन में सनरासाइन प्रदाता का उपयोग करके, कुछ सामग्री पर एक हस्ताक्षर उत्पन्न हुआ था। WAS 8.0.0.2 में आईबीएमजेसीई प्रदाता का उपयोग करके, हम एक ही सामग्री पर एक ही हस्ताक्षर उत्पन्न करने में सक्षम थे।

हालांकि, समस्या यह है कि हमें वापस WAS 6.1 में माइग्रेट करना पड़ा। अब, उपरोक्त हस्ताक्षर 2 मामलों में उत्पन्न एक से अलग है। मैंने सभी 3 मामलों में बनाए गए संदेश-digests की जांच की, और यह सभी 3 मामलों में समान है, लेकिन WAS 6.1 के मामले में हस्ताक्षर अलग है।

क्या SHA256withRSA एन्क्रिप्शन के संबंध में WAS 6.1 के आईबीएमजेसीई प्रदाता के साथ कोई ज्ञात समस्या है? किसी भी प्वाइंटर की अत्यधिक सराहना की जाएगी। धन्यवाद

+3

+1 समान थे। –

+0

क्या आपने पूरा सीएमएस प्रारूप या केवल पीकेसीएस # 1 प्रारूप देखा था? आपने हश को किस पर उत्पन्न किया? –

+0

मैंने पूरे सीएमएस प्रारूप (पीकेसीएस # 7) की जांच की। केवल अंतिम 4 लाइनें अलग-अलग थीं। मैं समझता हूं कि हस्ताक्षर में भिन्न भाग एन्क्रिप्टेड पाचन है, जो SIGNING_TIME के ​​बाद आता है। (मैं SIGNING_TIME_OID के समान दिनांक/समय का उपयोग कर रहा हूं)। –

उत्तर

1

क्या वास्तव में कोई समस्या है? जो मैं जानता हूँ से, इस

signature = sign(message) 
verify(signature) == message 

लागू करना चाहिए कोई आवश्यकता है कि सभी हस्ताक्षर ही होना चाहिए है। तो क्या आपको वास्तव में उन हस्ताक्षरों के सत्यापन के साथ समस्या है?

0

हमारे पास एक ही समस्या थी और हमने वेबस्पेस को सनजेस का उपयोग करने के लिए मजबूर किया। यहां कदम हैं।

तो IBM Websphere कंसोल में जेनेरिक JVM तर्क के लिए आवेदन सर्वर> सर्वर> प्रक्रिया परिभाषा> जावा वर्चुअल मशीन

देखो करने के लिए जाने के लिए और निम्नलिखित जोड़ें।

-DamCryptoDescriptor.provider=SunJCE -DamKeyGenDescriptor.provider=SunJCE 

फिर

C:\JAVA\jdk1.6.0_34\jre\lib\ext\sunjce_provider.jar 

की नकल की

C:\Program Files\IBM\SDP\runtimes\base_v7\java\jre\lib\ext\sunjce_provider.jar 

बदलें

C:\Program Files\IBM\SDP\runtimes\base_v7\java\jre\lib\security\java.security 

करने के लिए java.security फ़ाइल में प्रदाताओं की सूची के लिए निम्न सूर्य प्रदाताओं को जोड़ कर।

#This will help Websphere to load 
security.provider.13=com.sun.crypto.provider.SunJCE 
security.provider.14=sun.security.provider.Sun 
security.provider.15=sun.security.rsa.SunRsaSign 
security.provider.16=sun.security.jgss.SunProvider 

उम्मीद है कि इससे मदद मिलती है। पाचन की जांच के लिए

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