3 * A packing mode implementation for null-byte padding
7 * @category PHPCryptLib
9 * @subpackage PackingMode
10 * @author Anthony Ferrara <ircmaxell@ircmaxell.com>
11 * @copyright 2011 The Authors
12 * @license http://www.opensource.org/licenses/mit-license.html MIT License
13 * @version Build @@version@@
16 namespace CryptLib\Encryption\PackingMode
;
19 * A packing mode implementation for null-byte padding
21 * @category PHPCryptLib
23 * @subpackage PackingMode
24 * @author Anthony Ferrara <ircmaxell@ircmaxell.com>
26 class Zeros
implements \CryptLib\Encryption\PackingMode
{
29 * Pad the string to the specified size
31 * @param string $string The string to pad
32 * @param int $blockSize The size to pad to
34 * @return string The padded string
36 public function pad($string, $blockSize = 32) {
37 $pad = $blockSize - (strlen($string) %
$blockSize);
38 if ($pad == $blockSize) {
41 return $string . str_repeat(chr(0), $pad);
45 * Strip the padding from the supplied string
47 * @param string $string The string to trim
49 * @return string The unpadded string
51 public function strip($string) {
52 return rtrim($string, chr(0));