Skip to content

[1.8-1.9] Invalid signature for profile public key #708

Description

@MelvinMod

On 1.8.x-1.9, some servers giving the error "Invalid signature for public key of profile". If ViaProxy is translating between 1.8.9 and 1.19+ it should translate the encryption.

Actually, I think the problem may be that:

  1. Client connects to ViaProxy on 1.8.9
  2. ViaProxy connects to the real server using 1.19+
  3. The real server sends a request for encryption with profile key requirements
  4. 1.8.9 encryption request is sent to ViaProxy
  5. Client sends encryption response 1.8.9 (verifyToken)
  6. ViaProxy translates this into 1.19+ encryption response
  7. But ViaProxy can not generate a valid signature because it does not have the profile keys

So the issue is on the side of any version of ViaProxy.

The solution would be to:

  1. Connect to ViaProxy with a newer protocol version that supports signature encryption
  2. Or pass the profile keys to ViaProxy somehow
  3. Or connect directly to the server with the correct version (it's somehow different on servers)

Game logs:

[14:23:11] [Client thread/INFO]: Connecting to 1227.0.0.1:25568
[14:23:12] [Client thread/INFO]: Logging in...
[14:23:12] [Netty Client IO #1/ERROR]: Exception caught in pipeline
io.netty.handler.codec.DecoderException: java.lang.IllegalArgumentException: Invalid signature for profile public key
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:473)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
	at net.minecraft.network.NettyCompressionDecoder.decode(NettyCompressionDecoder.java:33)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
	... (another 20+ lines of the Java stack trace) ...
Caused by: java.lang.IllegalArgumentException: Invalid signature for profile public key
	at net.minecraft.network.login.server.SPacketLoginSuccess.readPacketData(SPacketLoginSuccess.java:45)
	at net.minecraft.network.login.server.SPacketLoginSuccess.readPacketData(SPacketLoginSuccess.java:14)
	at net.minecraft.network.PacketBuffer.readPacketData(PacketBuffer.java:256)
	at net.minecraft.network.NetworkManager.handlePacket(NetworkManager.java:320)
	... (a few more lines) ...
[14:23:12] [Client thread/INFO]: Disconnecting: Invalid signature for profile public key

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions