मैं आईओएस एन्क्रिप्शन से मेल खाने के लिए जावा/एंड्रॉइड में एन्क्रिप्शन कोड लागू कर रहा हूं। आईओएस में निम्नलिखित पैडिंग योजना का उपयोग कर आरएसए के साथ एन्क्रिप्ट कर रहे हैं: पीकेसीएस 1-ओएईपीक्या आरएसए पीकेसीएस 1-ओएईपी पैडिंग बाउंसीकैसल में समर्थित है?
हालांकि जब मैं पीकेसीएस 1-ओएईपी के साथ सिफर बनाने की कोशिश करता हूं।
Cipher c = Cipher.getInstance("RSA/None/PKCS1-OAEP", "BC");
नीचे स्टैकट्रेस
javax.crypto.NoSuchPaddingException: PKCS1-OAEP unavailable with RSA.
at com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.engineSetPadding(CipherSpi.java:240)
at javax.crypto.Cipher.getCipher(Cipher.java:324)
at javax.crypto.Cipher.getInstance(Cipher.java:237)
हो सकता है कि यह सही नहीं है RSA/None/PKCS1-OAEP
है? लेकिन यह कहने का कोई निश्चित जवाब नहीं मिल सकता है कि पीकेसीएस 1-ओएईपी असमर्थित है या इसे परिभाषित करने का सही तरीका है।
मैं स्पॉन्गकासल लाइब्रेरी का उपयोग कर रहा हूं इसलिए पूर्ण बाउंसीकैसल कार्यान्वयन है।
लगेगा यह कहना मुश्किल है, लेकिन यह 'आरएसए/कोई नहीं/OAEPWithSHA1AndMGF1Padding' की तरह कुछ, उदाहरण के लिए हो सकता है। – vcsjones
@vcsjones मैं देखता हूं कि निम्नलिखित http://www.bouncycastle.org/wiki/display/JA1/Frequently+Asked+Questions पर ध्यान दिया गया है, लेकिन जब यह NoSuchPaddingException से पहले मिलता है, यह एक ही पैडिंग नहीं है 'PKCS1- OAEP '। क्या अतिरिक्त जानकारी मदद मिलेगी? – scottyab
ओएईपी * कुछ * प्रकार के हैशिंग फ़ंक्शन का उपयोग करता है, चाहे वह SHA1 हो या कुछ और कार्यान्वयन पर निर्भर करता हो। हमें आपके आईओएस कार्यान्वयन के बारे में अधिक जानने की जरूरत है। उदाहरण के लिए, यदि आपने अपने RSA_public_encrypt फ़ंक्शन में 'RSA_PKCS1_OAEP_PADDING' का उपयोग किया है, तो वह एमजीएफ 1 के साथ SHA1 है। http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/RSA_public_encrypt.3ssl.html। आपका आईओएस कोड कैसा दिखता है? – vcsjones