Est RSA PKCS1-OAEP. rembourrage pris en charge dans bouncycastle?
Je suis en œuvre un code de chiffrement en Java/Android pour correspondre à iOS de chiffrement. Dans iOS il y a de chiffrement à l'aide de RSA à l'aide de la suite de protocole de remplissage: PKCS1-OAEP.
Cependant lorsque j'essaie de créer de chiffre avec PKCS1-OAEP..
Cipher c = Cipher.getInstance("RSA/None/PKCS1-OAEP", "BC");
Ci-dessous est la 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)
Peut-être que ce RSA/None/PKCS1-OAEP
est incorrect? mais ne trouve pas de réponse définitive à-dire PKCS1-OAEP. est pas pris en charge ou la bonne façon de le définir.
Je suis en utilisant le spongycastle bibliothèque pour avoir plein bouncycastle mise en œuvre.
- Sans plus de détail, il est difficile de dire, mais il pourrait être quelque chose comme
RSA/None/OAEPWithSHA1AndMGF1Padding
, par exemple. - je vois que noté à la suite de bouncycastle.org/wiki/display/JA1/Frequently+Demande+Questions mais tout cela est passé le NoSuchPaddingException ce n'est pas la même rembourrage comme " PKCS1-OAEP.'. Ce détail supplémentaire aiderait?
- OAEP. utilise une sorte de fonction de hachage, si c'est SHA1 ou autre chose dépend de la mise en œuvre. Nous avons besoin d'en savoir plus sur votre iOS mise en œuvre. Par exemple, si vous avez utilisé
RSA_PKCS1_OAEP_PADDING
dans votre RSA_public_encrypt fonction, c'est-SHA1 avec MGF1. developer.apple.com/library/ios/#documentation/System/.... Quel est votre iOS code ressembler?
Vous devez vous connecter pour publier un commentaire.
Le code dans la première réponse, fonctionne, mais il n'est pas recommandé, car il utilise une BouncyCastle classes internes, au lieu de JCA générique interfaces, ce qui rend le code BouncyCastle spécifiques. Par exemple, il sera difficile de passer à SunJCE fournisseur.
Château gonflable à partir de la version 1.50 prend en charge la suite padding oaep noms.
Puis bon RSA-OAEP. cipher initialisations ressemblerait
java.security.Provider.getServices()
.Le code suivant fonctionne, si quelqu'un d'autre est coincé avec similaires de chiffrement de l'encodage/rembourrage questions