Ryan Ofsky
223fc24c4e
Merge bitcoin/bitcoin#31603 : descriptor: check whitespace in keys within fragments
...
21e9d39a37 docs: add release notes for 31603 (brunoerg)
a8b548d75d test: `getdescriptorinfo`/`importdescriptors` with whitespace in pubkeys (brunoerg)
c7afca3d62 test: descriptor: check whitespace into keys (brunoerg)
cb722a3cea descriptor: check whitespace in ParsePubkeyInner (brunoerg)
50856695ef test: fix descriptors in `ismine_tests` (brunoerg)
Pull request description:
Currently, we successfully parse descriptors which contains spaces in the beginning or end of the public/private key within a fragment (e.g. `pk( KEY)`, `pk(KEY )` or `pk( KEY )`). I have noticed that one of the reasons is that the `DecodeBase58` function simply ignore these whitespaces.
This PR changes the `ParsePubkeyInner ` to reject pubkeys that contain a whitespace at the beginning and/or at the end. We will only check the whitespace in some RPCs (e.g. `importdescriptors`), but an already imported descriptor won't be affected by this check, especially because we store descriptors from `ToString`.
For context: https://github.com/brunoerg/bitcoinfuzz/issues/72
ACKs for top commit:
rkrux:
tACK 21e9d39a37
darosior:
re-ACK 21e9d39a37
sipa:
utACK 21e9d39a37
Tree-SHA512: 54f48a89a235517e5cdc29a46dceeb7dabbee93c7616a166288ff3f90131808eb0ece43b0797a11fe827a5f7bd51d65e3e75c16789b0a42020934cabb684cc8f
2025-03-18 08:36:41 -04:00
..
2025-03-17 13:10:10 +08:00
2025-02-12 10:31:43 -05:00
2025-03-13 11:13:13 +00:00
2025-02-07 09:11:27 +01:00
2025-01-09 15:17:02 +01:00
2025-02-13 12:30:15 -05:00
2025-03-17 13:10:10 +08:00
2025-02-19 17:20:57 +01:00
2025-03-13 11:13:13 +00:00
2025-01-16 11:09:56 +00:00
2025-02-21 10:43:01 +01:00
2025-03-05 15:36:56 +00:00
2025-03-13 11:13:13 +00:00
2025-03-11 16:00:46 +00:00
2024-07-08 11:12:01 +02:00
2025-03-16 17:15:04 +01:00
2025-02-21 10:41:27 +01:00
2025-03-18 08:36:41 -04:00
2024-11-04 14:59:46 -05:00
2024-12-10 21:51:48 +01:00
2025-03-18 08:36:41 -04:00
2025-03-17 13:10:10 +08:00
2025-02-21 10:43:01 +01:00
2025-03-18 08:36:41 -04:00
2024-10-25 18:09:36 +01:00
2024-09-14 20:33:32 +03:00
2024-10-28 12:36:19 +00:00
2024-07-30 14:06:58 -04:00
2024-07-30 14:06:58 -04:00
2024-09-20 12:55:22 -04:00
2024-11-11 12:47:53 -03:00
2024-11-11 12:47:53 -03:00
2025-01-09 10:11:46 -05:00
2025-01-03 09:19:53 -05:00
2025-01-14 19:21:37 +01:00
2024-05-30 08:35:18 -04:00
2024-12-19 13:46:31 +01:00
2024-10-19 18:49:53 +02:00
2024-10-19 18:49:53 +02:00
2025-03-13 11:13:13 +00:00
2024-10-28 12:36:19 +00:00
2025-02-13 12:30:15 -05:00
2024-10-28 12:36:19 +00:00
2025-01-15 12:15:40 +01:00
2024-10-28 12:36:19 +00:00
2025-01-15 12:15:40 +01:00
2024-10-28 12:36:19 +00:00
2025-01-15 12:15:40 +01:00
2024-10-28 12:36:19 +00:00
2025-01-16 21:06:21 +00:00
2024-08-29 13:49:57 +02:00
2024-07-08 11:12:01 +02:00
2024-05-16 10:16:08 -05:00
2025-03-13 11:13:13 +00:00
2025-02-13 12:30:15 -05:00
2024-11-14 13:41:02 -05:00
2024-11-14 13:41:02 -05:00
2025-03-06 15:39:58 -06:00
2024-12-03 18:02:37 -05:00
2025-01-14 19:21:37 +01:00
2024-10-28 12:35:49 +00:00
2024-11-11 14:14:39 +00:00
2025-02-20 22:18:51 +00:00
2024-12-04 14:09:05 -05:00
2024-12-02 13:52:34 +01:00
2024-06-07 13:55:23 -04:00
2024-11-26 20:47:08 -05:00
2024-12-05 14:37:47 +00:00
2024-06-07 13:55:23 -04:00
2024-07-04 22:35:29 +02:00
2024-11-30 20:19:08 +01:00
2024-11-30 20:19:08 +01:00
2025-02-21 10:41:27 +01:00
2024-05-16 15:03:13 -04:00
2024-08-13 07:44:31 +02:00
2024-08-29 13:49:57 +02:00
2024-07-24 09:39:35 +02:00
2024-11-04 14:59:46 -05:00
2025-03-04 14:23:18 -05:00
2024-07-08 11:12:01 +02:00
2025-02-13 12:30:15 -05:00
2025-02-13 12:30:15 -05:00
2024-11-04 17:08:21 +01:00
2024-06-26 15:28:26 -04:00
2024-06-12 16:19:50 -03:00
2025-03-13 11:13:13 +00:00
2025-01-16 21:06:21 +00:00
2024-10-27 15:38:54 +01:00
2024-08-04 08:52:22 +02:00
2024-08-04 08:51:36 +02:00
2024-10-01 11:31:39 +02:00
2024-10-01 11:31:39 +02:00
2024-11-04 14:19:40 -05:00
2024-10-29 11:58:51 -04:00
2024-11-04 18:46:40 +01:00
2024-07-08 11:12:01 +02:00
2024-05-16 10:16:08 -05:00
2025-02-21 10:41:27 +01:00
2025-03-13 11:13:13 +00:00
2024-10-01 21:55:18 -04:00
2024-05-20 16:48:19 +00:00
2024-07-08 11:12:01 +02:00
2025-02-14 15:10:09 -08:00
2025-02-13 12:38:55 +01:00
2025-01-13 21:53:56 +01:00
2025-01-13 21:53:56 +01:00
2024-10-10 12:22:12 +02:00
2025-02-21 10:41:27 +01:00
2024-05-03 14:20:44 -03:00
2024-05-03 14:20:44 -03:00
2025-01-22 11:29:05 +01:00
2025-01-22 11:29:05 +01:00
2024-09-11 17:41:26 +02:00
2024-10-26 23:44:15 +02:00
2024-10-26 23:44:15 +02:00
2024-05-16 10:16:08 -05:00
2024-07-11 19:08:46 +01:00
2024-12-16 10:39:28 +01:00
2024-08-28 19:09:51 +02:00
2025-02-19 10:28:13 -05:00
2025-02-21 10:43:41 +01:00
2025-02-21 10:43:41 +01:00
2025-01-22 15:01:23 -05:00
2025-02-21 10:43:41 +01:00
2024-08-29 13:49:57 +02:00
2024-12-19 13:46:52 +01:00
2024-11-04 18:46:40 +01:00
2024-12-19 14:39:55 +01:00
2025-02-21 10:43:01 +01:00
2024-07-08 11:12:01 +02:00
2024-07-08 11:12:01 +02:00
2025-01-15 12:16:08 +01:00
2025-02-13 12:30:15 -05:00
2024-11-14 13:41:02 -05:00
2024-09-18 20:03:47 +02:00
2025-01-15 15:44:55 +01:00
2024-12-31 00:04:20 -03:00
2024-12-31 00:04:20 -03:00
2025-02-07 13:55:57 -05:00
2025-02-07 13:55:57 -05:00
2025-01-29 18:05:16 -05:00
2025-01-29 18:05:16 -05:00
2024-07-24 09:15:34 +02:00
2025-01-03 09:19:53 -05:00
2025-03-13 11:13:13 +00:00
2025-03-11 16:00:54 +00:00
2024-10-08 15:25:47 +00:00
2024-07-25 11:01:22 +01:00
2024-07-08 11:12:01 +02:00