What changed, and why it matters
This commit only updates test data and documentation for the Bitcoin app's message-signing feature. It documents how the device displays messages (full text versus a hash) and adds matching test expectations. There is no code change and no security fix or vulnerability present in the diff.
No action required; this is a test-vector and documentation update only.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit modifies test_vectors/README.md and test_vectors/sign_message.toml. It removes the message_hex option, clarifies that message is UTF-8 text, and adds a displayed_as field to each test case indicating whether the device UI shows the message text or its SHA-256 hash. No application source code is changed.
Changed components
test_vectors/sign_message.tomltest_vectors/README.mdInspect captured patch +11 / −1
diff --git a/test_vectors/README.md b/test_vectors/README.md
index 48d1ea1..61bc7bf 100644
--- a/test_vectors/README.md
+++ b/test_vectors/README.md
@@ -84,9 +84,13 @@ on navigation, not on the request, and stay as framework-specific code.
`INCORRECT_DATA`).
### `sign_message.toml`
-- `message` (string) *or* `message_hex` (hex string) for raw/binary input.
+- `message` (string): UTF-8 text to sign.
- `path` (string).
- `expected_signature` (base64 string) on success — *or* `error`.
+- `displayed_as` (string, optional): how the device shows the message on the
+ confirmation screen — `"message"` (the text itself, for printable messages up to
+ 10 lines) or `"hash"` (the uppercase hex of `sha256(message)`, for non-printable or
+ over-long messages). Present only on success cases.
### `register_wallet.toml`
- wallet policy block (`descriptor_template`, `keys_info`, `wallet_name`).
diff --git a/test_vectors/sign_message.toml b/test_vectors/sign_message.toml
index 9a36ba2..f49f7a1 100644
--- a/test_vectors/sign_message.toml
+++ b/test_vectors/sign_message.toml
@@ -10,36 +10,42 @@ name = "times_headline"
message = "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks."
path = "m/44'/1'/0'/0/0"
expected_signature = "IOR4YRVlmJGMx+H7PgQvHzWAF0HAgrUggQeRdnoWKpypfaAberpvF+XbOCM5Cd/ljogNyU3w2OIL8eYCyZ6Ru2k="
+displayed_as = "message"
[[case]]
name = "times_headline_with_eol"
message = "\nThe Times 03/Jan/2009 Chancellor\non brink of second bailout for banks."
path = "m/44'/1'/0'/0/0"
expected_signature = "ILMgIpFxqZwrB5bgR/seis2N48jS7pmHViKcRYisIPBdDjhAzGDGP3HiLPcrYMlEOXJvdJ9/Mud/+fslM2KtKaM="
+displayed_as = "message"
[[case]]
name = "hello_world"
message = "Hello world!"
path = "m/84'/1'/0'/0/0"
expected_signature = "IEOK4+JMK7FToR7XMzFCoAYh1nud1IKm9Wq3vXLSVk/lBay8rHCRp9bP6riyR5NDqXYyYf7cXgMQTHNz3SemwZI="
+displayed_as = "message"
[[case]]
name = "long_multileaf"
message = "The root problem with conventional currency is all the trust that's required to make it work. The central bank must be trusted not to debase the currency, but the history of fiat currencies is full of breaches of that trust. Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve. We have to trust them with our privacy, trust them not to let identity thieves drain our accounts. Their massive overhead costs make micropayments impossible."
path = "m/84'/1'/0'/0/8"
expected_signature = "H4frM6TYm5ty1MAf9o/Zz9Qiy3VEldAYFY91SJ/5nYMAZY1UUB97fiRjKW8mJit2+V4OCa1YCqjDqyFnD9Fw75k="
+displayed_as = "message"
[[case]]
name = "non_ascii_carriage_return"
message = "Hello\rworld!"
path = "m/84'/1'/0'/0/8"
expected_signature = "ILXQPJapQ/OEy9f/ggRouI6HuAleQveIOBphNUCLlWNVQAml2Yx+885tsU0DKIxggsVq53o/fQRlosTPTQE/keE="
+displayed_as = "hash"
[[case]]
name = "too_long_to_display"
message = "The root problem with conventional currency is all the trust that's required to make it work. The central bank must be trusted not to debase the currency, but the history of fiat currencies is full of breaches of that trust. Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve. We have to trust them with our privacy, trust them not to let identity thieves drain our accounts. Their massive overhead costs make micropayments impossible. The root problem with conventional currency is all the trust that's required to make it work. The central bank must be trusted not to debase the currency, but the history of fiat currencies is full of breaches of that trust. Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve. We have to trust them with our privacy, trust them not to let identity thieves drain our accounts. Their massive overhead costs make micropayments impossible. The root problem with conventional currency is all the trust that's required to make it work. The central bank must be trusted not to debase the currency, but the history of fiat currencies is full of breaches of that trust. Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve. We have to trust them with our privacy, trust them not to let identity thieves drain our accounts. Their massive overhead costs make micropayments impossible."
path = "m/84'/1'/0'/0/8"
expected_signature = "IDAl9RThAyunmYuol9DaDs/CScUpiol3FDSjIjyK9y0tc/x1HWrbT/ufdkPFY1Bmi+L9hc3ip1me2RmufprVuNk="
+displayed_as = "hash"
# Path with 11 derivation steps exceeds the maximum (10): WRONG_DATA_LENGTH.
[[case]]
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.