network: reset signature when reinitializing

This commit is contained in:
Bixilon 2023-03-14 20:25:58 +01:00
parent e2a8d0a0cf
commit b00087b6dc
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 11 additions and 1 deletions

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.data.chat.signature.signer
import de.bixilon.kutil.exception.Broken
import de.bixilon.minosoft.data.chat.signature.LastSeenMessageList
import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
@ -24,6 +25,8 @@ import java.util.*
interface MessageSigner {
fun reset(): Unit = Broken("Not yet implemented")
fun signMessage(privateKey: PrivateKey, message: String, preview: ChatComponent?, salt: Long, sender: UUID, time: Instant, lastSeen: LastSeenMessageList): ByteArray

View File

@ -32,6 +32,10 @@ class MessageSigner3(
) : MessageSigner {
private var index = AtomicInteger()
override fun reset() {
index.set(0)
}
override fun signMessage(privateKey: PrivateKey, message: String, preview: ChatComponent?, salt: Long, sender: UUID, time: Instant, lastSeen: LastSeenMessageList): ByteArray {
return signMessage(privateKey, message, salt, sender, time, lastSeen)
}

View File

@ -168,6 +168,9 @@ class InitializeS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
connection.settingsManager.sendClientSettings()
connection.sendBrand()
if (connection.version >= ProtocolVersions.V_1_19_4) { // TODO: find out version
connection.util.signer.reset()
}
connection.player.keyManagement.sendSession()
connection.state = PlayConnectionStates.SPAWNING