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
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526272829303132333435363738
  1. package antireplay
  2. import "github.com/dgraph-io/ristretto"
  3. var (
  4. prefixObfuscated2 = []byte{0x00}
  5. prefixTLS = []byte{0x01}
  6. )
  7. type cache struct {
  8. data *ristretto.Cache
  9. }
  10. func (c *cache) AddObfuscated2(data []byte) {
  11. c.data.Set(keyObfuscated2(data), nil, int64(len(data)))
  12. }
  13. func (c *cache) AddTLS(data []byte) {
  14. c.data.Set(keyTLS(data), nil, int64(len(data)))
  15. }
  16. func (c *cache) HasObfuscated2(data []byte) bool {
  17. _, ok := c.data.Get(keyObfuscated2(data))
  18. return ok
  19. }
  20. func (c *cache) HasTLS(data []byte) bool {
  21. _, ok := c.data.Get(keyTLS(data))
  22. return ok
  23. }
  24. func keyObfuscated2(data []byte) string {
  25. return string(append(prefixObfuscated2, data...))
  26. }
  27. func keyTLS(data []byte) string {
  28. return string(append(prefixTLS, data...))
  29. }