Я использую AWS KMS Encrypt API для шифрования текста. API-интерфейс Encrypt возвращает объект EncryptResponse с атрибутом MemoryStream, который является зашифрованным значением.
Я использую SDK AWS. Net и пытаюсь сохранить это значение в DynamoDB.
Как я могу сохранить это значение? Я попытался преобразовать это в строку, но в то время как преобразование, сохраняющее DynamoDB и поиск, вернуло мне объект MemoryStream, результирующий зашифрованный текст из воссозданного объекта MemoryStream не может быть расшифрован с ошибкой «Неверный зашифрованный текст».
Вот код, используемый для сохранения и извлечения строки
// convert stream to string
StreamReader reader = new StreamReader(ciphertextBlob);
string text = reader.ReadToEnd();
// convert string to stream
byte[] byteArray = Encoding.UTF8.GetBytes(text);
MemoryStream stream = new MemoryStream(byteArray);
При извлечении потока было замечено, что зашифрованный текст был другим для объекта перед сохранением и во время извлечения.