1
0
mirror of https://github.com/ARMmbed/mbedtls.git synced 2025-07-16 12:31:18 +08:00
Gilles Peskine 2b3d6a8f28 mbedtls_base64_decode: insist on correct padding
Correct base64 input (excluding ignored characters such as spaces) consists
of exactly 4*k, 4*k-1 or 4*k-2 digits, followed by 0, 1 or 2 equal signs
respectively.

Previously, any number of trailing equal signs up to 2 was accepted, but if
there fewer than 4*k digits-or-equals, the last partial block was counted in
`*olen` in buffer-too-small mode, but was not output despite returning 0.

Now `mbedtls_base64_decode()` insists on correct padding. This is
backward-compatible since the only plausible useful inputs that used to be
accepted were inputs with 4*k-1 or 4*k-2 digits and no trailing equal signs,
and those led to invalid (truncated) output. Furthermore the function now
always reports the exact output size in buffer-too-small mode.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-06-09 23:01:21 +02:00
..
2025-03-23 13:09:30 +00:00
2024-02-06 15:00:58 +00:00
2024-01-30 16:28:09 +01:00
2023-11-03 12:21:36 +00:00
2024-09-02 10:42:46 +02:00
2024-09-03 10:10:18 +02:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2025-03-18 17:11:54 +00:00
2023-11-03 12:21:36 +00:00
2023-12-01 13:53:45 +00:00
2024-01-17 11:06:31 +00:00
2023-11-03 12:21:36 +00:00
2023-11-21 17:09:46 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-03-13 09:55:33 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2025-03-23 13:09:30 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:21:36 +00:00
2025-06-04 10:06:26 +01:00
2024-03-11 09:48:40 +01:00
2024-03-11 09:48:40 +01:00
2024-10-14 10:37:00 +02:00
2024-07-11 17:31:22 +03:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-08-06 13:13:05 +02:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-21 17:09:46 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2025-04-16 11:20:50 +02:00
2023-11-03 12:21:36 +00:00
2024-11-14 14:19:40 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00