MCPcopy Create free account
hub / github.com/daodst/chat / GetServerKeys

Method GetServerKeys

federationapi/federationapi_test.go:63–102  ·  view source on GitHub ↗
(ctx context.Context, matrixServer gomatrixserverlib.ServerName)

Source from the content-addressed store, hash-verified

61}
62
63func (f *fedClient) GetServerKeys(ctx context.Context, matrixServer gomatrixserverlib.ServerName) (gomatrixserverlib.ServerKeys, error) {
64 f.fedClientMutex.Lock()
65 defer f.fedClientMutex.Unlock()
66 fmt.Println("GetServerKeys:", matrixServer)
67 var keys gomatrixserverlib.ServerKeys
68 var keyID gomatrixserverlib.KeyID
69 var pkey ed25519.PrivateKey
70 for srv, data := range f.keys {
71 if srv == matrixServer {
72 pkey = data.key
73 keyID = data.keyID
74 break
75 }
76 }
77 if pkey == nil {
78 return keys, nil
79 }
80
81 keys.ServerName = matrixServer
82 keys.ValidUntilTS = gomatrixserverlib.AsTimestamp(time.Now().Add(10 * time.Hour))
83 publicKey := pkey.Public().(ed25519.PublicKey)
84 keys.VerifyKeys = map[gomatrixserverlib.KeyID]gomatrixserverlib.VerifyKey{
85 keyID: {
86 Key: gomatrixserverlib.Base64Bytes(publicKey),
87 },
88 }
89 toSign, err := json.Marshal(keys.ServerKeyFields)
90 if err != nil {
91 return keys, err
92 }
93
94 keys.Raw, err = gomatrixserverlib.SignJSON(
95 string(matrixServer), keyID, pkey, toSign,
96 )
97 if err != nil {
98 return keys, err
99 }
100
101 return keys, nil
102}
103
104func (f *fedClient) MakeJoin(ctx context.Context, s gomatrixserverlib.ServerName, roomID, userID string, roomVersions []gomatrixserverlib.RoomVersion) (res gomatrixserverlib.RespMakeJoin, err error) {
105 for _, r := range f.allowJoins {

Callers 1

Calls 3

LockMethod · 0.80
UnlockMethod · 0.80
AddMethod · 0.80

Tested by

no test coverage detected