cryptal  latest
Cryptography Abstraction Layer
Zero.php
1 <?php
2 
4 
6 
8 class Zero implements PaddingInterface
9 {
10  public function getPaddingData($blockSize, $expectedSize)
11  {
12  return str_repeat("\x00", $expectedSize % $blockSize);
13  }
14 
15  public function getPaddingSize($paddedData, $blockSize)
16  {
17  // We could use strspn(strrev($paddedData), "\x00") instead,
18  // but this would require additional memory allocations,
19  // which is undesirable as $paddedData gets larger.
20  $m = strlen($paddedData) - 1;
21  for ($i = 0; $i < $blockSize && $i <= $m && "\x00" === $paddedData[$m - $i]; $i++) {
22  // Nothing to do
23  }
24  return $i;
25  }
26 }
Pads a string using NUL bytes, without ever creating a new block.
Definition: Zero.php:8
getPaddingData($blockSize, $expectedSize)
Definition: Zero.php:10
getPaddingSize($paddedData, $blockSize)
Definition: Zero.php:15