mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
1.19.3 Message signing support.
This commit is contained in:
parent
e447fea16b
commit
fe0b268878
13 changed files with 532 additions and 313 deletions
|
|
@ -20,15 +20,19 @@ namespace MinecraftClient.Protocol
|
|||
|
||||
public string? DisplayName;
|
||||
|
||||
public bool Listed = true;
|
||||
|
||||
// Entity info
|
||||
|
||||
public Mapping.Entity? entity;
|
||||
|
||||
// For message signature
|
||||
|
||||
private readonly PublicKey? PublicKey;
|
||||
public Guid ChatUuid = Guid.Empty;
|
||||
|
||||
private readonly DateTime? KeyExpiresAt;
|
||||
private PublicKey? PublicKey;
|
||||
|
||||
private DateTime? KeyExpiresAt;
|
||||
|
||||
private bool lastMessageVerified;
|
||||
|
||||
|
|
@ -71,6 +75,28 @@ namespace MinecraftClient.Protocol
|
|||
precedingSignature = null;
|
||||
}
|
||||
|
||||
public void ClearPublicKey()
|
||||
{
|
||||
ChatUuid = Guid.Empty;
|
||||
PublicKey = null;
|
||||
KeyExpiresAt = null;
|
||||
}
|
||||
|
||||
public void SetPublicKey(Guid chatUuid, long publicKeyExpiryTime, byte[] encodedPublicKey, byte[] publicKeySignature)
|
||||
{
|
||||
ChatUuid = chatUuid;
|
||||
KeyExpiresAt = DateTimeOffset.FromUnixTimeMilliseconds(publicKeyExpiryTime).UtcDateTime;
|
||||
try
|
||||
{
|
||||
PublicKey = new PublicKey(encodedPublicKey, publicKeySignature);
|
||||
lastMessageVerified = true;
|
||||
}
|
||||
catch (System.Security.Cryptography.CryptographicException)
|
||||
{
|
||||
PublicKey = null;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsMessageChainLegal()
|
||||
{
|
||||
return lastMessageVerified;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue