Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

frame.go 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package obfuscated2
  2. const (
  3. frameLenKey = 32
  4. frameLenIV = 16
  5. frameLenMagic = 4
  6. frameLenDC = 2
  7. frameOffsetFirst = 8
  8. frameOffsetKey = frameOffsetFirst + frameLenKey
  9. frameOffsetIV = frameOffsetKey + frameLenIV
  10. frameOffsetMagic = frameOffsetIV + frameLenMagic
  11. frameOffsetDC = frameOffsetMagic + frameLenDC
  12. frameLen = 64
  13. )
  14. // [frameOffsetFirst:frameOffsetKey:frameOffsetIV:frameOffsetMagic:frameOffsetDC:frameOffsetEnd]
  15. type Frame struct {
  16. data [frameLen]byte
  17. }
  18. func (f *Frame) Bytes() []byte {
  19. return f.data[:]
  20. }
  21. func (f *Frame) Key() []byte {
  22. return f.data[frameOffsetFirst:frameOffsetKey]
  23. }
  24. func (f *Frame) IV() []byte {
  25. return f.data[frameOffsetKey:frameOffsetIV]
  26. }
  27. func (f *Frame) Magic() []byte {
  28. return f.data[frameOffsetIV:frameOffsetMagic]
  29. }
  30. func (f *Frame) DC() []byte {
  31. return f.data[frameOffsetMagic:frameOffsetDC]
  32. }
  33. func (f *Frame) Unique() []byte {
  34. return f.data[frameOffsetFirst:frameOffsetDC]
  35. }
  36. func (f *Frame) Invert() (nf Frame) {
  37. nf = *f
  38. for i := 0; i < frameLenKey+frameLenIV; i++ {
  39. nf.data[frameOffsetFirst+i] = f.data[frameOffsetIV-1-i]
  40. }
  41. return
  42. }