github.com/Mrs4s/MiraiGo@v0.0.0-20240226124653-54bdd873e3fe/internal/tlv/t400.go (about)

     1  package tlv
     2  
     3  import (
     4  	"time"
     5  
     6  	"github.com/Mrs4s/MiraiGo/binary"
     7  )
     8  
     9  func T400(g []byte, uin int64, guid, dpwd []byte, j2, j3 int64, randSeed []byte) []byte {
    10  	return binary.NewWriterF(func(w *binary.Writer) {
    11  		w.WriteUInt16(0x400)
    12  		pos := w.FillUInt16()
    13  		w.EncryptAndWrite(g, binary.NewWriterF(func(w *binary.Writer) {
    14  			w.WriteUInt16(1) // version
    15  			w.WriteUInt64(uint64(uin))
    16  			w.Write(guid)
    17  			w.Write(dpwd)
    18  			w.WriteUInt32(uint32(j2))
    19  			w.WriteUInt32(uint32(j3))
    20  			w.WriteUInt32(uint32(time.Now().Unix()))
    21  			w.Write(randSeed)
    22  		}))
    23  		w.WriteUInt16At(pos, uint16(w.Len()-4))
    24  	})
    25  }