منبع منتشرشده
دانلود ZIP منبع
CH-J SM Mobile
پوشهها و فایلهای یک نسخهٔ مشخص از برنامه را مرور کنید.
CH-J / SM Mobile
175 فایل
sm-mobile-20261016T185235Z-8e93ecc1b59a
افزودهشده: · ساختهشده:
1
import 'dart:convert';2
import 'dart:io';3
import 'dart:typed_data';4
import 'package:archive/archive.dart';5
import 'package:flutter_test/flutter_test.dart';6
import 'package:sm_mobile/services/editor/inspect.dart';8
const certificate = '''9
-----BEGIN CERTIFICATE-----10
MIIBoDCCAUegAwIBAgIUCsiMZ6pteLpL9u3ZNNGzcZRCYAUwCgYIKoZIzj0EAwIw11
JjEQMA4GA1UEAwwHc20udGVzdDESMBAGA1UECgwJQ0gtSiBUZXN0MB4XDTI2MTAx12
NjE4NTAxN1oXDTM2MTAxMzE4NTAxN1owJjEQMA4GA1UEAwwHc20udGVzdDESMBAG13
A1UECgwJQ0gtSiBUZXN0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE96mUBHiX14
k7KFksidjIQFJtUBr7HcqXByj4zNwIOo47YBmhqN82FrKlbO36xEHXQCAioa7h1c15
ug3z3gGbz/urwqNTMFEwHQYDVR0OBBYEFHYRtuJAiNKJdsI/2t9y3n0tFC5ZMB8G16
A1UdIwQYMBaAFHYRtuJAiNKJdsI/2t9y3n0tFC5ZMA8GA1UdEwEB/wQFMAMBAf8w17
CgYIKoZIzj0EAwIDRwAwRAIgKu6R8/+wr47TXoybyKVJr4cFsN0XrS0EK0ck9nRZ18
+RMCIAbzv9d1fkFBne3y8pyB1o11qR3dje9chc5S+0szDmuF19
-----END CERTIFICATE-----20
''';22
void main() {23
test('ZIP, TAR.GZ and GZIP are listed without extracting', () {24
final a = Archive()25
..addFile(ArchiveFile.bytes('etc/app.conf', utf8.encode('x=1\n')))26
..addFile(ArchiveFile.bytes('README', utf8.encode('hello')));27
final zip = Uint8List.fromList(ZipEncoder().encodeBytes(a));28
final listing = listArchive('a.zip', zip);29
expect(listing.format, 'ZIP');30
expect(listing.entries.map((e) => e.name), ['etc/app.conf', 'README']);31
expect(listing.entries.first.size, 4);32
final tgz = Uint8List.fromList(gzip.encode(TarEncoder().encodeBytes(a)));33
final t = listArchive('a.tar.gz', tgz);34
expect(t.format, 'TAR.GZ');35
expect(t.entries.map((e) => e.name), contains('README'));36
final gz = listArchive(37
'log.txt.gz',38
Uint8List.fromList(gzip.encode(utf8.encode('abc'))),39
);40
expect(41
(gz.format, gz.entries.single.name, gz.entries.single.size),42
('GZIP', 'log.txt', 3),43
);44
expect(45
() => listArchive(46
'x.7z',47
Uint8List.fromList([0x37, 0x7a, 0xbc, 0xaf, 0x27, 0x1c]),48
),49
throwsA(isA<ArchiveUnsupported>()),50
);51
});53
test('certificate details; private keys are only reported', () async {54
final items = await inspectCrypto(55
Uint8List.fromList(56
utf8.encode(57
'$certificate\n-----BEGIN PRIVATE KEY-----\nAAAA\n-----END PRIVATE KEY-----\n',58
),59
),60
);61
final cert = items.firstWhere((i) => i.type == 'X.509 certificate');62
expect(cert.fields['subject'], 'CN=sm.test, O=CH-J Test');63
expect(cert.fields['publicKey'], 'EC');64
expect(65
cert.fields['sha256'],66
'FD:9F:7B:E3:2A:9A:F1:CC:E9:B7:92:18:36:5A:50:1A:53:59:3F:55:89:2F:63:10:F9:76:5E:DC:8C:A4:2F:30',67
);68
expect(cert.fields['expired'], 'no');69
final key = items.firstWhere((i) => i.secret);70
expect(key.type, 'PRIVATE KEY');71
expect(key.fields, isEmpty);72
});74
test('OpenSSH public key fingerprint matches ssh-keygen', () async {75
final dir = await Directory.systemTemp.createTemp('sm-key-');76
try {77
await Process.run('ssh-keygen', [78
'-q',79
'-t',80
'ed25519',81
'-N',82
'',83
'-C',84
'me@test',85
'-f',86
'${dir.path}/k',87
]);88
final pub = File('${dir.path}/k.pub').readAsBytesSync();89
final expected = (await Process.run('ssh-keygen', [90
'-lf',91
'${dir.path}/k.pub',92
])).stdout.toString().split(' ')[1];93
final item = (await inspectCrypto(pub)).single;94
expect(item.fields['sha256'], expected);95
expect(item.fields['comment'], 'me@test');96
} finally {97
await dir.delete(recursive: true);98
}99
});101
test('notebook cells with text output', () {102
final cells = parseNotebook(103
jsonEncode({104
'cells': [105
{106
'cell_type': 'markdown',107
'source': ['# Title'],108
},109
{110
'cell_type': 'code',111
'source': 'print(1)',112
'outputs': [113
{114
'output_type': 'stream',115
'text': ['1\n'],116
},117
],118
},119
],120
}),121
);122
expect(cells.map((c) => c.type), ['markdown', 'code']);123
expect(cells[1].outputs.single, '1\n');124
});125
}SHA-256
ab4a44a2641e8b998a97f8e24caa4a57a15441e0249c5ce8f62a88130f9cdd18CH-J Proprietary Software License 1.14 · کد منبع تحت CH-J Proprietary Software License 1.14 ارائه میشود. در دسترس بودن آن شرایط مجوز را تغییر نمیدهد و حق اضافهای اعطا نمیکند.
SHA-256 بایگانی
46e427a43e87af091004f36145590bda8fe90086dfb0f631afeb5029fb0b5655