mirror of
https://github.com/GravitLauncher/Launcher
synced 2025-01-09 00:59:44 +03:00
[FEATURE] Улучшение основы для HWID
This commit is contained in:
parent
80e919f4a1
commit
8d1c7621cf
5 changed files with 51 additions and 4 deletions
|
@ -1,12 +1,16 @@
|
||||||
package pro.gravit.launchserver.auth.protect;
|
package pro.gravit.launchserver.auth.protect;
|
||||||
|
|
||||||
import pro.gravit.launcher.events.request.GetSecureLevelInfoRequestEvent;
|
import pro.gravit.launcher.events.request.GetSecureLevelInfoRequestEvent;
|
||||||
|
import pro.gravit.launcher.events.request.HardwareReportRequestEvent;
|
||||||
|
import pro.gravit.launcher.events.request.VerifySecureLevelKeyRequestEvent;
|
||||||
|
import pro.gravit.launchserver.auth.protect.interfaces.HardwareProtectHandler;
|
||||||
import pro.gravit.launchserver.auth.protect.interfaces.SecureProtectHandler;
|
import pro.gravit.launchserver.auth.protect.interfaces.SecureProtectHandler;
|
||||||
import pro.gravit.launchserver.socket.Client;
|
import pro.gravit.launchserver.socket.Client;
|
||||||
import pro.gravit.launchserver.socket.response.auth.AuthResponse;
|
import pro.gravit.launchserver.socket.response.auth.AuthResponse;
|
||||||
|
import pro.gravit.launchserver.socket.response.secure.HardwareReportResponse;
|
||||||
|
|
||||||
public class AdvancedProtectHandler extends ProtectHandler implements SecureProtectHandler {
|
public class AdvancedProtectHandler extends StdProtectHandler implements SecureProtectHandler, HardwareProtectHandler {
|
||||||
|
public boolean enableHardwareFeature;
|
||||||
@Override
|
@Override
|
||||||
public boolean allowGetAccessToken(AuthResponse.AuthContext context) {
|
public boolean allowGetAccessToken(AuthResponse.AuthContext context) {
|
||||||
return (context.authType == AuthResponse.ConnectTypes.CLIENT) && context.client.checkSign;
|
return (context.authType == AuthResponse.ConnectTypes.CLIENT) && context.client.checkSign;
|
||||||
|
@ -26,4 +30,24 @@ public GetSecureLevelInfoRequestEvent onGetSecureLevelInfo(GetSecureLevelInfoReq
|
||||||
public boolean allowGetSecureLevelInfo(Client client) {
|
public boolean allowGetSecureLevelInfo(Client client) {
|
||||||
return client.checkSign;
|
return client.checkSign;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onHardwareReport(HardwareReportResponse response, Client client) {
|
||||||
|
if(!enableHardwareFeature)
|
||||||
|
{
|
||||||
|
response.sendResult(new HardwareReportRequestEvent());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
response.sendResult(new HardwareReportRequestEvent());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VerifySecureLevelKeyRequestEvent onSuccessVerify(Client client) {
|
||||||
|
if(enableHardwareFeature)
|
||||||
|
{
|
||||||
|
return new VerifySecureLevelKeyRequestEvent(true);
|
||||||
|
}
|
||||||
|
return new VerifySecureLevelKeyRequestEvent();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
import pro.gravit.launcher.events.request.GetSecureLevelInfoRequestEvent;
|
import pro.gravit.launcher.events.request.GetSecureLevelInfoRequestEvent;
|
||||||
import pro.gravit.launcher.events.request.SecurityReportRequestEvent;
|
import pro.gravit.launcher.events.request.SecurityReportRequestEvent;
|
||||||
|
import pro.gravit.launcher.events.request.VerifySecureLevelKeyRequestEvent;
|
||||||
import pro.gravit.launchserver.socket.Client;
|
import pro.gravit.launchserver.socket.Client;
|
||||||
import pro.gravit.launchserver.socket.response.secure.SecurityReportResponse;
|
import pro.gravit.launchserver.socket.response.secure.SecurityReportResponse;
|
||||||
import pro.gravit.utils.helper.SecurityHelper;
|
import pro.gravit.utils.helper.SecurityHelper;
|
||||||
|
@ -31,4 +32,8 @@ default void verifySecureLevelKey(byte[] publicKey, byte[] data, byte[] signatur
|
||||||
default SecurityReportRequestEvent onSecurityReport(SecurityReportResponse report, Client client) {
|
default SecurityReportRequestEvent onSecurityReport(SecurityReportResponse report, Client client) {
|
||||||
return new SecurityReportRequestEvent();
|
return new SecurityReportRequestEvent();
|
||||||
}
|
}
|
||||||
|
default VerifySecureLevelKeyRequestEvent onSuccessVerify(Client client)
|
||||||
|
{
|
||||||
|
return new VerifySecureLevelKeyRequestEvent();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package pro.gravit.launchserver.socket.response.secure;
|
package pro.gravit.launchserver.socket.response.secure;
|
||||||
|
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
|
import pro.gravit.launcher.events.request.HardwareReportRequestEvent;
|
||||||
import pro.gravit.launcher.request.secure.HardwareReportRequest;
|
import pro.gravit.launcher.request.secure.HardwareReportRequest;
|
||||||
|
import pro.gravit.launchserver.auth.protect.interfaces.HardwareProtectHandler;
|
||||||
import pro.gravit.launchserver.socket.Client;
|
import pro.gravit.launchserver.socket.Client;
|
||||||
import pro.gravit.launchserver.socket.response.SimpleResponse;
|
import pro.gravit.launchserver.socket.response.SimpleResponse;
|
||||||
|
|
||||||
|
@ -15,6 +17,13 @@ public String getType() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(ChannelHandlerContext ctx, Client client) throws Exception {
|
public void execute(ChannelHandlerContext ctx, Client client) throws Exception {
|
||||||
|
if(server.config.protectHandler instanceof HardwareProtectHandler)
|
||||||
|
{
|
||||||
|
((HardwareProtectHandler) server.config.protectHandler).onHardwareReport(this, client);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sendResult(new HardwareReportRequestEvent());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,6 @@ public void execute(ChannelHandlerContext ctx, Client client) throws Exception {
|
||||||
}
|
}
|
||||||
client.trustLevel.keyChecked = true;
|
client.trustLevel.keyChecked = true;
|
||||||
client.trustLevel.publicKey = publicKey;
|
client.trustLevel.publicKey = publicKey;
|
||||||
sendResult(new VerifySecureLevelKeyRequestEvent());
|
sendResult(secureProtectHandler.onSuccessVerify(client));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,15 @@
|
||||||
import pro.gravit.launcher.events.RequestEvent;
|
import pro.gravit.launcher.events.RequestEvent;
|
||||||
|
|
||||||
public class VerifySecureLevelKeyRequestEvent extends RequestEvent {
|
public class VerifySecureLevelKeyRequestEvent extends RequestEvent {
|
||||||
|
public boolean needHardwareInfo;
|
||||||
|
|
||||||
|
public VerifySecureLevelKeyRequestEvent() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public VerifySecureLevelKeyRequestEvent(boolean needHardwareInfo) {
|
||||||
|
this.needHardwareInfo = needHardwareInfo;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getType() {
|
public String getType() {
|
||||||
return "verifySecureLevelKey";
|
return "verifySecureLevelKey";
|
||||||
|
|
Loading…
Reference in a new issue