abouttreesummaryrefslogcommitdiff
path: root/esp32/esp_project
diff options
context:
space:
mode:
authorPatrick2023-10-13 15:57:15 +0200
committerPatrick2023-10-13 15:57:15 +0200
commit9eaa420b7bf51cc81c50e7f4ca0f256498a07c86 (patch)
tree696c4397b60503be0e7a732ef24f6266cafcaa86 /esp32/esp_project
parent80dc4ce95cbe915a3aaa7e2e18f545916d6ec769 (diff)
downloadmatrix_esp_thesis-9eaa420b7bf51cc81c50e7f4ca0f256498a07c86.tar.gz
matrix_esp_thesis-9eaa420b7bf51cc81c50e7f4ca0f256498a07c86.zip
HTTP layer for ESP32, make static specifier in matrix.c optional by defining it as a macro
Diffstat (limited to 'esp32/esp_project')
-rw-r--r--esp32/esp_project/CMakeLists.txt3
-rw-r--r--esp32/esp_project/components/olm/CMakeLists.txt16
-rw-r--r--esp32/esp_project/main/CMakeLists.txt2
-rw-r--r--esp32/esp_project/main/main.c63
-rw-r--r--esp32/esp_project/main/wifi.c23
-rw-r--r--esp32/esp_project/sdkconfig48
6 files changed, 47 insertions, 108 deletions
diff --git a/esp32/esp_project/CMakeLists.txt b/esp32/esp_project/CMakeLists.txt
index 1d08676..897cd8e 100644
--- a/esp32/esp_project/CMakeLists.txt
+++ b/esp32/esp_project/CMakeLists.txt
@@ -4,3 +4,6 @@ cmake_minimum_required(VERSION 3.16)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(esp_project)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
+SET(CMAKE_CXX_COMPILER "C:/Espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe") \ No newline at end of file
diff --git a/esp32/esp_project/components/olm/CMakeLists.txt b/esp32/esp_project/components/olm/CMakeLists.txt
index 352ab9c..e17b8ad 100644
--- a/esp32/esp_project/components/olm/CMakeLists.txt
+++ b/esp32/esp_project/components/olm/CMakeLists.txt
@@ -1,6 +1,6 @@
idf_component_register(SRCS
"../../../../ext/olm/src/account.cpp"
- #"../../../../ext/olm/lib/crypto-algorithms/aes.c"
+ "../../../../ext/olm/lib/crypto-algorithms/aes.c"
"../../../../ext/olm/src/base64.cpp"
"../../../../ext/olm/src/cipher.cpp"
"../../../../ext/olm/src/crypto.cpp"
@@ -16,29 +16,23 @@ idf_component_register(SRCS
"../../../../ext/olm/src/pickle.cpp"
"../../../../ext/olm/src/pickle_encoding.c"
"../../../../ext/olm/src/pk.cpp"
+ "../../../../ext/olm/src/ratchet.cpp"
"../../../../ext/olm/src/sas.c"
"../../../../ext/olm/src/session.cpp"
"../../../../ext/olm/lib/crypto-algorithms/sha256.c"
"../../../../ext/olm/src/utility.cpp"
- "../../../../src/matrix.c"
- "../../../../src/matrix_http_mongoose.c"
- "../../../../ext/mongoose/mongoose.c"
- "../../../../ext/mjson/src/mjson.c"
INCLUDE_DIRS
"../../../../ext/olm/include"
"../../../../ext/olm/lib"
- "../../../../ext/mongoose"
- "../../../../ext/mjson/src"
"../../../../src"
REQUIRES
- esp_timer
- mbedtls)
+ esp_timer)
add_definitions(-DOLM_STATIC_DEFINE)
add_definitions(-DOLMLIB_VERSION_MAJOR=3)
add_definitions(-DOLMLIB_VERSION_MINOR=2)
add_definitions(-DOLMLIB_VERSION_PATCH=15)
-add_definitions(-DMG_ENABLE_MBEDTLS=1)
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -Wl,--allow-multiple-definition")
+SET(CMAKE_CXX_COMPILER "C:/Espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe")
diff --git a/esp32/esp_project/main/CMakeLists.txt b/esp32/esp_project/main/CMakeLists.txt
index d0c6abb..ddba2b1 100644
--- a/esp32/esp_project/main/CMakeLists.txt
+++ b/esp32/esp_project/main/CMakeLists.txt
@@ -1,2 +1,2 @@
-idf_component_register(SRCS "main.c" "wifi.c"
+idf_component_register(SRCS "wifi.c" "Verify.c"
INCLUDE_DIRS "") \ No newline at end of file
diff --git a/esp32/esp_project/main/main.c b/esp32/esp_project/main/main.c
deleted file mode 100644
index b090849..0000000
--- a/esp32/esp_project/main/main.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2010-2022 Espressif Systems (Shanghai) CO LTD
- *
- * SPDX-License-Identifier: CC0-1.0
- */
-
-#define OLMLIB_VERSION_MAJOR 3
-#define OLMLIB_VERSION_MINOR 2
-#define OLMLIB_VERSION_PATCH 15
-
-#define OLM_STATIC_DEFINE
-
-#include <mongoose.h>
-#include <olm/olm.h>
-#include <matrix.h>
-
-#include <esp_wifi.h>
-
-#define SERVER "https://matrix.org"
-#define USER_ID "@pscho:matrix.org"
-#define ROOM_ID "!XKFUjAsGrSSrpDFIxB:matrix.org"
-
-void
-app_main(void)
-{
- MatrixClient client;
- MatrixClientInit(&client,
- SERVER);
-
- MatrixHttpInit(&client);
-
- MatrixClientSetUserId(&client, USER_ID);
-
- MatrixClientLoginPassword(&client,
- "pscho",
- "Wc23EbmB9G3faMq",
- "Test1");
-
- MatrixClientUploadDeviceKey(&client);
- MatrixClientGenerateOnetimeKeys(&client, 10);
- MatrixClientUploadOnetimeKeys(&client);
-
- // create megolmsession
- MatrixMegolmOutSession * megolmOutSession;
- MatrixClientGetMegolmOutSession(&client,
- ROOM_ID,
- &megolmOutSession);
- printf("megolm session id: %.10s... key: %.10s...\n", megolmOutSession->id, megolmOutSession->key);
-
- MatrixClientShareMegolmOutSession(&client,
- USER_ID,
- "ULZZOKJBYN",
- megolmOutSession);
-
- MatrixClientSendEventEncrypted(&client,
- ROOM_ID,
- "m.room.message",
- "{\"body\":\"Hello\",\"msgtype\":\"m.text\"}");
-
- MatrixClientDeleteDevice(&client);
-
- MatrixHttpDeinit(&client);
-}
diff --git a/esp32/esp_project/main/wifi.c b/esp32/esp_project/main/wifi.c
index 07d1e41..788d61c 100644
--- a/esp32/esp_project/main/wifi.c
+++ b/esp32/esp_project/main/wifi.c
@@ -1,4 +1,9 @@
-// Code taken from the ESP32 IDF WiFi station Example
+/*
+ * SPDX-FileCopyrightText: 2010-2022 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: CC0-1.0
+ */
+
#include <string.h>
#include "esp_event.h"
@@ -13,8 +18,6 @@
#include "lwip/err.h"
#include "lwip/sys.h"
-#include "mongoose.h"
-
static EventGroupHandle_t s_wifi_event_group;
/* The event group allows multiple bits for each event, but we only care about
@@ -35,14 +38,14 @@ static void event_handler(void *arg, esp_event_base_t event_base,
if (s_retry_num < 3) {
esp_wifi_connect();
s_retry_num++;
- MG_INFO(("retry to connect to the AP"));
+ printf("retry to connect to the AP\n");
} else {
xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT);
}
- MG_ERROR(("connect to the AP fail"));
+ printf("connect to the AP fail\n");
} else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
ip_event_got_ip_t *event = (ip_event_got_ip_t *) event_data;
- MG_INFO(("IP ADDRESS:" IPSTR, IP2STR(&event->ip_info.ip)));
+ printf("IP ADDRESS:" IPSTR "\n", IP2STR(&event->ip_info.ip));
s_retry_num = 0;
xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT);
}
@@ -81,18 +84,18 @@ void wifi_init(const char *ssid, const char *pass) {
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &c));
ESP_ERROR_CHECK(esp_wifi_start());
- MG_DEBUG(("wifi_init_sta finished."));
+ printf("wifi_init_sta finished.\n");
EventBits_t bits = xEventGroupWaitBits(s_wifi_event_group,
WIFI_CONNECTED_BIT | WIFI_FAIL_BIT,
pdFALSE, pdFALSE, portMAX_DELAY);
if (bits & WIFI_CONNECTED_BIT) {
- MG_INFO(("connected to ap SSID:%s password:%s", ssid, pass));
+ printf("connected to ap SSID:%s password:%s\n", ssid, pass);
} else if (bits & WIFI_FAIL_BIT) {
- MG_ERROR(("Failed to connect to SSID:%s, password:%s", ssid, pass));
+ printf("Failed to connect to SSID:%s, password:%s\n", ssid, pass);
} else {
- MG_ERROR(("UNEXPECTED EVENT"));
+ printf("UNEXPECTED EVENT\n");
}
/* The event will not be processed after unregister */
diff --git a/esp32/esp_project/sdkconfig b/esp32/esp_project/sdkconfig
index c55b691..def88a3 100644
--- a/esp32/esp_project/sdkconfig
+++ b/esp32/esp_project/sdkconfig
@@ -338,15 +338,15 @@ CONFIG_PARTITION_TABLE_MD5=y
#
# Compiler options
#
-CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
-# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set
+# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set
+CONFIG_COMPILER_OPTIMIZATION_SIZE=y
# CONFIG_COMPILER_OPTIMIZATION_PERF is not set
# CONFIG_COMPILER_OPTIMIZATION_NONE is not set
-CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
-# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
+# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE is not set
+CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y
-CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
+CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=1
# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set
CONFIG_COMPILER_HIDE_PATHS_MACROS=y
# CONFIG_COMPILER_CXX_EXCEPTIONS is not set
@@ -516,7 +516,8 @@ CONFIG_ESP_TLS_USING_MBEDTLS=y
# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set
# CONFIG_ESP_TLS_SERVER is not set
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
-# CONFIG_ESP_TLS_INSECURE is not set
+CONFIG_ESP_TLS_INSECURE=y
+CONFIG_ESP_TLS_SKIP_SERVER_CERT_VERIFY=y
# end of ESP-TLS
#
@@ -793,7 +794,7 @@ CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0
CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
-CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
+CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y
# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set
# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set
@@ -997,7 +998,6 @@ CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1
#
# Port
#
-CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y
# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set
CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y
# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set
@@ -1026,8 +1026,7 @@ CONFIG_FREERTOS_DEBUG_OCDAWARE=y
CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y
# CONFIG_HAL_ASSERTION_DISABLE is not set
# CONFIG_HAL_ASSERTION_SILENT is not set
-# CONFIG_HAL_ASSERTION_ENABLE is not set
-CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
+CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=1
CONFIG_HAL_SPI_MASTER_FUNC_IN_IRAM=y
CONFIG_HAL_SPI_SLAVE_FUNC_IN_IRAM=y
# end of Hardware Abstraction Layer (HAL) and Low Level (LL)
@@ -1278,7 +1277,10 @@ CONFIG_MBEDTLS_TLS_ENABLED=y
#
# TLS Key Exchange Methods
#
-# CONFIG_MBEDTLS_PSK_MODES is not set
+CONFIG_MBEDTLS_PSK_MODES=y
+CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y
+CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_PSK=y
+CONFIG_MBEDTLS_KEY_EXCHANGE_RSA_PSK=y
CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y
@@ -1424,9 +1426,9 @@ CONFIG_MMU_PAGE_SIZE=0x10000
# CONFIG_SPI_FLASH_VERIFY_WRITE is not set
# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
-CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
+# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS is not set
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
-# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
+CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED=y
# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set
# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
@@ -1592,14 +1594,14 @@ CONFIG_LOG_BOOTLOADER_LEVEL=3
CONFIG_FLASHMODE_DIO=y
# CONFIG_FLASHMODE_DOUT is not set
CONFIG_MONITOR_BAUD=115200
-CONFIG_OPTIMIZATION_LEVEL_DEBUG=y
-CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y
-# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set
-# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set
-CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
-# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
+# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set
+# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set
+CONFIG_OPTIMIZATION_LEVEL_RELEASE=y
+CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y
+# CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED is not set
+CONFIG_OPTIMIZATION_ASSERTIONS_SILENT=y
# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
-CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2
+CONFIG_OPTIMIZATION_ASSERTION_LEVEL=1
# CONFIG_CXX_EXCEPTIONS is not set
CONFIG_STACK_CHECK_NONE=y
# CONFIG_STACK_CHECK_NORM is not set
@@ -1652,7 +1654,7 @@ CONFIG_ESP32_PANIC_PRINT_REBOOT=y
# CONFIG_ESP32_PANIC_GDBSTUB is not set
CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
-CONFIG_MAIN_TASK_STACK_SIZE=3584
+CONFIG_MAIN_TASK_STACK_SIZE=8192
CONFIG_CONSOLE_UART_DEFAULT=y
# CONFIG_CONSOLE_UART_CUSTOM is not set
# CONFIG_CONSOLE_UART_NONE is not set
@@ -1773,9 +1775,9 @@ CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y
# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set
CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
-CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
+# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS is not set
# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set
-# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
+CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED=y
# CONFIG_ESP32_ULP_COPROC_ENABLED is not set
CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
CONFIG_SUPPORT_TERMIOS=y