mirror of
https://github.com/wanghongenpin/proxypin.git
synced 2026-03-15 04:23:17 +08:00
调整windows窗口大小
This commit is contained in:
@@ -1,23 +1,23 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIID1jCCAr6gAwIBAgIJAJHqGActdgp0MA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV
|
||||
BAYTAkNOMQswCQYDVQQIDAJCSjEQMA4GA1UEBwwHQmVpSmluZzEOMAwGA1UECgwF
|
||||
UHJveHkxETAPBgNVBAsMCFByb3h5UGluMREwDwYDVQQDDAhQcm94eVBpbjAeFw0y
|
||||
MzA2MjIxMTIwMjBaFw0zMzA2MTkxMTIwMjBaMGIxCzAJBgNVBAYTAkNOMQswCQYD
|
||||
VQQIDAJCSjEQMA4GA1UEBwwHQmVpSmluZzEOMAwGA1UECgwFUHJveHkxETAPBgNV
|
||||
BAsMCFByb3h5UGluMREwDwYDVQQDDAhQcm94eVBpbjCCASIwDQYJKoZIhvcNAQEB
|
||||
BQADggEPADCCAQoCggEBAMRjfFvFDZS+PsdedUNq0Kn5t7RFNS0iQrZALr4LJm3U
|
||||
wtatHtMEWBb9ptam8pWezxrZPZ81+qnTcaq/To82yus5hJa4JRk223YWn5JDd4iz
|
||||
H4gcnSomhUQ6Ycrc0v+I7UEaHV+bQsleHEfYi2+E1qF+FBhRveLSPmz2QORd/U4+
|
||||
gDlOptgNWMQ9OTRHsMoDzb8J4SlcBu+s0dnq2WHOM9boGnfk2wIgE+16uB23epPo
|
||||
Yjex8zYGUswh8gNrIzXsr7i9IGtGf67FQYCWOXfZLeGgy0Q0/r1lwSmywUkNaZIs
|
||||
iGZHveZsLtW93MWMFw0uneEvHsuQV+e8sdLI/633TGcCAwEAAaOBjjCBizAdBgNV
|
||||
HQ4EFgQU4YXwKkBDFoZY3D81RM25ECSc2qcwHwYDVR0jBBgwFoAU4YXwKkBDFoZY
|
||||
3D81RM25ECSc2qcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAaYwEwYD
|
||||
VR0RBAwwCoIIUHJveHlQaW4wEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcN
|
||||
AQELBQADggEBAB51+IWp5uCliQxxRzJS1Pg0A7ZVaWCCVQMkLtpfkK6GIGP/tgzn
|
||||
xKf2hZw4tyd5Q9bKAzDBDR76GGsUvC666BjQFUmb/Av8+2f5I0Q55ZzAwKMSEPWU
|
||||
D9gYN1C1E6o6exJQlgumpD9MB8GGHrKZyHy9vopVi26r7kkzXiz4b3tDIkexLePb
|
||||
04Konox7v8S62+IFHLhdi6MybXbZxvhmGcLQvogRKUEBFCLBc+Ht+ZLtHPlfZuUf
|
||||
v9yCKrPWW+8vRTItQjaewEaBbpZyKmp8pCWKqCtJHe0/lbGysX4FJDIwC6hHGM19
|
||||
S2TuBqtJYrUesVj/HDOOJTAJ46SKMTqQRow=
|
||||
MIID4jCCAsqgAwIBAgIJAKcH8Dna4mnZMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNV
|
||||
BAYTAkNOMQswCQYDVQQIDAJCSjEQMA4GA1UEBwwHQmVpSmluZzERMA8GA1UECgwI
|
||||
UHJveHlQaW4xETAPBgNVBAsMCFByb3h5UGluMRQwEgYDVQQDDAtQcm94eVBpbiBD
|
||||
QTAeFw0yMzA2MjQxNjA2MDlaFw0zMzA2MjExNjA2MTBaMGgxCzAJBgNVBAYTAkNO
|
||||
MQswCQYDVQQIDAJCSjEQMA4GA1UEBwwHQmVpSmluZzERMA8GA1UECgwIUHJveHlQ
|
||||
aW4xETAPBgNVBAsMCFByb3h5UGluMRQwEgYDVQQDDAtQcm94eVBpbiBDQTCCASIw
|
||||
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMRjfFvFDZS+PsdedUNq0Kn5t7RF
|
||||
NS0iQrZALr4LJm3UwtatHtMEWBb9ptam8pWezxrZPZ81+qnTcaq/To82yus5hJa4
|
||||
JRk223YWn5JDd4izH4gcnSomhUQ6Ycrc0v+I7UEaHV+bQsleHEfYi2+E1qF+FBhR
|
||||
veLSPmz2QORd/U4+gDlOptgNWMQ9OTRHsMoDzb8J4SlcBu+s0dnq2WHOM9boGnfk
|
||||
2wIgE+16uB23epPoYjex8zYGUswh8gNrIzXsr7i9IGtGf67FQYCWOXfZLeGgy0Q0
|
||||
/r1lwSmywUkNaZIsiGZHveZsLtW93MWMFw0uneEvHsuQV+e8sdLI/633TGcCAwEA
|
||||
AaOBjjCBizAdBgNVHQ4EFgQU4YXwKkBDFoZY3D81RM25ECSc2qcwHwYDVR0jBBgw
|
||||
FoAU4YXwKkBDFoZY3D81RM25ECSc2qcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
|
||||
Af8EBAMCAaYwEwYDVR0RBAwwCoIIUHJveHlQaW4wEwYDVR0lBAwwCgYIKwYBBQUH
|
||||
AwEwDQYJKoZIhvcNAQELBQADggEBAAc2s5TwuOdPdl3gYs121sY+HEMyXfsnVTGV
|
||||
dIlgjf+a0ECir2bcs64udaCIgBjd/vqhShMeqeQ4GJW7Ypb9556L213xjbLj/ZVU
|
||||
rgZda6oVd4der8YEHXKLxWAGlZQeeKHhw1lN4PYwxxGaf7/wsM7Dil0JLyOBtJaJ
|
||||
zNRzVzK9UHASDx0qDQVUBbeYzRviVCjxAGBNM/eNlPDX7m//vgCLxQgcxVdoJvMQ
|
||||
kSVQddo+d8fxnPAVx77dyX0T/ek7PQOsL6d08TVCdvgv50LwE8f9EMhHVv7zjEv2
|
||||
0ZSaRQ0pvUnc0ClKXIGeMD71eYeeTz7CGjndxy5bdV/wmoo3Yek=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
@@ -15,8 +15,10 @@ void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
//设置窗口大小
|
||||
await windowManager.ensureInitialized();
|
||||
|
||||
WindowOptions windowOptions = WindowOptions(
|
||||
minimumSize: const Size(960, 680),
|
||||
minimumSize: const Size(980, 600),
|
||||
size: Platform.isMacOS ? const Size(1200, 750) : const Size(1080, 650),
|
||||
center: true,
|
||||
titleBarStyle: Platform.isMacOS ? TitleBarStyle.hidden : TitleBarStyle.normal);
|
||||
windowManager.waitUntilReadyToShow(windowOptions, () async {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:network_proxy/network/http/http.dart';
|
||||
import 'package:network_proxy/network/http/http_headers.dart';
|
||||
import 'package:network_proxy/network/util/attribute_keys.dart';
|
||||
import 'package:network_proxy/network/util/file_read.dart';
|
||||
import 'package:network_proxy/network/util/request_rewrite.dart';
|
||||
|
||||
import 'channel.dart';
|
||||
@@ -84,7 +84,7 @@ class HttpChannelHandler extends ChannelHandler<HttpRequest> {
|
||||
response.headers.set("Content-Disposition", 'inline;filename=ProxyPinCA.crt');
|
||||
response.headers.set("Connection", 'close');
|
||||
|
||||
var body = await rootBundle.load('assets/certs/ca.crt');
|
||||
var body = await FileRead.read('assets/certs/ca.crt');
|
||||
response.headers.set("Content-Length", body.lengthInBytes.toString());
|
||||
|
||||
if (request.method == HttpMethod.head) {
|
||||
|
||||
@@ -5,6 +5,8 @@ import 'dart:math';
|
||||
import 'package:basic_utils/basic_utils.dart';
|
||||
import 'package:network_proxy/network/util/x509.dart';
|
||||
|
||||
import 'file_read.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
await CertificateManager.getCertificateContext('www.jianshu.com');
|
||||
CertificateManager.caCert.tbsCertificateSeqAsString;
|
||||
@@ -78,14 +80,12 @@ class CertificateManager {
|
||||
return;
|
||||
}
|
||||
//从项目目录加入ca根证书
|
||||
// var caPem = await rootBundle.loadString('assets/certs/ca.crt');
|
||||
var caPem = await File('assets/certs/ca.crt').readAsString();
|
||||
var caPem = await FileRead.readAsString('assets/certs/ca.crt');
|
||||
_caCert = X509Utils.x509CertificateFromPem(caPem);
|
||||
//根据CA证书subject来动态生成目标服务器证书的issuer和subject
|
||||
|
||||
//从项目目录加入ca私钥
|
||||
// var privateBytes = await rootBundle.load('assets/certs/ca_private.der');
|
||||
var privateBytes = await File('assets/certs/ca_private.der').readAsBytes();
|
||||
var privateBytes = await FileRead.read('assets/certs/ca_private.der');
|
||||
_caPriKey = CryptoUtils.rsaPrivateKeyFromDERBytes(privateBytes.buffer.asUint8List());
|
||||
|
||||
_initialized = true;
|
||||
|
||||
13
lib/network/util/file_read.dart
Normal file
13
lib/network/util/file_read.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
class FileRead {
|
||||
static Future<String> readAsString(String file) async {
|
||||
return rootBundle.loadString(file);
|
||||
// return File(file).readAsString();
|
||||
}
|
||||
|
||||
static Future<Uint8List> read(String file) async {
|
||||
return rootBundle.load(file).then((bateData) => bateData.buffer.asUint8List());
|
||||
// return File(file).readAsBytes();
|
||||
}
|
||||
}
|
||||
@@ -6,8 +6,7 @@ class SystemProxy {
|
||||
if (Platform.isMacOS) {
|
||||
_setProxyServerMacOS("127.0.0.1:$port", enableSsl);
|
||||
} else if (Platform.isWindows) {
|
||||
_setProxyServerWindows("127.0.0.1:$port");
|
||||
setProxyEnableWindows(true);
|
||||
_setProxyServerWindows("127.0.0.1:$port").then((value) => setProxyEnableWindows(true));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ class X509Generate {
|
||||
|
||||
// Add Validity
|
||||
var validitySeq = ASN1Sequence();
|
||||
validitySeq.add(ASN1UtcTime(DateTime.now().toUtc()));
|
||||
validitySeq.add(ASN1UtcTime(DateTime.now().subtract(const Duration(days: 3)).toUtc()));
|
||||
validitySeq.add(ASN1UtcTime(DateTime.now().add(Duration(days: days)).toUtc()));
|
||||
data.add(validitySeq);
|
||||
|
||||
|
||||
@@ -30,13 +30,6 @@ class _SocketLaunchState extends State<SocketLaunch> with WindowListener {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
void onWindowMinimize() {
|
||||
started = false;
|
||||
widget.proxyServer.stop();
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@override
|
||||
void onWindowClose() {
|
||||
started = false;
|
||||
|
||||
@@ -26,7 +26,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
|
||||
|
||||
FlutterWindow window(project);
|
||||
Win32Window::Point origin(10, 10);
|
||||
Win32Window::Size size(960, 800);
|
||||
Win32Window::Size size(980, 680);
|
||||
if (!window.Create(L"ProxyPin", origin, size)) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user