Мы пытаемся зашифровать и расшифровать, используя асимметричный c ключ в AWS KMS. Конфигурация ключа следующая:
В NodeJS мы используем ключ publi c для шифрования через crypto.publicEncrypt :
const encryptRSAPayload = (buffer, publicKey) => {
const encryptedBuffer = crypto.publicEncrypt(
{
key: publicKey,
oaepHash: 'sha256',
padding: crypto.constants.RSA_PKCS1_OAEP_PADDING,
},
buffer
);
return encryptedBuffer;
};
И мы используем такую функцию (ключ publi c читается из локального файла во время минимального воспроизведения):
const plainText = '12345678910';
const encrypted = await encryptRSAPayload(Buffer.from(plainText), publicKey);
Теперь у четырех разработчиков есть запустил тот же самый код (заархивированный, с publi c key et c), это происходит:
ПРИМЕЧАНИЕ. Все разработчики используют новейшую систему OSX.
Двое из нас могут использовать AWS для дешифрования всего, что мы производим с помощью функции шифрования, а двое других не могут (из-за ошибки IvalidCiphertext: null) из AWS.
Зашифрованная строка base64 с одной из машин, которая не может зашифровать -> расшифровать, не может быть расшифрована на любой другой машине.
Зашифрованная строка base64 с одного из машины, которые могут зашифровать -> дешифровать, могут быть расшифрованы в aws с любой машины.
К настоящему времени ive потратила на это два дня и немного не знала, что делать. Есть идеи?