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:
Adam Van Ymeren
2025-06-27 20:03:37 -07:00
committed by GitHub
parent 0952df0244
commit 7a04f298d2
19264 changed files with 1539697 additions and 84 deletions
+50
View File
@@ -0,0 +1,50 @@
// Code generated by rsagen, DO NOT EDIT.
//
{{ range .InputLines -}}
// {{ printf "%s" . }}
{{ end -}}
//
package {{ .Package }}
import (
"crypto/rsa"
"math/big"
)
var _ = (*big.Int)(nil)
{{ define "chunks" -}}
{{- range chunks . 8 }}
{{ range . }}{{ printf "%#02x" . }},{{ end }}
{{- end }}
{{- end }}
{{ define "bigint-positive" -}}
new(big.Int).SetBytes([]byte{
{{- template "chunks" .Bytes }}
})
{{- end }}
{{ define "bigint" }}
{{- if eq .Sign -1 -}} new(big.Int).Neg( {{- end -}}
{{- template "bigint-positive" . -}}
{{- if eq .Sign -1 -}} ) {{- end -}}
{{ end }}
{{ define "pubkey" -}}
&rsa.PublicKey{
E: {{ .E }},
N: {{ template "bigint" .N }},
}
{{- end }}
{{ if not .Single }}
var {{ .Variable }} = []*rsa.PublicKey{
{{- range .Keys }}
{{ template "pubkey" . }}, // Fingerprint: {{ fingerprint . }}
{{- end }}
}
{{ else }}
var {{ .Variable }} = {{ template "pubkey" (single .Keys) }} // Fingerprint: {{ single .Keys | fingerprint }}
{{ end }}
+32
View File
@@ -0,0 +1,32 @@
// Code generated by rsagen, DO NOT EDIT.
package {{ .Package }}
import (
"crypto/rsa"
"fmt"
"testing"
"github.com/stretchr/testify/assert"
"go.mau.fi/mautrix-telegram/pkg/gotd/crypto"
)
func {{ .TestFunc }}(t *testing.T) {
fingerprint := func(pubkey *rsa.PublicKey) string {
return fmt.Sprintf("%08x", uint64(crypto.RSAFingerprint(pubkey)))
}
{{- if .Single }}
assert.Equal(t, {{ single .Keys | fingerprint | printf "%q" }}, fingerprint({{ .Variable }}))
{{- else }}
expected := []string{
{{- range .Keys }}
{{ fingerprint . | printf "%q" }},
{{- end }}
}
assert.Len(t, {{ .Variable }}, len(expected))
for i, pubkey := range {{ .Variable }} {
assert.Equal(t, expected[i], fingerprint(pubkey))
}
{{- end }}
}