Bug fixes

This commit is contained in:
UnlegitDqrk
2026-02-06 22:39:26 +01:00
parent 0e5e0b5668
commit 566cddc33f
3 changed files with 21 additions and 27 deletions

View File

@@ -13,7 +13,6 @@ import org.openautonomousconnection.protocol.side.server.CustomConnectedClient;
import org.openautonomousconnection.protocol.side.server.events.S_CustomClientConnectedEvent;
import org.openautonomousconnection.protocol.versions.ProtocolVersion;
import org.openautonomousconnection.protocol.versions.v1_0_0.beta.INSResponseStatus;
import org.openautonomousconnection.protocol.versions.v1_0_0.beta.TOFUFeedback;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -140,10 +139,10 @@ public final class AuthPacket extends OACPacket {
try {
if (!protocolBridge.isVersionSupported(serverVersion)) {
setResponseCode(INSResponseStatus.RESPONSE_AUTH_FAILED);
if (protocolBridge.getProtocolClient() != null
&& protocolBridge.getProtocolClient().getClientINSConnection() != null) {
if (protocolBridge.getProtocolClient() != null && protocolBridge.getProtocolClient().getClientINSConnection() != null) {
protocolBridge.getProtocolClient().getClientINSConnection().disconnect();
}
return;
}
@@ -152,15 +151,9 @@ public final class AuthPacket extends OACPacket {
String caPrefix = objectInputStream.readUTF();
String caPem = objectInputStream.readUTF();
if (!caPrefix.matches("^[a-zA-Z0-9_-]+$")) {
setResponseCode(INSResponseStatus.RESPONSE_AUTH_FAILED);
return;
}
if (caPem.equalsIgnoreCase("N/A")) {
setResponseCode(INSResponseStatus.RESPONSE_AUTH_FAILED);
} else {
byte[] caBytes = caPem.getBytes(java.nio.charset.StandardCharsets.UTF_8);
java.security.MessageDigest md = java.security.MessageDigest.getInstance("SHA-256");
String fp = java.util.HexFormat.of().formatHex(md.digest(caBytes));
@@ -176,24 +169,20 @@ public final class AuthPacket extends OACPacket {
if (fpFile.exists()) {
String existing = FileUtils.readFileFull(fpFile).trim();
TOFUFeedback feedback = protocolBridge.getProtocolClient().insFingerprintChanged(existing, fp);
if (feedback == TOFUFeedback.DISCONNECT) {
if (!protocolBridge.getProtocolClient().trustNewINSFingerprint(existing, fp)) {
setResponseCode(INSResponseStatus.RESPONSE_AUTH_FAILED);
protocolBridge.getProtocolClient().getClientINSConnection().disconnect();
return;
}
if (feedback == TOFUFeedback.TRUST) {
} else {
FileUtils.writeFile(fpFile, fp + System.lineSeparator());
allowWritePem = true;
}
} else {
TOFUFeedback feedback = protocolBridge.getProtocolClient().trustINS(fp);
if (feedback == TOFUFeedback.DISCONNECT) {
if (protocolBridge.getProtocolClient().trustINS(fp)) {
setResponseCode(INSResponseStatus.RESPONSE_AUTH_FAILED);
protocolBridge.getProtocolClient().getClientINSConnection().disconnect();
return;
}
if (feedback == TOFUFeedback.TRUST) {
} else {
FileUtils.writeFile(fpFile, fp + System.lineSeparator());
allowWritePem = true;
}