I want to decrypt my C++ Openssl RSA message with node-rsa.
In node-rsa I get
Error: Error during decryption (probably incorrect key). Original error: Error: Incorrect data or key
Encryption:
//ADD PRIVATE KEY
const char* mKey = "...";
BIO* bo = BIO_new(BIO_s_mem());
BIO_write(bo, mKey, strlen(mKey));
EVP_PKEY* pKey = 0;
PEM_read_bio_PrivateKey(bo, &pKey, 0, 0);
BIO_free(bo);
RSA* keypair = EVP_PKEY_get1_RSA(pKey);
char msg[2048 / 8] = "Hallo Welt!";
std::cout << "Message to encrypt: " << msg << std::endl;
//ENCRYPT
char* encrypt = (char*)malloc(RSA_size(keypair));
int encrypt_len;
if ((encrypt_len = RSA_public_encrypt(strlen(msg) + 1, (unsigned char*)msg, (unsigned char*)encrypt, keypair, RSA_PKCS1_PADDING)) == -1) {
std::cout << "ERROR";
}
std::cout << "ENCRYPTED: " << std::endl;
std::cout << base64_encode(encrypt);
std::cout << std::endl;
Result:
Message to encrypt: Hallo Welt!
ENCRYPTED:
xR00Ei3kxS4SYJfBlGX8IPyyBbOAnAOqwfdKtzJNs4JsKo/5g1IhCesY0YETyJX9S48uWNWHr5C3IAGu2+0N0qdi8WDs+m+oX/F1I7H5/n8pQcwqGn81mhSe6cYpBFHdX2GgzuJ8tNr3HsigorA=
Now the node-rsa code which doesn't work:
const NodeRSA = require('node-rsa');
const key = new NodeRSA(...);
key.setOptions({encryptionScheme: 'pkcs1'});
const text = key.decrypt("xR00Ei3kxS4SYJfBlGX8IPyyBbOAnAOqwfdKtzJNs4JsKo/5g1IhCesY0YETyJX9S48uWNWHr5C3IAGu2+0N0qdi8WDs+m+oX/F1I7H5/n8pQcwqGn81mhSe6cYpBFHdX2GgzuJ8tNr3HsigorA=", 'utf8');
console.log(text);
Used Key:
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA2vyUeV4ODTjVZi+z04q94rJfYx7u54HbPrsc94K6e90hYcw4
G5envqpJLU7NRrQP0UOGAkM0+7xPyjHVzfu3I5b+DL3BE2d1Bjt9Ayt3ZAHMoTLc
gaelHjfesu5X2QJ+EpF/kWRQLN3xZ8sELTVrjtopk+oGQKiDQYcg7q/oOvejJ8FZ
qRQwypDwU36cf9eQAfNYCVLT6HdzqlgUcZaa7nf/vHi7LfuOh87WxqKco5JZPFKZ
kSMlks3jWcEFTLiH6yM5w2EdeYZRfLt1s5wkL/QL49io0Z+azy8lbODbAFY0gt0M
hwagbjMLeFSUkbmwZaC9OkWLTc14TCLfQZqSaQIDAQABAoIBAE+ejg0imVFNXKlu
pp8/TpLh77SGRq59lE1Wks2bBlqKp9x699twZFj6aOjEQfZ2+VlIh6zC6rysVwZY
4DeoUYnrGCthwpVfhDjj4CwK3bnKva/OYkXxwiMehSXhaqdINLZjmFIwesYVW/Q0
6CvXxGeIAp349JUFr9NfYiXmZzUor/klkg6VEnrpy0vBFWwnFyHS2w4399AuVJXc
jMvzi9fJyFcxcqKKJNPIUEQqq6hxrCQuZfirMh3nxVOJukCusWsPAP2lzQYbemYz
JNxY3qM7HqykQptjPX/F3rUuI3V1XK1Q0xRPfmUXiC+1soFdGRKajeHSQJTWl3/+
0rMCD0ECgYEA+3c1ns90Kn9B920S7KyjJyhPKmEEm6wCHE1pP+s/bvVX7OKznQ3S
3OFrR7SwnloVN2PJSA8tHIGPjCvWfKg3wAS27f236guDxRlZgtX1DcG6TUQcrCnC
cw9L/e7cn4ExoG0ehPNxMVLjdR5B/sI6d+7TAvgx9SPJSSXrfaK9M00CgYEA3u9x
sh/l49QjB0erD9Et7ZbLXJ4Aiur0lLqP/+F8btlOfCDJskJmwZKmukwk9o+m8LS2
EylVtcVJeq8QrQ8n7f/yCFZ/nZ7+493YApma78uXMatvVAbnaqv0METv5gY/EiTP
7hoRFgORdCb0m6pJANurTLYxTJnuZHP5ugrwFY0CgYAQSMP8KMsJBXysHTAgi311
R7L4t5eozRbF5m1uajmNYe3ztSqUfRSuoRplZloZpxPApoGeXP0631kAZsZZBDu3
/5YpC0khquU5mk6lnl1kKqt53XNN4tZoxRDSvOkkmyUvkmFrkqg93XRFXVRAvysy
IREhHBmAGnUqe34ogKVn8QKBgAE92idA0Dn1m4BV4NkEtDnHhjhs1NnxNw2BAH5P
Vi8T3MEKObVZc1MOqwkMlYQeBrL+fqkaqNSLVb5uLSyZkgJcU4/CU5GgKhFA0gwp
qNg/DQeEyejw5OcOMBz4tVFVpZJHTDUqRgAWYv//m4smZqOvlYOm3B1uGgrLLo/f
sbidAoGBAKkDXurjcUBPWWGvprkGXx5WXIepn1hXIUtfCytwiwG1kixgSP+wwsE/
85klHhvXqLAmDE9VDJwDna62p6uEaGyjyB6lka0hFKzKXQB5YhxoM08va2aXRaVB
9eNlIzlbZItG85c8ZTtlrK74IBy3JTirBB5yJvXV4o0x2kZhEwhU
-----END RSA PRIVATE KEY-----
I don't understand what I am doeing wrong. Is it possible to de/encrypt with these different systems?