Page 1 of 1

Kein konfigurierter Schlüsselring konnte den Datenschlüssel entschlüsseln. Die Liste der aufgetretenen Ausnahmen ist übe

Posted: 13 Jan 2025, 13:50
by Guest
Ich erhalte eine Fehlermeldung, wenn ich versuche, die von AWS KMS verschlüsselten Daten zu entschlüsseln.
Die Daten können problemlos verschlüsselt werden, aber während der Entschlüsselung wird die Fehlermeldung angezeigt.
Fehler: Kein konfigurierter Schlüsselring konnte den Datenschlüssel entschlüsseln. Die Liste der aufgetretenen Ausnahmen ist über list verfügbar.
Bitte finden Sie unten den Java-Code

Code: Select all

 keyArn = "arn of ny aws kms key";
plaintext = "Text to encrypt";

final AwsCrypto crypto =  AwsCrypto.builder()
.withCommitmentPolicy(CommitmentPolicy.RequireEncryptRequireDecrypt)
.build();    System.out.println("MaterialProvidersConfig.builder().build():"+MaterialProvidersConfig.builder().build());
final MaterialProviders materialProviders = MaterialProviders.builder()
.MaterialProvidersConfig(MaterialProvidersConfig.builder().build())
.build();
final CreateAwsKmsMultiKeyringInput keyringInput =
CreateAwsKmsMultiKeyringInput.builder().generator(keyArn).build();
final IKeyring kmsKeyring = materialProviders.CreateAwsKmsMultiKeyring(keyringInput);

// Encrypt the data
final CryptoResult encryptResult = crypto.encryptData(kmsKeyring, plaintext.getBytes(StandardCharsets.UTF_8));
final byte[] ciphertext = encryptResult.getResult();
System.out.println("Ciphertext: " + Arrays.toString(ciphertext));
String base64Ciphertext = Base64.getEncoder().encodeToString(ciphertext);
System.out.println(base64Ciphertext);

// Decrypt the data
final CryptoResult decryptResult =
crypto.decryptData(
kmsKeyring,
ciphertext
);

assert Arrays.equals(decryptResult.getResult(), plaintext.getBytes(StandardCharsets.UTF_8));

// The data is correct, so return it.
System.out.println("Decrypted: " + new String(decryptResult.getResult(), StandardCharsets.UTF_8));
Vollständige Fehlermeldung:

Code: Select all

Exception in thread "main" software.amazon.cryptography.materialproviders.model.CollectionOfErrors: No Configured Keyring was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`.
at software.amazon.cryptography.materialproviders.model.CollectionOfErrors$BuilderImpl.build(CollectionOfErrors.java:136)
at software.amazon.cryptography.materialproviders.ToNative.Error(ToNative.java:129)
at software.amazon.cryptography.materialproviders.ToNative.Error(ToNative.java:232)
at software.amazon.cryptography.materialproviders.CryptographicMaterialsManager.DecryptMaterials(CryptographicMaterialsManager.java:48)
at com.amazonaws.encryptionsdk.CMMHandler.decryptMaterials(CMMHandler.java:100)
at com.amazonaws.encryptionsdk.internal.DecryptionHandler.readHeaderFields(DecryptionHandler.java:796)
at com.amazonaws.encryptionsdk.internal.DecryptionHandler.(DecryptionHandler.java:143)
at com.amazonaws.encryptionsdk.internal.DecryptionHandler.create(DecryptionHandler.java:465)
at com.amazonaws.encryptionsdk.AwsCrypto.decryptData(AwsCrypto.java:822)
at com.amazonaws.encryptionsdk.AwsCrypto.decryptData(AwsCrypto.java:768)
at com.amazonaws.encryptionsdk.AwsCrypto.decryptData(AwsCrypto.java:759)
at com.amazonaws.encryptionsdk.AwsCrypto.decryptData(AwsCrypto.java:734)
at com.amazonaws.encryptionsdk.keyrings.StringExample.main(StringExample.java:67)