mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
add timing info for flx creation
This commit is contained in:
parent
0c05666ee1
commit
ee8f325bc0
@ -123,7 +123,7 @@ class RunCommand extends RunCommandBase {
|
||||
debugPort: debugPort
|
||||
);
|
||||
|
||||
printTrace('Finished start command.');
|
||||
printTrace('Finished $name command.');
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@ -256,7 +256,7 @@ Future<int> build(
|
||||
|
||||
Future<int> assemble({
|
||||
Map manifestDescriptor: const {},
|
||||
ArchiveFile snapshotFile: null,
|
||||
ArchiveFile snapshotFile,
|
||||
String assetBasePath: defaultAssetBasePath,
|
||||
String materialAssetBasePath: defaultMaterialAssetBasePath,
|
||||
String outputPath: defaultFlxOutputPath,
|
||||
@ -287,11 +287,15 @@ Future<int> assemble({
|
||||
if (fontManifest != null)
|
||||
archive.addFile(fontManifest);
|
||||
|
||||
await CipherParameters.get().seedRandom();
|
||||
printTrace('Calling CipherParameters.seedRandom().');
|
||||
CipherParameters.get().seedRandom();
|
||||
|
||||
AsymmetricKeyPair keyPair = keyPairFromPrivateKeyFileSync(privateKeyPath);
|
||||
printTrace('KeyPair from $privateKeyPath: $keyPair.');
|
||||
printTrace('Encoding zip file.');
|
||||
Uint8List zipBytes = new Uint8List.fromList(new ZipEncoder().encode(archive));
|
||||
ensureDirectoryExists(outputPath);
|
||||
printTrace('Creating flx at ${outputPath}.');
|
||||
Bundle bundle = new Bundle.fromContent(
|
||||
path: outputPath,
|
||||
manifest: manifestDescriptor,
|
||||
|
||||
@ -72,7 +72,7 @@ class Bundle {
|
||||
this.path,
|
||||
this.manifest,
|
||||
contentBytes,
|
||||
AsymmetricKeyPair keyPair: null
|
||||
AsymmetricKeyPair keyPair
|
||||
}) : _contentBytes = contentBytes {
|
||||
assert(path != null);
|
||||
assert(manifest != null);
|
||||
|
||||
@ -20,6 +20,7 @@ class CipherParameters {
|
||||
final String signerAlgorithm = 'SHA-256/ECDSA';
|
||||
final String hashAlgorithm = 'SHA-256';
|
||||
final ECDomainParameters domain = new ECDomainParameters('prime256v1');
|
||||
|
||||
SecureRandom get random {
|
||||
if (_random == null)
|
||||
_initRandom(new Uint8List(16), new Uint8List(16));
|
||||
@ -29,12 +30,16 @@ class CipherParameters {
|
||||
// Seeds our secure random number generator using data from /dev/urandom.
|
||||
// Disclaimer: I don't really understand why we need 2 parameters for
|
||||
// pointycastle's API.
|
||||
Future seedRandom() async {
|
||||
void seedRandom() {
|
||||
if (_random != null)
|
||||
return;
|
||||
|
||||
try {
|
||||
RandomAccessFile file = await new File("/dev/urandom").open();
|
||||
Uint8List key = new Uint8List.fromList(await file.read(16));
|
||||
Uint8List iv = new Uint8List.fromList(await file.read(16));
|
||||
RandomAccessFile file = new File("/dev/urandom").openSync();
|
||||
Uint8List key = new Uint8List.fromList(file.readSync(16));
|
||||
Uint8List iv = new Uint8List.fromList(file.readSync(16));
|
||||
_initRandom(key, iv);
|
||||
file.closeSync();
|
||||
} on FileSystemException {
|
||||
// TODO(mpcomplete): need an entropy source on Windows. We might get this
|
||||
// for free from Dart itself soon.
|
||||
|
||||
@ -34,7 +34,7 @@ main() async {
|
||||
|
||||
// Set up a key generator.
|
||||
CipherParameters cipher = CipherParameters.get();
|
||||
await cipher.seedRandom();
|
||||
cipher.seedRandom();
|
||||
ECKeyGeneratorParameters ecParams = new ECKeyGeneratorParameters(cipher.domain);
|
||||
ParametersWithRandom<ECKeyGeneratorParameters> keyGeneratorParams =
|
||||
new ParametersWithRandom<ECKeyGeneratorParameters>(ecParams, cipher.random);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user