Получение ошибки «данные слишком велики для размера ключа» с Crypto Node.js
Я получаю ошибку"Error: error:0406C06E:rsa routines:RSA_padding_add_PKCS1_type_1:data too large for key size"
когда я делаю:
var crypto = require('crypto');
var fs = require('fs');
var first_keys = {
public_key: fs.readFileSync('tests/public.key'),
private_key: fs.readFileSync('tests/private.key')
}
var first_result = crypto.privateEncrypt({
key: first_keys.private_key
}, new Buffer("Hello World!"));
var second_result = crypto.privateEncrypt({
key: first_keys.private_key
}, first_result);
var second_plaintext = crypto.publicDecrypt({
key: first_keys.public_key
}, second_result);
var first_plaintext = crypto.publicDecrypt({
key: first_keys.public_key
}, second_plaintext);
if(first_plaintext == new Buffer("Hello World!"))
console.log("Hello World!");
Я знаю, что это странно, но я создаю процесс, который требует, чтобы это работало в течение n итераций (частное шифрование для n ключей и открытое дешифрование для n ключей). Я использую один ключ для тестирования.