From c9141c24e1b4a426badb6bdb7dc469a44fe29d6f Mon Sep 17 00:00:00 2001 From: Paragon Initiative Enterprises <security@paragonie.com> Date: Fri, 10 Jun 2022 03:00:16 -0400 Subject: [PATCH] Fix canonical padding. --- src/Base64.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Base64.php b/src/Base64.php index dd16938..6cf44bf 100644 --- a/src/Base64.php +++ b/src/Base64.php @@ -189,6 +189,9 @@ abstract class Base64 implements EncoderInterface ((($c1 << 4) | ($c2 >> 2)) & 0xff) ); $err |= ($c0 | $c1 | $c2) >> 8; + if ($strictPadding) { + $err |= ($c2 << 6) & 0xff; + } } elseif ($i + 1 < $srcLen) { $c1 = static::decode6Bits($chunk[2]); $dest .= \pack( @@ -196,6 +199,9 @@ abstract class Base64 implements EncoderInterface ((($c0 << 2) | ($c1 >> 4)) & 0xff) ); $err |= ($c0 | $c1) >> 8; + if ($strictPadding) { + $err |= ($c1 << 4) & 0xff; + } } elseif ($strictPadding) { $err |= 1; } -- GitLab