J'essaye de crypter une chaîne de Java en Python, en utilisant la librairie Bouncy Castle J2ME du côté client et Python M2Crypto de l'autre côté.Java to Python RSA
Tout est assez bon, je peux le décrypter correctement, mais le rembourrage est le problème.
La lib M2Crypto me donne (pour autant que je peux dire) que ces régimes Rembourrage: no_padding = 3 pkcs1_padding = 1 sslv23_padding = 2 pkcs1_oaep_padding = 4
Alors que le château gonflable J2ME offre seulement: NoPadding OAEPWithAndPadding PKCS5Padding SSL3Padding
donc, je peux utiliser NoPadding entre les deux, mais les chaînes qui sont générées après le décryptage sont remplis de caractère pêle-mêle s.
Je voudrais vraiment régler le remplissage, mais je ne sais pas comment convertir les schémas de remplissage/si c'est possible.
Aidez-moi à comprendre cela, ça me tue!
Je suppose que j'étais. J'ai posté cela après des heures de bricolage en désespoir de cause, et voilà que c'était quelque chose de plutôt simple. Il s'avère que si j'utilise la chaîne "RSA/ECB/PKCS1Padding" avec le fournisseur "BC", il peut être lu par python en utilisant PKCS1. La BCE est obligatoire, sinon il y a des caractères indésirables partout. En outre, j'ai dû m'assurer que la clé était au format DER, et le lire avec le X509EncodedKeySpec pour qu'il soit lu. DER = PEM moins l'en-tête (---- BEGIN ...), et base64 décodé. –