From 1636c7e2f01b69311f9155559e361d617257372b Mon Sep 17 00:00:00 2001 From: Craig Raw Date: Sun, 2 Aug 2026 15:45:11 +0200 Subject: [PATCH] remove ineffective eckey clear --- drongo | 2 +- src/main/java/com/sparrowwallet/sparrow/AppController.java | 3 --- src/main/java/com/sparrowwallet/sparrow/AppServices.java | 1 - .../com/sparrowwallet/sparrow/control/MessageSignDialog.java | 2 -- src/main/java/com/sparrowwallet/sparrow/io/Storage.java | 2 +- src/main/java/com/sparrowwallet/sparrow/io/WalletAndKey.java | 3 --- .../sparrowwallet/sparrow/terminal/MasterActionListBox.java | 1 - .../sparrowwallet/sparrow/terminal/wallet/NewWalletDialog.java | 1 - .../sparrowwallet/sparrow/terminal/wallet/SettingsDialog.java | 2 -- .../sparrowwallet/sparrow/terminal/wallet/WalletDialog.java | 1 - .../com/sparrowwallet/sparrow/wallet/SettingsController.java | 3 --- 11 files changed, 2 insertions(+), 19 deletions(-) diff --git a/drongo b/drongo index fa1bb4ee..51ebbc51 160000 --- a/drongo +++ b/drongo @@ -1 +1 @@ -Subproject commit fa1bb4eec2a86e358c796a3c2872a2eaecf06260 +Subproject commit 51ebbc515a90abfdf4a38dee4c755de8a8933ea6 diff --git a/src/main/java/com/sparrowwallet/sparrow/AppController.java b/src/main/java/com/sparrowwallet/sparrow/AppController.java index 4ff89e41..2ebcedf0 100644 --- a/src/main/java/com/sparrowwallet/sparrow/AppController.java +++ b/src/main/java/com/sparrowwallet/sparrow/AppController.java @@ -1431,7 +1431,6 @@ public class AppController implements Initializable { } catch(IOException | StorageException | MnemonicException e) { log.error("Error saving imported wallet", e); } finally { - encryptionFullKey.clear(); if(key != null) { key.clear(); } @@ -2423,13 +2422,11 @@ public class AppController implements Initializable { keyDerivationService = new Storage.KeyDerivationService(storage, password.get(), true); keyDerivationService.setOnSucceeded(workerStateEvent -> { EventManager.get().post(new StorageEvent(selectedWalletForm.getWalletId(), TimedEvent.Action.END, "Done")); - ECKey encryptionFullKey = keyDerivationService.getValue(); try { tabs.getTabs().remove(tabs.getSelectionModel().getSelectedItem()); deleteStorage(storage, true); } finally { - encryptionFullKey.clear(); keyDerivationService = null; } }); diff --git a/src/main/java/com/sparrowwallet/sparrow/AppServices.java b/src/main/java/com/sparrowwallet/sparrow/AppServices.java index 71d078f8..aa83a4a4 100644 --- a/src/main/java/com/sparrowwallet/sparrow/AppServices.java +++ b/src/main/java/com/sparrowwallet/sparrow/AppServices.java @@ -1146,7 +1146,6 @@ public class AppServices { showErrorDialog("Error authenticating", "Failed to authenticate.\n\n" + e.getMessage()); } finally { key.clear(); - encryptionFullKey.clear(); password.get().clear(); } }); diff --git a/src/main/java/com/sparrowwallet/sparrow/control/MessageSignDialog.java b/src/main/java/com/sparrowwallet/sparrow/control/MessageSignDialog.java index 42e0f3d3..4732f9f5 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/MessageSignDialog.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/MessageSignDialog.java @@ -392,7 +392,6 @@ public class MessageSignDialog extends Dialog { if(decryptedWallet.getPolicyType() == PolicyType.SINGLE_SP) { ECKey spendPrivKey = keystore.getSpendPrivateKey(Collections.emptyMap()); signatureText = Bip322.signMessageBip322Sp(walletNode.getAddress(), message.getText().trim(), spendPrivKey, walletNode.getSilentPaymentTweak()); - spendPrivKey.clear(); } else { ECKey privKey = keystore.getKey(walletNode); if(isBip322()) { @@ -402,7 +401,6 @@ public class MessageSignDialog extends Dialog { ScriptType scriptType = isElectrumSignatureFormat() ? ScriptType.P2PKH : decryptedWallet.getScriptType(); signatureText = privKey.signMessage(message.getText().trim(), scriptType); } - privKey.clear(); } signature.clear(); signature.appendText(signatureText); diff --git a/src/main/java/com/sparrowwallet/sparrow/io/Storage.java b/src/main/java/com/sparrowwallet/sparrow/io/Storage.java index ea933579..e5ee3f14 100644 --- a/src/main/java/com/sparrowwallet/sparrow/io/Storage.java +++ b/src/main/java/com/sparrowwallet/sparrow/io/Storage.java @@ -201,7 +201,7 @@ public class Storage { keystore.setExtendedPublicKey(derivedKeystore.getExtendedPublicKey()); keystore.setBip47ExtendedPrivateKey(derivedKeystore.getBip47ExtendedPrivateKey()); keystore.setSilentPaymentScanAddress(derivedKeystore.getSilentPaymentScanAddress()); - copyKeystore.getMasterPrivateKey().clear(); + copyKeystore.getMasterPrivateExtendedKey().clear(); } } } diff --git a/src/main/java/com/sparrowwallet/sparrow/io/WalletAndKey.java b/src/main/java/com/sparrowwallet/sparrow/io/WalletAndKey.java index b18d6e6c..6768eaa4 100644 --- a/src/main/java/com/sparrowwallet/sparrow/io/WalletAndKey.java +++ b/src/main/java/com/sparrowwallet/sparrow/io/WalletAndKey.java @@ -35,9 +35,6 @@ public class WalletAndKey implements Comparable { } public void clear() { - if(encryptionKey != null) { - encryptionKey.clear(); - } if(key != null) { key.clear(); } diff --git a/src/main/java/com/sparrowwallet/sparrow/terminal/MasterActionListBox.java b/src/main/java/com/sparrowwallet/sparrow/terminal/MasterActionListBox.java index 0ee1b9da..5a9c7caa 100644 --- a/src/main/java/com/sparrowwallet/sparrow/terminal/MasterActionListBox.java +++ b/src/main/java/com/sparrowwallet/sparrow/terminal/MasterActionListBox.java @@ -108,7 +108,6 @@ public class MasterActionListBox extends ActionListBox { Storage.KeyDerivationService keyDerivationService = new Storage.KeyDerivationService(storage, new SecureString(password), true); keyDerivationService.setOnSucceeded(workerStateEvent -> { EventManager.get().post(new StorageEvent(walletId, TimedEvent.Action.END, "Done")); - keyDerivationService.getValue().clear(); SparrowTerminal.get().unlockWallet(storage); SparrowTerminal.get().getGuiThread().invokeLater(() -> LoadWallet.getOpeningDialog(storage, wallet).showDialog(SparrowTerminal.get().getGui())); }); diff --git a/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/NewWalletDialog.java b/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/NewWalletDialog.java index 945efe1e..b02c21c4 100644 --- a/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/NewWalletDialog.java +++ b/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/NewWalletDialog.java @@ -172,7 +172,6 @@ public abstract class NewWalletDialog extends DialogWindow { } catch(IOException | StorageException | MnemonicException e) { log.error("Error saving imported wallet", e); } finally { - encryptionFullKey.clear(); if(key != null) { key.clear(); } diff --git a/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/SettingsDialog.java b/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/SettingsDialog.java index ca879b96..6bc865fd 100644 --- a/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/SettingsDialog.java +++ b/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/SettingsDialog.java @@ -148,7 +148,6 @@ public class SettingsDialog extends WalletDialog { copy.decrypt(key); showSuccessDialog("Wallet Seed", copy.getKeystores().get(0).getSeed().getMnemonicString().asString()); } finally { - encryptionFullKey.clear(); if(key != null) { key.clear(); } @@ -247,7 +246,6 @@ public class SettingsDialog extends WalletDialog { log.error("Error saving wallet", e); AppServices.showErrorDialog("Error saving wallet", e.getMessage()); } finally { - encryptionFullKey.clear(); if(key != null) { key.clear(); } diff --git a/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/WalletDialog.java b/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/WalletDialog.java index 517a4665..7ef4b7fc 100644 --- a/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/WalletDialog.java +++ b/src/main/java/com/sparrowwallet/sparrow/terminal/wallet/WalletDialog.java @@ -83,7 +83,6 @@ public class WalletDialog extends DialogWindow { EventManager.get().post(new StorageEvent(walletId, TimedEvent.Action.END, "Done")); ECKey encryptionFullKey = keyDerivationService.getValue(); Key key = new Key(encryptionFullKey.getPrivKeyBytes(), getWalletForm().getStorage().getKeyDeriver().getSalt(), EncryptionType.Deriver.ARGON2); - encryptionFullKey.clear(); masterWallet.decrypt(key); addAndEncryptAccount(masterWallet, standardAccount, key); if(postAddition != null) { diff --git a/src/main/java/com/sparrowwallet/sparrow/wallet/SettingsController.java b/src/main/java/com/sparrowwallet/sparrow/wallet/SettingsController.java index bc95ee9f..bbdec7f0 100644 --- a/src/main/java/com/sparrowwallet/sparrow/wallet/SettingsController.java +++ b/src/main/java/com/sparrowwallet/sparrow/wallet/SettingsController.java @@ -573,7 +573,6 @@ public class SettingsController extends WalletFormController implements Initiali log.error("Error restoring public keys from seed", e); } finally { key.clear(); - encryptionFullKey.clear(); password.get().clear(); } }); @@ -680,7 +679,6 @@ public class SettingsController extends WalletFormController implements Initiali EventManager.get().post(new StorageEvent(walletId, TimedEvent.Action.END, "Done")); ECKey encryptionFullKey = keyDerivationService.getValue(); Key key = new Key(encryptionFullKey.getPrivKeyBytes(), walletForm.getStorage().getKeyDeriver().getSalt(), EncryptionType.Deriver.ARGON2); - encryptionFullKey.clear(); masterWallet.decrypt(key); if(masterWallet.getKeystores().stream().anyMatch(ks -> ks.getSource() != KeystoreSource.SW_SEED)) { @@ -1047,7 +1045,6 @@ public class SettingsController extends WalletFormController implements Initiali revert.setDisable(false); apply.setDisable(false); } finally { - encryptionFullKey.clear(); if(key != null) { key.clear(); }