I trie to encrypt text in php and decrypt with javscript using RSA. In php i use phpseclib
. For the client-site i've tried forge
by digitalbazaar.
According to the documentation, they create a private and a public key in one object and start the magic.
/*** Generating 1024-bit key-pair */
keys = forge.pki.rsa.generateKeyPair(1024);
/*** public key encryption */
var ciphertext = keys.publicKey.encrypt("Secret");
/*** private key decryption */
var plaintext = keys.privateKey.decrypt(ciphertext);
Is there a method to use a given private key as a string to decrypt messages in forge?
You can convert PKCS#8 PEM encoded private keys (i.e. key strings staring with -----BEGIN RSA PRIVATE KEY-----
)
var pem = readPEMKey(...); // read the string
var privKey = forge.pki.privateKeyFromPem(pem);
var pubKey = forge.pki.rsa.setPublicKey(privKey.n, privKey.e);
/*** public key encryption */
var ciphertext = pubKey.encrypt("Secret");
/*** private key decryption */
var plaintext = pkey.decrypt(ciphertext);
It is also possible (and a bit more complex) to create a private key from scratch with the key parameters:
var privKey = forge.pki.setPrivateKey(n, e, d, p, q, dP, dQ, qInv);
where :
All these params are supposed to be BigInteger
created with the forge.util.createBuffer
function.