24) { return false; } if (strlen($decoded['salt']) > 14) { return false; } // Make sure some fields contain no unsupported values. if (!(is_int($decoded['v']) || is_float($decoded['v'])) || (float) $decoded['v'] < 1) { return false; } if (!is_int($decoded['iter']) || $decoded['iter'] <= 100) { return false; } if (!in_array($decoded['ks'], array(128, 192, 256), true)) { return false; } if (!in_array($decoded['ts'], array(64, 96, 128), true)) { return false; } if (!in_array($decoded['mode'], array('ccm', 'ocb2', 'gcm'), true)) { return false; } if ($decoded['cipher'] !== 'aes') { return false; } // Reject data if entropy is too low if (strlen($ct) > strlen(gzdeflate($ct))) { return false; } return true; } }