Sto implementando il codice di crittografia in Java/Android per abbinare la crittografia iOS. In iOS ci sono crittografia con RSA utilizzando il seguente schema di riempimento: PKCS1-OAEPIl padding RSA PKCS1-OAEP è supportato in bouncycastle?
Tuttavia quando provo a creare Cipher con PKCS1-OAEP.
Cipher c = Cipher.getInstance("RSA/None/PKCS1-OAEP", "BC");
riportano di seguito le 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)
Forse questo RSA/None/PKCS1-OAEP
sono errate? ma non è possibile trovare una risposta definitiva per dire che PKCS1-OAEP non è supportato o il modo corretto per definirlo.
Sto usando la libreria spongycastle quindi ho piena implementazione di bouncycastle.
Senza ulteriori dettagli è difficile da dire, ma potrebbe essere qualcosa del tipo 'RSA/nessuno/OAEPWithSHA1AndMGF1Padding', per esempio. – vcsjones
@vcsjones vedo ciò che è stato notato nelle seguenti http://www.bouncycastle.org/wiki/display/JA1/Frequently+Asked+Questions ma mentre questo supera la NoSuchPaddingException non ha lo stesso riempimento di 'PKCS1- OAEP'. Quali ulteriori dettagli potrebbero aiutare? – scottyab
OAEP utilizza * qualche * tipo di funzione di hashing, sia che si tratti di SHA1 o qualcos'altro dipende dall'implementazione. Abbiamo bisogno di sapere di più sulla tua implementazione iOS. Ad esempio, se hai usato 'RSA_PKCS1_OAEP_PADDING' nella tua funzione RSA_public_encrypt, questo è SHA1 con MGF1. http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/RSA_public_encrypt.3ssl.html. Come si presenta il tuo codice iOS? – vcsjones