Я использую код шифрования в Java/Android для соответствия шифрованию iOS. В iOS есть шифрование с помощью RSA с использованием следующей схемы заполнения: PKCS1-OAEPПоддерживается ли поддержка RSA PKCS1-OAEP в bouncycastle?
Однако, когда я пытаюсь создать Cipher с PKCS1-OAEP.
Cipher c = Cipher.getInstance("RSA/None/PKCS1-OAEP", "BC");
Ниже StackTrace
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
неверен? но не может найти окончательного ответа, чтобы сказать, что PKCS1-OAEP не поддерживается или правильный способ его определения.
Я использую библиотеку spongycastle так, чтобы иметь полную реализацию bouncycastle.
Без более подробно, что трудно сказать, но это может быть что-то вроде 'RSA/None/OAEPWithSHA1AndMGF1Padding', например. – vcsjones
@vcsjones Я вижу это на следующем http://www.bouncycastle.org/wiki/display/JA1/Frequently+Asked+Questions, но в то время как это прошло мимо исключения NoSuchPaddingExN, это то же дополнение, что и PKCS1- OAEP. Какие дополнительные детали помогут? – scottyab
OAEP использует * некоторую * функцию хэширования, будь то SHA1 или что-то еще, зависит от реализации. Нам нужно больше узнать о вашей реализации iOS. Например, если вы использовали 'RSA_PKCS1_OAEP_PADDING' в вашей функции RSA_public_encrypt, то есть SHA1 с MGF1. http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/RSA_public_encrypt.3ssl.html. Как выглядит ваш код iOS? – vcsjones