| Current Path : /srv/web/sites/trentinoplant.it/httpdocs/vendor1/spomky-labs/aes-key-wrap/ |
| Current File : /srv/web/sites/trentinoplant.it/httpdocs/vendor1/spomky-labs/aes-key-wrap/infection.txt |
Escaped mutants:
================
1) /home/florent/PhpstormProjects/aes-key-wrap/src/A128KW.php:11 [M] ProtectedVisibility
--- Original
+++ New
@@ @@
final class A128KW implements Wrapper
{
use AESKW;
- protected static function getMethod() : string
+ private static function getMethod() : string
{
return 'aes-128-ecb';
}
}
2) /home/florent/PhpstormProjects/aes-key-wrap/src/A192KW.php:11 [M] ProtectedVisibility
--- Original
+++ New
@@ @@
final class A192KW implements Wrapper
{
use AESKW;
- protected static function getMethod() : string
+ private static function getMethod() : string
{
return 'aes-192-ecb';
}
}
3) /home/florent/PhpstormProjects/aes-key-wrap/src/A256KW.php:11 [M] ProtectedVisibility
--- Original
+++ New
@@ @@
final class A256KW implements Wrapper
{
use AESKW;
- protected static function getMethod() : string
+ private static function getMethod() : string
{
return 'aes-256-ecb';
}
}
4) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:31 [M] MBString
--- Original
+++ New
@@ @@
{
$A = self::getInitialValue($key, $padding_enabled);
self::checkKeySize($key, $padding_enabled);
- $P = mb_str_split($key, 8, '8bit');
+ $P = str_split($key, 8);
$N = count($P);
$C = [];
if ($N === 1) {
5) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:38 [M] IncrementInteger
--- Original
+++ New
@@ @@
if ($N === 1) {
$B = self::encrypt($kek, $A . $P[0]);
$C[0] = self::getMSB($B);
- $C[1] = self::getLSB($B);
+ $C[2] = self::getLSB($B);
} elseif ($N > 1) {
$R = $P;
for ($j = 0; $j <= 5; ++$j) {
6) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:39 [M] GreaterThan
--- Original
+++ New
@@ @@
$B = self::encrypt($kek, $A . $P[0]);
$C[0] = self::getMSB($B);
$C[1] = self::getLSB($B);
- } elseif ($N > 1) {
+ } elseif ($N >= 1) {
$R = $P;
for ($j = 0; $j <= 5; ++$j) {
for ($i = 1; $i <= $N; ++$i) {
7) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:62 [M] FalseValue
--- Original
+++ New
@@ @@
*
* @return string The key unwrapped
*/
- public static function unwrap(string $kek, string $key, bool $padding_enabled = false) : string
+ public static function unwrap(string $kek, string $key, bool $padding_enabled = true) : string
{
$P = mb_str_split($key, 8, '8bit');
$A = $P[0];
8) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:64 [M] MBString
--- Original
+++ New
@@ @@
*/
public static function unwrap(string $kek, string $key, bool $padding_enabled = false) : string
{
- $P = mb_str_split($key, 8, '8bit');
+ $P = str_split($key, 8);
$A = $P[0];
$N = count($P);
if ($N < 2) {
9) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:110 [M] FalseValue
--- Original
+++ New
@@ @@
{
if ($padding_enabled === false) {
$bin = hex2bin('A6A6A6A6A6A6A6A6');
- if ($bin === false) {
+ if ($bin === true) {
throw new InvalidArgumentException('Unable to convert the data');
}
return $bin;
10) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:117 [M] MBString
--- Original
+++ New
@@ @@
}
return $bin;
}
- $MLI = mb_strlen($key, '8bit');
+ $MLI = strlen($key);
$iv = hex2bin('A65959A6') . self::toXBits(32, $MLI);
$n = (int) ceil($MLI / 8);
$key = str_pad($key, 8 * $n, "\x00", STR_PAD_RIGHT);
11) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:120 [M] DecrementInteger
--- Original
+++ New
@@ @@
}
$MLI = mb_strlen($key, '8bit');
$iv = hex2bin('A65959A6') . self::toXBits(32, $MLI);
- $n = (int) ceil($MLI / 8);
+ $n = (int) ceil($MLI / 7);
$key = str_pad($key, 8 * $n, "\x00", STR_PAD_RIGHT);
return $iv;
}
12) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:120 [M] IncrementInteger
--- Original
+++ New
@@ @@
}
$MLI = mb_strlen($key, '8bit');
$iv = hex2bin('A65959A6') . self::toXBits(32, $MLI);
- $n = (int) ceil($MLI / 8);
+ $n = (int) ceil($MLI / 9);
$key = str_pad($key, 8 * $n, "\x00", STR_PAD_RIGHT);
return $iv;
}
13) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:120 [M] RoundingFamily
--- Original
+++ New
@@ @@
}
$MLI = mb_strlen($key, '8bit');
$iv = hex2bin('A65959A6') . self::toXBits(32, $MLI);
- $n = (int) ceil($MLI / 8);
+ $n = (int) round($MLI / 8);
$key = str_pad($key, 8 * $n, "\x00", STR_PAD_RIGHT);
return $iv;
}
14) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:143 [M] MBString
--- Original
+++ New
@@ @@
if (hex2bin('A65959A6') !== self::getMSB($iv)) {
return false;
}
- $n = mb_strlen($key, '8bit') / 8;
+ $n = strlen($key) / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
return false;
15) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:143 [M] IncrementInteger
--- Original
+++ New
@@ @@
if (hex2bin('A65959A6') !== self::getMSB($iv)) {
return false;
}
- $n = mb_strlen($key, '8bit') / 8;
+ $n = mb_strlen($key, '8bit') / 9;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
return false;
16) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:144 [M] UnwrapLtrim
--- Original
+++ New
@@ @@
return false;
}
$n = mb_strlen($key, '8bit') / 8;
- $MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
+ $MLI = (int) hexdec(bin2hex(self::getLSB($iv)));
if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
return false;
}
17) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:144 [M] CastInt
--- Original
+++ New
@@ @@
return false;
}
$n = mb_strlen($key, '8bit') / 8;
- $MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
+ $MLI = hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
return false;
}
18) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:146 [M] DecrementInteger
--- Original
+++ New
@@ @@
}
$n = mb_strlen($key, '8bit') / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
- if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
+ if (!(7 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
return false;
}
$b = 8 * $n - $MLI;
19) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:146 [M] IncrementInteger
--- Original
+++ New
@@ @@
}
$n = mb_strlen($key, '8bit') / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
- if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
+ if (!(9 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
return false;
}
$b = 8 * $n - $MLI;
20) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:146 [M] IncrementInteger
--- Original
+++ New
@@ @@
}
$n = mb_strlen($key, '8bit') / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
- if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
+ if (!(8 * ($n - 2) < $MLI && $MLI <= 8 * $n)) {
return false;
}
$b = 8 * $n - $MLI;
21) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:146 [M] LessThan
--- Original
+++ New
@@ @@
}
$n = mb_strlen($key, '8bit') / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
- if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
+ if (!(8 * ($n - 1) <= $MLI && $MLI <= 8 * $n)) {
return false;
}
$b = 8 * $n - $MLI;
22) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:146 [M] DecrementInteger
--- Original
+++ New
@@ @@
}
$n = mb_strlen($key, '8bit') / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
- if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
+ if (!(8 * ($n - 1) < $MLI && $MLI <= 7 * $n)) {
return false;
}
$b = 8 * $n - $MLI;
23) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:146 [M] IncrementInteger
--- Original
+++ New
@@ @@
}
$n = mb_strlen($key, '8bit') / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
- if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
+ if (!(8 * ($n - 1) < $MLI && $MLI <= 9 * $n)) {
return false;
}
$b = 8 * $n - $MLI;
24) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:146 [M] LessThanOrEqualTo
--- Original
+++ New
@@ @@
}
$n = mb_strlen($key, '8bit') / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
- if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
+ if (!(8 * ($n - 1) < $MLI && $MLI < 8 * $n)) {
return false;
}
$b = 8 * $n - $MLI;
25) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:146 [M] LogicalAnd
--- Original
+++ New
@@ @@
}
$n = mb_strlen($key, '8bit') / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
- if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
+ if (!(8 * ($n - 1) < $MLI || $MLI <= 8 * $n)) {
return false;
}
$b = 8 * $n - $MLI;
26) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:150 [M] DecrementInteger
--- Original
+++ New
@@ @@
if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
return false;
}
- $b = 8 * $n - $MLI;
+ $b = 7 * $n - $MLI;
for ($i = 0; $i < $b; ++$i) {
if (mb_substr($key, $MLI + $i, 1, '8bit') !== "\x00") {
return false;
27) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:150 [M] Multiplication
--- Original
+++ New
@@ @@
if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
return false;
}
- $b = 8 * $n - $MLI;
+ $b = 8 / $n - $MLI;
for ($i = 0; $i < $b; ++$i) {
if (mb_substr($key, $MLI + $i, 1, '8bit') !== "\x00") {
return false;
28) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:151 [M] LessThanNegotiation
--- Original
+++ New
@@ @@
return false;
}
$b = 8 * $n - $MLI;
- for ($i = 0; $i < $b; ++$i) {
+ for ($i = 0; $i >= $b; ++$i) {
if (mb_substr($key, $MLI + $i, 1, '8bit') !== "\x00") {
return false;
}
29) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:151 [M] For_
--- Original
+++ New
@@ @@
return false;
}
$b = 8 * $n - $MLI;
- for ($i = 0; $i < $b; ++$i) {
+ for ($i = 0; false; ++$i) {
if (mb_substr($key, $MLI + $i, 1, '8bit') !== "\x00") {
return false;
}
30) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:152 [M] MBString
--- Original
+++ New
@@ @@
}
$b = 8 * $n - $MLI;
for ($i = 0; $i < $b; ++$i) {
- if (mb_substr($key, $MLI + $i, 1, '8bit') !== "\x00") {
+ if (substr($key, $MLI + $i, 1) !== "\x00") {
return false;
}
}
31) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:156 [M] MBString
--- Original
+++ New
@@ @@
return false;
}
}
- $key = mb_substr($key, 0, $MLI, '8bit');
+ $key = substr($key, 0, $MLI);
return true;
}
private static function checkKeySize(string $key, bool $padding_enabled) : void
32) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:166 [M] MBString
--- Original
+++ New
@@ @@
if ($key === '') {
throw new InvalidArgumentException('Bad key size');
}
- if ($padding_enabled === false && mb_strlen($key, '8bit') % 8 !== 0) {
+ if ($padding_enabled === false && strlen($key) % 8 !== 0) {
throw new InvalidArgumentException('Bad key size');
}
}
33) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:174 [M] FalseValue
--- Original
+++ New
@@ @@
private static function toXBits(int $bits, int $value) : string
{
$bin = hex2bin(str_pad(dechex($value), $bits / 4, '0', STR_PAD_LEFT));
- if ($bin === false) {
+ if ($bin === true) {
throw new InvalidArgumentException('Unable to convert the data');
}
return $bin;
34) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:183 [M] MBString
--- Original
+++ New
@@ @@
}
private static function getMSB(string $value) : string
{
- return mb_substr($value, 0, mb_strlen($value, '8bit') / 2, '8bit');
+ return mb_substr($value, 0, strlen($value) / 2, '8bit');
}
private static function getLSB(string $value) : string
{
35) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:183 [M] MBString
--- Original
+++ New
@@ @@
}
private static function getMSB(string $value) : string
{
- return mb_substr($value, 0, mb_strlen($value, '8bit') / 2, '8bit');
+ return substr($value, 0, mb_strlen($value, '8bit') / 2);
}
private static function getLSB(string $value) : string
{
36) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:188 [M] MBString
--- Original
+++ New
@@ @@
}
private static function getLSB(string $value) : string
{
- return mb_substr($value, mb_strlen($value, '8bit') / 2, null, '8bit');
+ return mb_substr($value, strlen($value) / 2, null, '8bit');
}
private static function encrypt(string $kek, string $data) : string
{
37) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:188 [M] MBString
--- Original
+++ New
@@ @@
}
private static function getLSB(string $value) : string
{
- return mb_substr($value, mb_strlen($value, '8bit') / 2, null, '8bit');
+ return substr($value, mb_strlen($value, '8bit') / 2, null);
}
private static function encrypt(string $kek, string $data) : string
{
38) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:194 [M] FalseValue
--- Original
+++ New
@@ @@
private static function encrypt(string $kek, string $data) : string
{
$result = openssl_encrypt($data, self::getMethod(), $kek, OPENSSL_ZERO_PADDING | OPENSSL_RAW_DATA);
- if ($result === false) {
+ if ($result === true) {
throw new InvalidArgumentException('Unable to encrypt the data');
}
return $result;
39) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:204 [M] FalseValue
--- Original
+++ New
@@ @@
private static function decrypt(string $kek, string $data) : string
{
$result = openssl_decrypt($data, self::getMethod(), $kek, OPENSSL_ZERO_PADDING | OPENSSL_RAW_DATA);
- if ($result === false) {
+ if ($result === true) {
throw new InvalidArgumentException('Unable to decrypt the data');
}
return $result;
}
}
Timed Out mutants:
==================
1) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:41 [M] Increment
--- Original
+++ New
@@ @@
$C[1] = self::getLSB($B);
} elseif ($N > 1) {
$R = $P;
- for ($j = 0; $j <= 5; ++$j) {
+ for ($j = 0; $j <= 5; --$j) {
for ($i = 1; $i <= $N; ++$i) {
$B = self::encrypt($kek, $A . $R[$i - 1]);
$t = $i + $j * $N;
2) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:77 [M] Decrement
--- Original
+++ New
@@ @@
$A = self::getMSB($B);
} else {
$R = $P;
- for ($j = 5; $j >= 0; --$j) {
+ for ($j = 5; $j >= 0; ++$j) {
for ($i = $N - 1; $i >= 1; --$i) {
$t = $i + $j * ($N - 1);
$B = self::decrypt($kek, (self::toXBits(64, $t) ^ $A) . $R[$i]);
Skipped mutants:
================
Not Covered mutants:
====================
1) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:111 [M] Throw_
--- Original
+++ New
@@ @@
if ($padding_enabled === false) {
$bin = hex2bin('A6A6A6A6A6A6A6A6');
if ($bin === false) {
- throw new InvalidArgumentException('Unable to convert the data');
+ new InvalidArgumentException('Unable to convert the data');
}
return $bin;
}
2) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:147 [M] FalseValue
--- Original
+++ New
@@ @@
$n = mb_strlen($key, '8bit') / 8;
$MLI = (int) hexdec(bin2hex(ltrim(self::getLSB($iv), "\x00")));
if (!(8 * ($n - 1) < $MLI && $MLI <= 8 * $n)) {
- return false;
+ return true;
}
$b = 8 * $n - $MLI;
for ($i = 0; $i < $b; ++$i) {
3) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:153 [M] FalseValue
--- Original
+++ New
@@ @@
$b = 8 * $n - $MLI;
for ($i = 0; $i < $b; ++$i) {
if (mb_substr($key, $MLI + $i, 1, '8bit') !== "\x00") {
- return false;
+ return true;
}
}
$key = mb_substr($key, 0, $MLI, '8bit');
4) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:175 [M] Throw_
--- Original
+++ New
@@ @@
{
$bin = hex2bin(str_pad(dechex($value), $bits / 4, '0', STR_PAD_LEFT));
if ($bin === false) {
- throw new InvalidArgumentException('Unable to convert the data');
+ new InvalidArgumentException('Unable to convert the data');
}
return $bin;
}
5) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:195 [M] Throw_
--- Original
+++ New
@@ @@
{
$result = openssl_encrypt($data, self::getMethod(), $kek, OPENSSL_ZERO_PADDING | OPENSSL_RAW_DATA);
if ($result === false) {
- throw new InvalidArgumentException('Unable to encrypt the data');
+ new InvalidArgumentException('Unable to encrypt the data');
}
return $result;
}
6) /home/florent/PhpstormProjects/aes-key-wrap/src/AESKW.php:205 [M] Throw_
--- Original
+++ New
@@ @@
{
$result = openssl_decrypt($data, self::getMethod(), $kek, OPENSSL_ZERO_PADDING | OPENSSL_RAW_DATA);
if ($result === false) {
- throw new InvalidArgumentException('Unable to decrypt the data');
+ new InvalidArgumentException('Unable to decrypt the data');
}
return $result;
}
}