encryptionsdk.exception.Исключение BadCiphertextException: недопустимый тип зашифрованного текста

#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).