@TestOn('vm') // See file LICENSE for more information. library test.macs.poly1305_test; import 'package:pointycastle/export.dart'; import 'package:test/test.dart'; import '../test/runners/mac.dart'; import '../test/src/helpers.dart'; void main() { var mac = Poly1305.withCipher(AESEngine()); // Test vectors from BouncyCastle Poly1305 class final key = createUint8ListFromHexString( '0000000000000000000000000000000000000000000000000000000000000000'); final iv = createUint8ListFromHexString('00000000000000000000000000000000'); final params = ParametersWithIV(KeyParameter(key), iv); final input1 = createUint8ListFromHexString(''); final output1 = '66e94bd4ef8a2c3b884cfa59ca342b2e'; mac.init(params); runMacTests(mac, [ PlainTextDigestPair(input1, output1), // same input again: PlainTextDigestPair(input1, output1) ]); mac = Poly1305.withCipher(AESEngine()); final key2 = createUint8ListFromHexString( 'f795bd0a50e29e0710d3130a20e98d0cf795bd4a52e29ed713d313fa20e98dbc'); final iv2 = createUint8ListFromHexString('917cf69ebd68b2ec9b9fe9a3eadda692'); final params2 = ParametersWithIV(KeyParameter(key2), iv2); var input2 = createUint8ListFromHexString('66f7'); var output2 = '5ca585c75e8f8f025e710cabc9a1508b'; mac.init(params2); runMacTests(mac, [ PlainTextDigestPair(input2, output2), // same input again: PlainTextDigestPair(input2, output2) ]); mac = Poly1305.withCipher(AESEngine()); final key3 = createUint8ListFromHexString( '3ef49901c8e11c000430d90ad45e7603e69dae0aab9f91c03a325dcc9436fa90'); final iv3 = createUint8ListFromHexString('166450152e2394835606a9d1dd2cdc8b'); final params3 = ParametersWithIV(KeyParameter(key3), iv3); var input3 = createUint8ListFromHexString('66f75c0e0c7a406586'); var output3 = '2924f51b9c2eff5df09db61dd03a9ca1'; mac.init(params3); runMacTests(mac, [ PlainTextDigestPair(input3, output3), // same input again: PlainTextDigestPair(input3, output3) ]); mac = Poly1305(); final key4 = createUint8ListFromHexString( 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'); final params4 = KeyParameter(key4); var input4 = createUint8ListFromHexString( 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'); var output4 = 'c80cb43844f387946e5aa6085bdf67da'; mac.init(params4); runMacTests(mac, [ PlainTextDigestPair(input4, output4), // same input again: PlainTextDigestPair(input4, output4) ]); }