Я генерирую ответ SAML, и его необходимо зашифровать и подписать открытым и закрытым ключами. Я сгенерировал private.pem
и public.pem
в терминале с командами
openssl genrsa -out private.pem 2048
openssl rsa -in ./private.pem -pubout -out public.pem
Затем в nodeJS.
encrypt: function(message) {
return new Promise(function (resolve, reject) {
var publicKey = require("fs").readFileSync(__dirname + "/public.pem", "utf8");
var encrypted = require("crypto").publicEncrypt(publicKey, new Buffer(message));
resolve(encrypted.toString("base64"));
});
},
Как только я вызываю сообщение encrypt(xml)
, я получаю следующую ошибку
{
library: 'rsa routines',
function: 'RSA_padding_add_PKCS1_OAEP_mgf1',
reason: 'data too large for key size',
code: 'ERR_OSSL_RSA_DATA_TOO_LARGE_FOR_KEY_SIZE'
}
Цель :
Я долженподпишите сообщение согласно демоверсии здесь samltools.com ( Mode: SignMessage ), мое сообщение SAML выглядит как this . ( см. Раздел Ответ SAML ).
- Подпишите сообщение
- Base64Введите код сообщения