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
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

handshake_frame_internal_test.go 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package obfuscated2
  2. import (
  3. "encoding/base64"
  4. "testing"
  5. "github.com/stretchr/testify/suite"
  6. )
  7. type HandshakeFrameTestSuite struct {
  8. suite.Suite
  9. }
  10. func (suite *HandshakeFrameTestSuite) Decode(value string) []byte {
  11. v, err := base64.RawStdEncoding.DecodeString(value)
  12. suite.NoError(err)
  13. return v
  14. }
  15. func (suite *HandshakeFrameTestSuite) Encode(value []byte) string {
  16. return base64.RawStdEncoding.EncodeToString(value)
  17. }
  18. func (suite *HandshakeFrameTestSuite) TestOk() {
  19. hf := handshakeFrame{}
  20. testFrame := suite.Decode(
  21. "L9TmCzzxl9bPKODBpZeVM/qqNUxQ/axxBup1S2ymbIfUd6f7YSyzzM9EmTFv2/XzGqJGEHuj2zofmUGBLghu5g")
  22. copy(hf.data[:], testFrame)
  23. suite.Equal("zyjgwaWXlTP6qjVMUP2scQbqdUtspmyH1Hen+2Ess8w", suite.Encode(hf.key()))
  24. suite.Equal("z0SZMW/b9fMaokYQe6PbOg", suite.Encode(hf.iv()))
  25. suite.Equal("H5lBgQ", suite.Encode(hf.connectionType()))
  26. suite.EqualValues(2094, hf.dc())
  27. inverted := hf.invert()
  28. suite.Equal("OtujexBGohrz9dtvMZlEz8yzLGH7p3fUh2ymbEt16gY", suite.Encode(inverted.key()))
  29. suite.Equal("caz9UEw1qvozlZelweAozw", suite.Encode(inverted.iv()))
  30. suite.Equal("H5lBgQ", suite.Encode(inverted.connectionType()))
  31. suite.EqualValues(2094, inverted.dc())
  32. }
  33. func TestHandshakeFrame(t *testing.T) {
  34. t.Parallel()
  35. suite.Run(t, &HandshakeFrameTestSuite{})
  36. }