Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(794)

Unified Diff: lib/src/utils.dart

Issue 1902993003: Upgrade pub to work with crypto 1.0.0 or later. (Closed) Base URL: https://github.com/dart-lang/pub.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/barback/barback_server.dart ('k') | pubspec.yaml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/utils.dart
diff --git a/lib/src/utils.dart b/lib/src/utils.dart
index 569a04f626a2877addfc31c05d873d795deccbd9..9683223b008a9b452c16aea02bee5a6b2b4ef478 100644
--- a/lib/src/utils.dart
+++ b/lib/src/utils.dart
@@ -8,7 +8,8 @@ import "dart:convert";
import 'dart:io';
import 'dart:math' as math;
-import "package:crypto/crypto.dart";
+import "package:convert/convert.dart";
+import "package:crypto/crypto.dart" as crypto;
nweiz 2016/04/21 19:04:38 crypto is not intended to be imported with a prefi
Bob Nystrom 2016/04/21 20:23:20 Pub defines a sha1() function so I needed to disam
import 'package:path/path.dart' as path;
import "package:stack_trace/stack_trace.dart";
@@ -486,10 +487,33 @@ bool endsWithPattern(String str, Pattern matcher) {
}
/// Returns the hex-encoded sha1 hash of [source].
-String sha1(String source) {
- var sha = new SHA1();
- sha.add(source.codeUnits);
- return CryptoUtils.bytesToHex(sha.close());
+String sha1(String source) =>
+ hex.encode(crypto.sha1.convert(source.codeUnits).bytes);
nweiz 2016/04/21 19:04:38 crypto.sha1.convert(UTF8.encode(source)).toString(
Bob Nystrom 2016/04/21 20:23:20 TIL. Done. I'll send out a code review.
+
+/// Returns the base64-encoded sha1 hash of [stream].
nweiz 2016/04/21 19:04:38 Why is this base64-encoded rather than hex-encoded
Bob Nystrom 2016/04/21 20:23:20 It's annoying that this is different from the prev
+Future<String> sha1Stream(Stream<List<int>> stream) async {
+ crypto.Digest digest;
+
+ var digestSink = new ChunkedConversionSink<crypto.Digest>.withCallback(
+ (digests) {
+ digest = digests.single;
+ });
+
+ var byteSink = crypto.sha1.startChunkedConversion(digestSink);
+
+ await stream.forEach((chunk) {
+ byteSink.add(chunk);
+ });
+
+ byteSink.close();
+
+ // TODO(rnystrom): this call to `close` should not be needed. Remove when
+ // https://github.com/dart-lang/crypto/issues/33
+ // is fixed.
+ // Does not cause any problems in the mean time.
+ digestSink.close();
+
+ return BASE64.encode(digest.bytes);
}
/// Configures [future] so that its result (success or exception) is passed on
« no previous file with comments | « lib/src/barback/barback_server.dart ('k') | pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698