add methods to decrypt return data from router
[GitHub/Stricted/speedport-hybrid-php-api.git] / CryptLib / Encryption / PackingMode / ISO10126.php
CommitLineData
14d4f286
S
1<?php
2/**
3 * A Packing Mode implementation of the ISO 10126 standard
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
16namespace CryptLib\Encryption\PackingMode;
17
18/**
19 * A Packing Mode implementation of the ISO 10126 standard
20 *
21 * @category PHPCryptLib
22 * @package Encryption
23 * @subpackage PackingMode
24 * @author Anthony Ferrara <ircmaxell@ircmaxell.com>
25 */
26class ISO10126 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 $padstr = '';
39 for ($i = 1; $i < $pad; $i++) {
40 $padstr .= chr(mt_rand(0, 255));
41 }
42 return $string . $padstr . chr($pad);
43 }
44
45 /**
46 * Strip the padding from the supplied string
47 *
48 * @param string $string The string to trim
49 *
50 * @return string The unpadded string
51 */
52 public function strip($string) {
53 $end = ord(substr($string, -1));
54 $len = strlen($string) - $end;
55 return substr($string, 0, $len);
56 }
57
58}