Commit | Line | Data |
---|---|---|
14d4f286 S |
1 | <?php |
2 | /** | |
3 | * A packing mode implementation for null-byte padding | |
4 | * | |
5 | * PHP version 5.3 | |
6 | * | |
7 | * @category PHPCryptLib | |
8 | * @package Encryption | |
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@@ | |
14 | */ | |
15 | ||
16 | namespace CryptLib\Encryption\PackingMode; | |
17 | ||
18 | /** | |
19 | * A packing mode implementation for null-byte padding | |
20 | * | |
21 | * @category PHPCryptLib | |
22 | * @package Encryption | |
23 | * @subpackage PackingMode | |
24 | * @author Anthony Ferrara <ircmaxell@ircmaxell.com> | |
25 | */ | |
26 | class Zeros implements \CryptLib\Encryption\PackingMode { | |
27 | ||
28 | /** | |
29 | * Pad the string to the specified size | |
30 | * | |
31 | * @param string $string The string to pad | |
32 | * @param int $blockSize The size to pad to | |
33 | * | |
34 | * @return string The padded string | |
35 | */ | |
36 | public function pad($string, $blockSize = 32) { | |
37 | $pad = $blockSize - (strlen($string) % $blockSize); | |
38 | if ($pad == $blockSize) { | |
39 | return $string; | |
40 | } | |
41 | return $string . str_repeat(chr(0), $pad); | |
42 | } | |
43 | ||
44 | /** | |
45 | * Strip the padding from the supplied string | |
46 | * | |
47 | * @param string $string The string to trim | |
48 | * | |
49 | * @return string The unpadded string | |
50 | */ | |
51 | public function strip($string) { | |
52 | return rtrim($string, chr(0)); | |
53 | } | |
54 | ||
55 | } |