25 lines
831 B
Dart
25 lines
831 B
Dart
|
|
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
||
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
||
|
|
// BSD-style license that can be found in the LICENSE file.
|
||
|
|
|
||
|
|
import 'dart:typed_data';
|
||
|
|
|
||
|
|
import 'package:crypto/crypto.dart';
|
||
|
|
import 'package:test/test.dart';
|
||
|
|
|
||
|
|
/// Asserts that an HMAC using [hash] returns [mac] for [input] and [key].
|
||
|
|
void expectHmacEquals(Hash hash, List<int> input, List<int> key, String mac) {
|
||
|
|
var hmac = Hmac(hash, key);
|
||
|
|
expect(hmac.convert(input).toString(), startsWith(mac));
|
||
|
|
}
|
||
|
|
|
||
|
|
final toupleMatch = RegExp('([0-9a-fA-F]{2})');
|
||
|
|
|
||
|
|
Uint8List bytesFromHexString(String message) {
|
||
|
|
var bytes = <int>[];
|
||
|
|
for (var match in toupleMatch.allMatches(message)) {
|
||
|
|
bytes.add(int.parse(match.group(0)!, radix: 16));
|
||
|
|
}
|
||
|
|
return Uint8List.fromList(bytes);
|
||
|
|
}
|