move gotd fork into repo. (#111)
- update to latest telegram layer - remove some references to fields in tg.Entities that don't exist in the schema - originally added here: https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e - referenced here - https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3 - https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
package crypto
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
|
||||
)
|
||||
|
||||
func TestAuthKeyID(t *testing.T) {
|
||||
var k Key
|
||||
for i := 0; i < 256; i++ {
|
||||
k[i] = byte(i)
|
||||
}
|
||||
|
||||
if k.ID() != [8]byte{50, 209, 88, 110, 164, 87, 223, 200} {
|
||||
t.Error("bad id")
|
||||
}
|
||||
if k.AuxHash() != [8]byte{73, 22, 214, 189, 183, 247, 142, 104} {
|
||||
t.Error("bad aux hash")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCalcKey(t *testing.T) {
|
||||
var k Key
|
||||
for i := 0; i < 256; i++ {
|
||||
k[i] = byte(i)
|
||||
}
|
||||
var m bin.Int128
|
||||
for i := 0; i < 16; i++ {
|
||||
m[i] = byte(i)
|
||||
}
|
||||
|
||||
t.Run("Client", func(t *testing.T) {
|
||||
key, iv := Keys(k, m, Client)
|
||||
if key != [32]byte{
|
||||
112, 78, 208, 156, 139, 65, 102, 138, 232, 249, 157, 36, 71, 56, 247, 29,
|
||||
189, 220, 68, 70, 155, 107, 189, 74, 168, 87, 61, 208, 66, 189, 5, 158,
|
||||
} {
|
||||
t.Error("bad key")
|
||||
}
|
||||
if iv != [32]byte{
|
||||
77, 38, 96, 0, 165, 80, 237, 171, 191, 76, 124, 228, 15, 208, 4, 60, 201, 34, 48,
|
||||
24, 76, 211, 23, 165, 204, 156, 36, 130, 253, 59, 147, 24,
|
||||
} {
|
||||
t.Error("bad iv")
|
||||
}
|
||||
})
|
||||
t.Run("Server", func(t *testing.T) {
|
||||
key, iv := Keys(k, m, Server)
|
||||
if key != [32]byte{
|
||||
33, 119, 37, 121, 155, 36, 88, 6, 69, 129, 116, 161, 252, 251, 200, 131, 144, 104,
|
||||
7, 177, 80, 51, 253, 208, 234, 43, 77, 105, 207, 156, 54, 78,
|
||||
} {
|
||||
t.Error("bad key")
|
||||
}
|
||||
if iv != [32]byte{
|
||||
102, 154, 101, 56, 145, 122, 79, 165, 108, 163, 35, 96, 164, 49, 201, 22, 11, 228,
|
||||
173, 136, 113, 64, 152, 13, 171, 145, 206, 123, 220, 71, 255, 188,
|
||||
} {
|
||||
t.Error("bad iv")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestAuthKeyJSON(t *testing.T) {
|
||||
a := require.New(t)
|
||||
var k Key
|
||||
for i := 0; i < 256; i++ {
|
||||
k[i] = byte(i)
|
||||
}
|
||||
key := k.WithID()
|
||||
|
||||
var buf bytes.Buffer
|
||||
a.NoError(json.NewEncoder(&buf).Encode(key))
|
||||
var got AuthKey
|
||||
a.NoError(json.NewDecoder(&buf).Decode(&got))
|
||||
|
||||
a.Equal(key, got)
|
||||
}
|
||||
|
||||
func TestAuthKey_UnmarshalJSON(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
data string
|
||||
want AuthKey
|
||||
wantErr bool
|
||||
}{
|
||||
{"BadValue", `{"value":1, "id":1}`, AuthKey{}, true},
|
||||
{"BadID", `{"unknown": false, "value":"Cg==", "id":true}`, AuthKey{}, true},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
a := require.New(t)
|
||||
var key AuthKey
|
||||
err := key.UnmarshalJSON([]byte(tt.data))
|
||||
if tt.wantErr {
|
||||
a.Error(err)
|
||||
} else {
|
||||
a.NoError(err)
|
||||
a.Equal(tt.want, key)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user