/**
  * @dataProvider engineVectors
  */
 public function testVectors($engine, $engineName, $key, $offset, $expected)
 {
     $rc4 = new RC4();
     $rc4->setPreferredEngine($engine);
     $rc4->setKey($key);
     if ($rc4->getEngine() != $engine) {
         self::markTestSkipped('Unable to initialize ' . $engineName . ' engine for ' . strlen($key) * 8 . '-bit key');
     }
     $result = $rc4->encrypt(str_repeat("", $offset + 16));
     $this->assertEquals(bin2hex(substr($result, -16)), $expected, "Failed asserting that key {$key} yielded expected output at offset {$offset} in {$engineName} engine");
 }