diff --git a/packages/flutter_tools/lib/src/base/utils.dart b/packages/flutter_tools/lib/src/base/utils.dart index 62a9b8f1d18..cdbdec19f63 100644 --- a/packages/flutter_tools/lib/src/base/utils.dart +++ b/packages/flutter_tools/lib/src/base/utils.dart @@ -7,10 +7,15 @@ import 'dart:io'; import 'package:crypto/crypto.dart'; +String hex(List bytes) { + StringBuffer result = new StringBuffer(); + for (int part in bytes) + result.write('${part < 16 ? '0' : ''}${part.toRadixString(16)}'); + return result.toString(); +} + String calculateSha(File file) { - SHA1 sha1 = new SHA1(); - sha1.add(file.readAsBytesSync()); - return CryptoUtils.bytesToHex(sha1.close()); + return hex(sha1.convert(file.readAsBytesSync()).bytes); } /// Convert `foo_bar` to `fooBar`. diff --git a/packages/flutter_tools/pubspec.yaml b/packages/flutter_tools/pubspec.yaml index 05dbe459bdd..da787cee2e8 100644 --- a/packages/flutter_tools/pubspec.yaml +++ b/packages/flutter_tools/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: analyzer: '>=0.26.1+17' # see note below archive: ^1.0.20 args: ^0.13.4 - crypto: ^0.9.1 + crypto: ^0.9.2 den_api: ^0.1.0 file: ^0.1.0 mustache4dart: ^1.0.0 diff --git a/packages/flx/lib/signing.dart b/packages/flx/lib/signing.dart index 802aecfd1ad..522ca511ec9 100644 --- a/packages/flx/lib/signing.dart +++ b/packages/flx/lib/signing.dart @@ -3,13 +3,13 @@ // found in the LICENSE file. import 'dart:async'; -import 'dart:convert' hide BASE64; +import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; import 'package:asn1lib/asn1lib.dart'; import 'package:bignum/bignum.dart'; -import 'package:crypto/crypto.dart'; +import 'package:crypto/crypto.dart' hide BASE64, Digest; import 'package:pointycastle/pointycastle.dart'; export 'package:pointycastle/pointycastle.dart' show AsymmetricKeyPair, PublicKey, PrivateKey; @@ -82,9 +82,7 @@ Uint8List serializeManifest(Map manifestDescriptor, ECPublicKey if (publicKey != null) outputManifest['key'] = BASE64.encode(publicKey.Q.getEncoded()); - SHA256 sha = new SHA256(); - sha.add(zipBytes); - List hash = sha.close(); + List hash = sha256.convert(zipBytes).bytes; BigInteger zipHashInt = new BigInteger.fromBytes(1, hash); outputManifest['content-hash'] = zipHashInt.intValue(); diff --git a/packages/flx/pubspec.yaml b/packages/flx/pubspec.yaml index f0f30fc8289..00cd7e2037e 100644 --- a/packages/flx/pubspec.yaml +++ b/packages/flx/pubspec.yaml @@ -7,7 +7,7 @@ dependencies: bignum: ^0.1.0 asn1lib: ^0.4.1 pointycastle: 0.10.0 - crypto: ^0.9.1 + crypto: ^0.9.2 environment: sdk: '>=1.12.0 <2.0.0'