#amazon-web-services #amazon-kms
#amazon-web-services #amazon-kms
Вопрос:
Я использую AWS encryption SDK для шифрования и дешифрования файлов. Я получаю сообщение об ошибке
encryptionsdk.exception.Исключение BadCiphertextException: недопустимый тип зашифрованного текста
в следующем сценарии.
Я шифрую свой файл с помощью command:
aws kms encrypt --key-id keyId --region us-east-1 --plaintext file://text.txt --query CipherTextBlob --output text | base64 --decode >file.dat.encrypted.
Я мой код, у меня есть:
AwsCrypto awsCrypto = new AwsCrypto();
InputStream inputStream = new FileInputStream("inputfile");
final CryptoInputStream decryptingStream = awsCrypto.createDecryptingStream(provider,inputStream);
OutputStream outputStream = new FileOutputStream("outputFile");
IOUtils.copy(decryptingStream,outputStream)
Не мог бы кто-нибудь указать, чего мне не хватает в этом? Я пытаюсь разобраться в проблеме, но не могу. Был бы признателен за любую помощь по этому поводу.
Ответ №1:
Насколько я понимаю из AWS Encryption SDK, он позволяет вам использовать AWS KMS более общим способом, чем если бы вы реализовали примитивы криптографии самостоятельно.
Из того, что я вижу, вы пытаетесь подключить Encryption SDK к KMS CLI, и эти вещи несовместимы.
Были ли ваши зашифрованные данные сгенерированы путем вызова примитива Encrypt в KMS (SDK или инструмент командной строки)? Если это так, вам следует попытаться использовать примитив KMS Client Decrypt для его обработки предпочтительным способом (CLI или SDK).