80 lines
2.9 KiB
Dart
80 lines
2.9 KiB
Dart
@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>(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>(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>(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)
|
|
]);
|
|
}
|