1.19.3 Message signing support.

This commit is contained in:
BruceChen 2023-01-13 16:12:10 +08:00
parent e447fea16b
commit fe0b268878
13 changed files with 532 additions and 313 deletions

View file

@ -1,6 +1,7 @@
using System;
using System.Security.Cryptography;
using MinecraftClient.Protocol.Message;
using static MinecraftClient.Protocol.Message.LastSeenMessageList;
namespace MinecraftClient.Protocol.Keys
{
@ -43,7 +44,7 @@ namespace MinecraftClient.Protocol.Keys
}
/// <summary>
/// Sign message - 1.19.1 and above
/// Sign message - 1.19.1 and 1.19.2
/// </summary>
/// <param name="message">Message content</param>
/// <param name="uuid">Sender uuid</param>
@ -64,10 +65,21 @@ namespace MinecraftClient.Protocol.Keys
return msgSign;
}
public byte[] SignMessage(string message, DateTimeOffset timestamp, ref byte[] salt, int messageCount, Guid sender, Guid sessionUuid)
/// <summary>
/// Sign message - 1.19.3 and above
/// </summary>
/// <param name="message">Message content</param>
/// <param name="uuid">Sender uuid</param>
/// <param name="timestamp">Timestamp</param>
/// <param name="salt">Salt</param>
/// <param name="lastSeenMessages">LastSeenMessageList</param>
/// <returns>Signature data</returns>
public byte[] SignMessage(string message, Guid playerUuid, Guid chatUuid, int messageIndex, DateTimeOffset timestamp, ref byte[] salt, AcknowledgedMessage[] lastSeenMessages)
{
byte[] data = KeyUtils.GetSignatureData(message, timestamp, ref salt, messageCount, sender, sessionUuid);
return SignData(data);
byte[] bodySignData = KeyUtils.GetSignatureData_1_19_3(message, playerUuid, chatUuid, messageIndex, timestamp, ref salt, lastSeenMessages);
return SignData(bodySignData);
}
}
}