Bonjour,

mon application est la suivante: avec web services, j'envoie un message crypté de serveur J2ee à un client j2me, avec la signature, je dois verifier la signature avec la clé plublique et afficher le message.
j'ai realisé l'application en j2se et ça marche bien, mais dans j2me les librairies sont differentes. donc j'ai du changer la methode de reconstitution de la clé publique
coté serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
RSAPublicKey clefPublique;
byte[] PuKey = clefPublique.getEncoded();
 
BigInteger publKey =new BigInteger(PuKey);
String pKey = publKey.toString();
je l'envoie.
a la reception (j2me)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
BigInteger PKey = new BigInteger(trame[6]);
byte[] publicKey = PKey.toByteArray();
X509EncodedKeySpec pKeySpec = new X509EncodedKeySpec(publicKey);
KeyFactory KFac = KeyFactory.getInstance("RSA");
 PublicKey rsaPK= KFac.generatePublic(pKeySpec);

ensuite la signature

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Signature instance = Signature.getInstance("SHA1withRSA");
instance.initVerify(rsaPK);
instance.update(msgDecrypteEnOctets,0,msgDecrypteEnOctets.length);
boolean verification =instance.verify(signedEnOctets);
la derniere ligne ne me donne ni true ni false. mais une exception.

pouvez vous m'aider s'il vous plait.