fix key pair checking bug
This commit is contained in:
@ -11,7 +11,7 @@ import (
|
|||||||
type Client struct {
|
type Client struct {
|
||||||
Conn *net.Conn
|
Conn *net.Conn
|
||||||
Auth Auth
|
Auth Auth
|
||||||
KeyPair user.KeyPairResp
|
KeyPair *user.KeyPairResp
|
||||||
|
|
||||||
Name string
|
Name string
|
||||||
UUID uuid.UUID
|
UUID uuid.UUID
|
||||||
|
@ -47,7 +47,7 @@ func handleEncryptionRequest(c *Client, p pk.Packet) error {
|
|||||||
|
|
||||||
// 响应加密请求
|
// 响应加密请求
|
||||||
// Write Encryption Key Response
|
// Write Encryption Key Response
|
||||||
p, err = genEncryptionKeyResponse(key, er.PublicKey, er.VerifyToken, &c.KeyPair)
|
p, err = genEncryptionKeyResponse(key, er.PublicKey, er.VerifyToken, c.KeyPair)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("gen encryption key response fail: %v", err)
|
return fmt.Errorf("gen encryption key response fail: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -75,10 +75,13 @@ func (c *Client) join(ctx context.Context, d *mcnet.Dialer, addr string) error {
|
|||||||
return LoginErr{"handshake", err}
|
return LoginErr{"handshake", err}
|
||||||
}
|
}
|
||||||
// Login Start
|
// Login Start
|
||||||
c.KeyPair, err = user.GetOrFetchKeyPair(c.Auth.AsTk)
|
KeyPairResp, err := user.GetOrFetchKeyPair(c.Auth.AsTk)
|
||||||
KeyPair := pk.OptionEncoder[user.KeyPairResp]{
|
if err == nil {
|
||||||
|
c.KeyPair = &KeyPairResp
|
||||||
|
}
|
||||||
|
KeyPair := pk.OptionEncoder[*user.KeyPairResp]{
|
||||||
Has: err == nil,
|
Has: err == nil,
|
||||||
Val: c.KeyPair,
|
Val: &KeyPairResp,
|
||||||
}
|
}
|
||||||
c.UUID, err = uuid.Parse(c.Auth.UUID)
|
c.UUID, err = uuid.Parse(c.Auth.UUID)
|
||||||
PlayerUUID := pk.Option[pk.UUID, *pk.UUID]{
|
PlayerUUID := pk.Option[pk.UUID, *pk.UUID]{
|
||||||
|
Reference in New Issue
Block a user