MCPcopy Create free account
hub / github.com/LagrangeDev/LagrangeGo / ParseKeyExchangeResponse

Function ParseKeyExchangeResponse

client/packets/wtlogin/exchange.go:56–81  ·  view source on GitHub ↗
(response []byte, sig *auth.SigInfo)

Source from the content-addressed store, hash-verified

54}
55
56func ParseKeyExchangeResponse(response []byte, sig *auth.SigInfo) error {
57 var p login.SsoKeyExchangeResponse
58 err := proto.Unmarshal(response, &p)
59 if err != nil {
60 return err
61 }
62
63 shareKey, err := ecdh.P256().Exange(p.PublicKey)
64 if err != nil {
65 return err
66 }
67
68 var decPb login.SsoKeyExchangeDecrypted
69 data, err := crypto.AESGCMDecrypt(p.GcmEncrypted, shareKey)
70 if err != nil {
71 return err
72 }
73 err = proto.Unmarshal(data, &decPb)
74 if err != nil {
75 return err
76 }
77 sig.ExchangeKey = decPb.GcmKey
78 sig.KeySig = decPb.Sign
79
80 return nil
81}

Callers 1

keyExchangeMethod · 0.92

Calls 4

UnmarshalFunction · 0.92
P256Function · 0.92
AESGCMDecryptFunction · 0.92
ExangeMethod · 0.65

Tested by

no test coverage detected