| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Goal here is to have a simple build environment and libraries to create your own TLS server. A simple 'hello world' is provided as example that can handle simple HTTPS requests and WebSocket clients.
cd pico_tls/certificate
Either RSA or EC
./create_cert_rsa.sh ./create_cert_ec.sh
This generates a self signed certificate in key.h/cert.h. Alternative is to create a 'certificate' folder with same file format anywhere else in include path.
hello_world/config/wifi.h
git submodule update --init --recursive
Option 1: Use a docker build image
./build_via_docker.sh
Option 2: build on a local ubuntu
Install pico dependencies
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi xxd python3 g++ bash
Build:
./build.sh
There are two different types of logs.
These are sent over UDP. Configure a host in "config/logging_config.h"
#define LOGGING_SERVER "192.168.100.150" #define LOGGING_SERVER_PORT 21000
and on the remote host:
netcat -ukl 21000
If it crashes you will see something like this
11 10619 Undef 16-bit instr sr = 0x6100002e 12 10619 R0 = 0x00000001 R8 = 0x20005b7c 13 10619 R1 = 0x00000001 R9 = 0x2000dfe8 14 10619 R2 = 0x2000f670 R10 = 0x000001a6 15 10619 R3 = 0x00000000 R11 = 0x2000fe68 16 10619 R4 = 0x2000dfd8 R12 = 0x2000fe5c 17 10619 R5 = 0x00000000 SP = 0x20041da0 18 10620 R6 = 0x20019398 LR = 0x2000fe68 19 10620 R7 = 0x20005b7c PC = 0x1000064c 20 10620 -> undef instr16: 0xdeff 21 10620 crashed at: 0x1000064c
using gdb and addresses you can see line where issue occurs:
# gdb ./build_docker/hello_world/hello_world.elf (gdb) info line *0x1000064c Line 302 of "/source/hello_world/http_session.cpp" starts at address 0x10000648 <_ZN11HTTPSession7on_recvEPhj+20> and ends at 0x10000654 <_ZN11HTTPSessionD2Ev>.
You can grab those via:
while true; do minicom -b 115200 -o -D /dev/ttyACM0; done
3.1. If you want full verbose mbedtls logs with packets, add the following
hello_world/config/mbedtls_config.h
#define MBEDTLS_DEBUG_C
3.2. If you want pico-tls/altcp mbedtls logs
hello_world/config/lwipopts.h
#define LWIP_DEBUG 1 #define ALTCP_MBEDTLS_DEBUG LWIP_DBG_ON #define PICO_TLS_DEBUG LWIP_DBG_ON
3.3. If you want TCP stack logs
Change any of the LWIP_DBG_OFF to LWIP_DBG_ON that you are interested in file below. Use a build that doesn't have NDEBUG defined.
hello_world/config/lwipopts_common.h
| Back | FazBrowse Home | New Git URL |