31 lines
982 B
Dart
31 lines
982 B
Dart
// See file LICENSE for more information.
|
|
|
|
import 'package:pointycastle/pointycastle.dart';
|
|
|
|
import '../test/runners/mac.dart';
|
|
import '../test/src/helpers.dart';
|
|
|
|
void main() {
|
|
final mac = Mac('AES/CBC_CMAC/PKCS7');
|
|
|
|
// Test vectors from BouncyCastle CBCBlockCipherMac (was DES/CBC_CMAC/PKCS7).
|
|
// Note: Key and expected outputs adapted from DES engine to AES
|
|
final key = createUint8ListFromHexString('0123456789abcdef0123456789abcdef');
|
|
final keyParam = KeyParameter(key);
|
|
|
|
final input1 = createUint8ListFromHexString(
|
|
'37363534333231204e6f77206973207468652074696d6520666f7220');
|
|
final input2 = createUint8ListFromHexString('3736353433323120');
|
|
|
|
final output5WithAes = '0376f977de2166d1';
|
|
final output6WithAes = 'f338ed02ba54413f';
|
|
|
|
mac.init(keyParam);
|
|
|
|
runMacTests(mac, [
|
|
PlainTextDigestPair(input2, output5WithAes),
|
|
PlainTextDigestPair(input1, output6WithAes),
|
|
// same input again:
|
|
PlainTextDigestPair(input1, output6WithAes)
|
|
]);
|
|
}
|