What changed, and why it matters
This commit adds support for two Solana (SOL) public key derivation paths when connecting the Keystone hardware wallet to compatible software wallets via the 'Keystone Connect' feature. It is a routine feature addition and does not contain any obvious security fix or vulnerability.
No security action required. Treat as normal feature commit. If reviewing for completeness, verify that the new Solana xpub types are correctly defined elsewhere and that downstream wallet consumers handle them safely.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The change extends the chainPaths arrays in GuiGetKeystoneConnectWalletDataSlip39() and GuiGetKeystoneConnectWalletDataBip39() to include XPUB_TYPE_SOL_BIP44_0 and XPUB_TYPE_SOL_BIP44_CHANGE_0. The images_hash.txt diff shows no actual content change (same hash value, only a newline difference). There is no evidence of memory corruption, cryptographic mishandling, or access control change.
Changed components
src/ui/gui_wallet/multi/web3/gui_wallet.cKeystone Connect wallet connection data generation for SLIP39 and BIP39 seedsInspect captured patch +5 / −1
diff --git a/src/ui/gui_assets/images_hash.txt b/src/ui/gui_assets/images_hash.txt
index e80f2c9..5415d65 100644
--- a/src/ui/gui_assets/images_hash.txt
+++ b/src/ui/gui_assets/images_hash.txt
@@ -1 +1 @@
-3515e196a2126c3478f07f2289025439
\ No newline at end of file
+3515e196a2126c3478f07f2289025439
diff --git a/src/ui/gui_wallet/multi/web3/gui_wallet.c b/src/ui/gui_wallet/multi/web3/gui_wallet.c
index dc9e533..ce47335 100644
--- a/src/ui/gui_wallet/multi/web3/gui_wallet.c
+++ b/src/ui/gui_wallet/multi/web3/gui_wallet.c
@@ -521,6 +521,8 @@ UREncodeResult *GuiGetKeystoneConnectWalletDataSlip39(void)
{.path = GetXPubPath(XPUB_TYPE_LTC), .chainType = XPUB_TYPE_LTC},
{.path = GetXPubPath(XPUB_TYPE_LTC_NATIVE_SEGWIT), .chainType = XPUB_TYPE_LTC_NATIVE_SEGWIT},
{.path = GetXPubPath(XPUB_TYPE_ADA_0), .chainType = XPUB_TYPE_ADA_0},
+ {.path = GetXPubPath(XPUB_TYPE_SOL_BIP44_0), .chainType = XPUB_TYPE_SOL_BIP44_0},
+ {.path = GetXPubPath(XPUB_TYPE_SOL_BIP44_CHANGE_0), .chainType = XPUB_TYPE_SOL_BIP44_CHANGE_0},
};
ExtendedPublicKey keys[NUMBER_OF_ARRAYS(chainPaths)];
uint8_t mfp[4] = {0};
@@ -552,6 +554,8 @@ UREncodeResult *GuiGetKeystoneConnectWalletDataBip39(void)
{.path = GetXPubPath(XPUB_TYPE_LTC_NATIVE_SEGWIT), .chainType = XPUB_TYPE_LTC_NATIVE_SEGWIT},
{.path = GetXPubPath(XPUB_TYPE_ZEC_TRANSPARENT_LEGACY), .chainType = XPUB_TYPE_ZEC_TRANSPARENT_LEGACY},
{.path = GetXPubPath(XPUB_TYPE_ADA_0), .chainType = XPUB_TYPE_ADA_0},
+ {.path = GetXPubPath(XPUB_TYPE_SOL_BIP44_0), .chainType = XPUB_TYPE_SOL_BIP44_0},
+ {.path = GetXPubPath(XPUB_TYPE_SOL_BIP44_CHANGE_0), .chainType = XPUB_TYPE_SOL_BIP44_CHANGE_0},
};
ExtendedPublicKey keys[NUMBER_OF_ARRAYS(chainPaths)];
uint8_t mfp[4] = {0};
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.