mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
AddYggdrasilLogin
This commit is contained in:
parent
eb8ccc43d7
commit
3c97193b70
6 changed files with 156 additions and 25 deletions
|
|
@ -26,6 +26,7 @@ using MinecraftClient.Proxy;
|
|||
using MinecraftClient.Scripting;
|
||||
using Newtonsoft.Json;
|
||||
using static MinecraftClient.Settings;
|
||||
using static MinecraftClient.Settings.MainConfigHealper.MainConfig.GeneralConfig;
|
||||
|
||||
namespace MinecraftClient.Protocol.Handlers
|
||||
{
|
||||
|
|
@ -2562,7 +2563,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
string serverID = dataTypes.ReadNextString(packetData);
|
||||
byte[] serverPublicKey = dataTypes.ReadNextByteArray(packetData);
|
||||
byte[] token = dataTypes.ReadNextByteArray(packetData);
|
||||
return StartEncryption(handler.GetUserUuidStr(), handler.GetSessionID(), token, serverID,
|
||||
return StartEncryption(handler.GetUserUuidStr(), handler.GetSessionID(), Config.Main.General.AccountType, token, serverID,
|
||||
serverPublicKey, playerKeyPair, session);
|
||||
}
|
||||
else if (packetID == 0x02) //Login successful
|
||||
|
|
@ -2587,7 +2588,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
/// Start network encryption. Automatically called by Login() if the server requests encryption.
|
||||
/// </summary>
|
||||
/// <returns>True if encryption was successful</returns>
|
||||
private bool StartEncryption(string uuid, string sessionID, byte[] token, string serverIDhash,
|
||||
private bool StartEncryption(string uuid, string sessionID, LoginType type, byte[] token, string serverIDhash,
|
||||
byte[] serverPublicKey, PlayerKeyPair? playerKeyPair, SessionToken session)
|
||||
{
|
||||
RSACryptoServiceProvider RSAService = CryptoHandler.DecodeRSAPublicKey(serverPublicKey)!;
|
||||
|
|
@ -2613,7 +2614,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
string serverHash = CryptoHandler.GetServerHash(serverIDhash, serverPublicKey, secretKey);
|
||||
|
||||
if (ProtocolHandler.SessionCheck(uuid, sessionID, serverHash))
|
||||
if ((type == LoginType.mojang && ProtocolHandler.SessionCheck(uuid, sessionID, serverHash) )|| (type == LoginType.Yggdrasil && ProtocolHandler.YggdrasilSessionCheck(uuid, sessionID, serverHash)))
|
||||
{
|
||||
session.ServerIDhash = serverIDhash;
|
||||
session.ServerPublicKey = serverPublicKey;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue