blob: d7518f45cf3dabc39a8ef4fd6c32cad43a09d582 [file] [log] [blame]
TestSuite.add(new YAHOO.tool.TestCase({
test_Rabbit: function () {
// Test vectors
Crypto.Rabbit._rabbit(message = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0]);
Assert.areEqual([0x02, 0xF7, 0x4A, 0x1C, 0x26, 0x45, 0x6B, 0xF5, 0xEC, 0xD6, 0xA5, 0x36, 0xF0, 0x54, 0x57, 0xB1].toString(), message.toString());
Crypto.Rabbit._rabbit(message = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0xDC51C3AC, 0x3BFC62F1, 0x2E3D36FE, 0x91281329]);
Assert.areEqual([0x9C, 0x51, 0xE2, 0x87, 0x84, 0xC3, 0x7F, 0xE9, 0xA1, 0x27, 0xF6, 0x3E, 0xC8, 0xF3, 0x2D, 0x3D].toString(), message.toString());
Crypto.Rabbit._rabbit(message = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0xC09B0043, 0xE9E9AB01, 0x87E0C733, 0x83957415]);
Assert.areEqual([0x9B, 0x60, 0xD0, 0x02, 0xFD, 0x5C, 0xEB, 0x32, 0xAC, 0xCD, 0x41, 0xA0, 0xCD, 0x0D, 0xB1, 0x0C].toString(), message.toString());
Crypto.Rabbit._rabbit(message = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0], [0, 0]);
Assert.areEqual([0xED, 0xB7, 0x05, 0x67, 0x37, 0x5D, 0xCD, 0x7C, 0xD8, 0x95, 0x54, 0xF8, 0x5E, 0x27, 0xA7, 0xC6].toString(), message.toString());
Crypto.Rabbit._rabbit(message = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0], [0x597E26C1, 0x75F573C3]);
Assert.areEqual([0x6D, 0x7D, 0x01, 0x22, 0x92, 0xCC, 0xDC, 0xE0, 0xE2, 0x12, 0x00, 0x58, 0xB9, 0x4E, 0xCD, 0x1F].toString(), message.toString());
Crypto.Rabbit._rabbit(message = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0], [0x2717F4D2, 0x1A56EBA6]);
Assert.areEqual([0x4D, 0x10, 0x51, 0xA1, 0x23, 0xAF, 0xB6, 0x70, 0xBF, 0x8D, 0x85, 0x05, 0xC8, 0xD8, 0x5A, 0x44].toString(), message.toString());
// Test D(E(m)) == m
var key = Crypto.util.randomBytes(16);
Assert.areEqual(data, Crypto.Rabbit.decrypt(Crypto.Rabbit.encrypt(data, key), key));
Assert.areEqual('Сообщение', Crypto.Rabbit.decrypt(Crypto.Rabbit.encrypt('Сообщение', 'Пароль'), 'Пароль'));
}
}));