Octol1ttle / ElyPrismLauncher

PrismLauncher with Mojang accounts replaced with Ely.by
GNU General Public License v3.0
111 stars 4 forks source link

Cannot join my server (using ely.by account) with combo auth mod #17

Open Spicytin opened 5 months ago

Spicytin commented 5 months ago

Combo auth is a fabric mod that allows both microsoft and ely.by players to connect to the server if the online mode is enabled and the enforce-secure-profile=false is set to false.

Now when I try to join my server with the mod using ely.by acc from this launcher, it results in "Invalid signature for profile public key." error in the client and disconnects me on my srv, even I already disabled that secure profile option and restarted the server to make the changes. Looking at server console, it shows this: [10:34:35] [Server thread/ERROR]: Failed to verify Services signature java.security.SignatureException: Bad signature length: got 1 but was expecting 512 at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:215) ~[?:?] at java.security.Signature$Delegate.engineVerify(Signature.java:1435) ~[?:?] at java.security.Signature.verify(Signature.java:789) ~[?:?] at net.minecraft.class_7500.method_44171(class_7500.java:28) ~[server-intermediary.jar:?] at net.minecraft.class_7500.method_44173(class_7500.java:53) ~[server-intermediary.jar:?] at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90) ~[?:?] at java.util.AbstractList$RandomAccessSpliterator.tryAdvance(AbstractList.java:706) ~[?:?] at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129) ~[?:?] at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230) ~[?:?] at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:632) ~[?:?] at net.minecraft.class_7500.method_51496(class_7500.java:50) ~[server-intermediary.jar:?] at net.minecraft.class_7500.method_44177(class_7500.java:23) ~[server-intermediary.jar:?] at net.minecraft.class_7428$class_7443.method_44205(class_7428.java:74) ~[server-intermediary.jar:?] at net.minecraft.class_7428.method_43550(class_7428.java:30) ~[server-intermediary.jar:?] at net.minecraft.class_7822$class_7823.method_46300(class_7822.java:42) ~[server-intermediary.jar:?] at net.minecraft.class_3244.method_46367(class_3244.java:1809) ~[server-intermediary.jar:?] at net.minecraft.class_7861.method_46617(class_7861.java:19) ~[server-intermediary.jar:?] at net.minecraft.class_7861.method_11054(class_7861.java:7) ~[server-intermediary.jar:?] at net.minecraft.class_2600.method_11072(class_2600.java:24) ~[server-intermediary.jar:?] at net.minecraft.class_3738.run(class_3738.java:18) ~[server-intermediary.jar:?] at net.minecraft.class_1255.method_18859(class_1255.java:156) ~[server-intermediary.jar:?] at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:797) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:165) ~[server-intermediary.jar:?] at net.minecraft.class_1255.method_16075(class_1255.java:130) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:779) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:773) ~[server-intermediary.jar:?] at net.minecraft.class_1255.method_18857(class_1255.java:139) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:758) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:687) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:270) ~[server-intermediary.jar:?] at java.lang.Thread.run(Thread.java:840) ~[?:?]

However, I was able to join my server with my ely.by acc but from another prism fork PollyMC. Both elyprism and pollymc use the latest version of authlib. My friend plays the game with Legacy Launcher which uses ely.by's authlib, but he was able to join with the mod on the server. I'm not sure if this is the mod's or the launcher's fault, but the two launchers I mentioned don't have this issue with it so that's why Im reporting here.

Octol1ttle commented 5 months ago

However, I was able to join my server with my ely.by acc but from another prism fork PollyMC. Both elyprism and pollymc use the latest version of authlib. My friend plays the game with Legacy Launcher which uses ely.by's authlib, but he was able to join with the mod on the server.

That shouldn't be possible. The latest versions of authlib-injector and ely-authlib replace their chat signature with a dummy (that is 1 byte in size). This is required to trick the game into thinking chat messages are signed, thus hiding any warnings. Minecraft servers that don't use authlib-injector will reject such signatures, regardless of enforce-secure-profile.

Androser420 commented 3 months ago

Hey there, im not sure if i replied a little late but i might've found a solution to this! Try downloading authlib-injector from https://github.com/yushijinhun/authlib-injector/releases, put it in your mc server folder and add it to your server startup script by including a java flag like this:

java -javaagent:"./authlib-injector-1.2.5.jar"=ely.by # The rest of config...

I've tested it on both Linux and Windows with various launchers, including PollyMC, with it now working every time. I can't say with a 100% certainty it'll work out the same for you but it probably should.

GGSkyOne commented 3 months ago

Just install No Chat Reports mod to your server, works fine! You don't need to deal with authlib-injector and authlib yourself.