4 #define SERVER "https://matrix.org"
\r
5 #define USER_ID "@example:matrix.org"
\r
6 #define ROOM_ID "!example:matrix.org"
\r
9 #define DEVICE_NAME ""
\r
11 // device id of another device to share the megolm session with
\r
12 // I used the device id of a logged in Element web session
\r
13 #define DEVICE_ID2 ""
\r
18 MatrixClient client;
\r
19 MatrixClientInit(&client);
\r
21 MatrixHttpInit(&client.hc, SERVER);
\r
23 MatrixClientSetUserId(&client, USER_ID);
\r
25 MatrixClientLoginPassword(&client,
\r
30 MatrixClientUploadDeviceKeys(&client);
\r
31 MatrixClientGenerateOnetimeKeys(&client, 10);
\r
32 MatrixClientUploadOnetimeKeys(&client);
\r
34 // create megolmsession
\r
35 MatrixMegolmOutSession * megolmOutSession;
\r
36 MatrixClientNewMegolmOutSession(&client,
\r
39 printf("megolm session id: %.10s... key: %.10s...\n", megolmOutSession->id, megolmOutSession->key);
\r
41 MatrixClientShareMegolmOutSession(&client,
\r
46 MatrixClientSendEventEncrypted(&client,
\r
49 "{\"body\":\"Hello\",\"msgtype\":\"m.text\"}");
\r
51 MatrixClientDeleteDevice(&client);
\r
53 MatrixHttpDeinit(&client.hc);
\r