travist / jsencrypt

A zero-dependency Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.
http://www.travistidwell.com/jsencrypt
Other
6.68k stars 2.01k forks source link

No support for RSA decryption using public key. #222

Open ssaguiar opened 3 years ago

ssaguiar commented 3 years ago

At present time, this excellent library doesn't have support to decryption using RSA and public key. Is there any development for this? Thanks.

davidquon commented 3 years ago

Are you asking about RSA or AES decryption in this issue as the title says RSA and the description refers to AES?

ssaguiar commented 3 years ago

Sorry it's RSA. I have a RSA (RSA/ECB/PKCS1Padding) buffer content which must be decrypted using a public key, generating a key. This will produce the key I will need to decrypt another buffer using the AES/CBC/PKCSSPadding and an IV.

So, I will need to decrypt the first buffer using RSA and a public key to generate the key to decrypt another buffer using AES and anIV wch is in another buffer.

This is how data is present in main buffer:

main buffer bytes:

0 255 ENCRYPTED_LICENSE_KEY 256 271 IV 272 END ENCRYPTED_LICENSE_BODY

LICENSE_KEY = ENCRYPTED_LICENSE_KEY decrypted with public key (RSA/ECB/PKCS1Padding)

LICENSE_BODY = ENCRYPTED_LICENSE_BODY decrypted with LICENSE_KEY & IV (AES/CBC/PKCS5Padding)

Can I do it with jsencrypt?

Thank you very much.

puregardenia commented 5 months ago

You can rewrite the RSAKey.prototype.decrypt method, change doPrivate to doPublic, and then modify the pkcs1unpad2 method to remove the second input parameter and related processing logic. It works for me!