]> gitweb.ps.run Git - matrix_esp_thesis/blob - esp32/esp_project/main/Verify.c
changes to olm and esp
[matrix_esp_thesis] / esp32 / esp_project / main / Verify.c
1 #include <matrix.h>\r
2 #include <mjson.h>\r
3 #include <olm/sas.h>\r
4 \r
5 #if !CONFIG_IDF_TARGET_LINUX\r
6 #include "freertos/FreeRTOS.h"\r
7 #include "freertos/task.h"\r
8 #include "esp_system.h"\r
9 #include "driver/gpio.h"\r
10 #endif\r
11 \r
12 #include <stdio.h>\r
13 \r
14 #define SERVER       "https://matrix.org"\r
15 #define USER_ID      "@pscho:matrix.org"\r
16 \r
17 #define DEVICE_ID    "ULZZOKJBYN"\r
18 #define SENDER_KEY   "cjP41XzRlY+pd8DoiBuKQJj9o15mrx6gkrpqTkAPZ2c"\r
19 #define ROOM_ID      "!XKFUjAsGrSSrpDFIxB:matrix.org"\r
20 #define EVENT_ID     "$vOS09eUaI0CduqAcaIU5ZVk6ljLQfLspz7UThP8vaUM"\r
21 #define SESSION_ID   "90UbGLue3ADVhvW7hFjoA2c6yg0JJKs/lPdMDZXnZAk"\r
22 \r
23 // main stack size: 3584\r
24 \r
25 #define STATIC static\r
26 \r
27 \r
28 \r
29 int\r
30 main(void)\r
31 {\r
32     MatrixClient * client = (MatrixClient*)malloc(sizeof(MatrixClient));\r
33     MatrixClientInit(client);\r
34 \r
35     MatrixHttpInit(&client->hc, SERVER);\r
36     MatrixClientSetUserId(client, USER_ID);\r
37 \r
38     MatrixClientLoginPassword(client,\r
39         "pscho",\r
40         "Wc23EbmB9G3faMq",\r
41         "Test1");\r
42     printf("deviceId: %s\n", client->deviceId);\r
43     MatrixClientGenerateOnetimeKeys(client, 10);\r
44     MatrixClientUploadOnetimeKeys(client);\r
45     MatrixClientUploadDeviceKeys(client);\r
46 \r
47     STATIC char eventBuffer[1024];\r
48     MatrixClientGetRoomEvent(client,\r
49         ROOM_ID,\r
50         EVENT_ID,\r
51         eventBuffer, 1024);\r
52     printf("event: %s\n", eventBuffer);\r
53 \r
54     #define SYNC_BUFFER_SIZE 1024*10\r
55 \r
56     // char * syncBuffer = (char*)malloc(SYNC_BUFFER_SIZE);\r
57     STATIC char syncBuffer[SYNC_BUFFER_SIZE];\r
58     STATIC char nextBatch[1024];\r
59 \r
60     while (! client->verified) {\r
61         MatrixClientSync(client, syncBuffer, SYNC_BUFFER_SIZE, nextBatch, 1024);\r
62     }\r
63 \r
64     printf("verified!\n");\r
65 \r
66     // create and share megolm out session\r
67     MatrixMegolmOutSession * megolmOutSession;\r
68     MatrixClientNewMegolmOutSession(client,\r
69         ROOM_ID,\r
70         &megolmOutSession);\r
71     printf("megolm session id: %.10s... key: %.10s...\n", megolmOutSession->id, megolmOutSession->key);\r
72     MatrixClientShareMegolmOutSession(client,\r
73         USER_ID,\r
74         "ULZZOKJBYN",\r
75         megolmOutSession);\r
76 \r
77     // send 10 random messages\r
78     for (int i = 0; i < 10; i++) {\r
79         static const char * msgs[] = { "A", "B", "C" };\r
80         static char msg[128];\r
81         snprintf(msg, 128, "{\"body\":\"%s\",\"msgtype\":\"m.text\"}", msgs[rand()%(sizeof(msgs)/sizeof(msgs[0]))]);\r
82 \r
83         MatrixClientSendEventEncrypted(client,\r
84             ROOM_ID,\r
85             "m.room.message",\r
86             msg);\r
87     }\r
88 \r
89     MatrixClientDeleteDevice(client);\r
90         \r
91     MatrixHttpDeinit(&client->hc);\r
92 \r
93     return 0;\r
94 }\r
95 \r
96 #include "wifi.h"\r
97 #include <esp_netif.h>\r
98 \r
99 void\r
100 app_main(void)\r
101 {\r
102     // wifi_init("Pixel_7762", "affeaffe");\r
103     // wifi_init("Hundehuette", "Affensicherespw55");\r
104     wifi_init("test", "/O801i25");\r
105 \r
106     esp_netif_ip_info_t ip_info;\r
107     esp_netif_get_ip_info(IP_EVENT_STA_GOT_IP,&ip_info);\r
108     printf("My IP: " IPSTR "\n", IP2STR(&ip_info.ip));\r
109     printf("My GW: " IPSTR "\n", IP2STR(&ip_info.gw));\r
110     printf("My NETMASK: " IPSTR "\n", IP2STR(&ip_info.netmask));\r
111 \r
112     // uint64_t bitmask = 0xffffffffffffffff;\r
113     // bitmask = bitmask & SOC_GPIO_VALID_GPIO_MASK;\r
114     // gpio_dump_io_configuration(stdout, bitmask);\r
115     gpio_set_direction(GPIO_NUM_2, GPIO_MODE_OUTPUT);\r
116     // gpio_dump_io_configuration(stdout, bitmask);\r
117 \r
118     main();\r
119 }\r