2009-08-14 5 views
0

J'ai un message venant d'une société externe qui a été cryptée avec notre clé publique en utilisant Java.Interopérabilité cryptographie Java et C++

Plus précisément, le code java effectuer le cryptage est -

//get instance of cipher using BouncyCastle cryptography provider 
    Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC"); 

    //initialize the cipher with the public key pulled from the X509 certificate 
    cipher.init(Cipher.ENCRYPT_MODE, publicKey); 

Je dois être en mesure de décrypter ce message en utilisant notre clé privée en utilisant C/C++ sous Solaris. J'ai essayé d'utiliser la bibliothèque Crypto ++ et je peux encoder avec succès les messages de décodage en utilisant simplement Crypto ++, mais je n'arrive pas à comprendre comment décoder le message chiffré du côté java.

J'ai spécifiquement essayé d'utiliser un RSAES_PKCS1v15_Decryptor mais cela ne semble pas fonctionner.

Quelqu'un at-il des suggestions quant à la façon dont je peux effectuer le décryptage tels que

  1. Le code désiré Crypto ++ (IDEAL)
  2. Alternatives à RSA/BCE/PKCS1Padding à utiliser du côté Java
  3. bibliothèques open source alternatives C je pourrais essayer
  4. rien d'autre ...

Répondre

2

moi avons réussi à obtenir ce travail en changeant le code Java pour utiliser

Cipher cipher = Cipher.getInstance("RSA/NONE/PKCS1Padding", "BC"); 

Cela correspond alors avec RSAES_PKCS1v15_Decryptor du côté du Crypto.