mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 02:43:15 +00:00
Mbedtls symbols and more (#508)
This commit is contained in:
parent
d860ba1f34
commit
f0f764baff
@ -10,6 +10,7 @@ list(APPEND PRIV_REQUIRES_LIST
|
||||
Tactility
|
||||
TactilityCore
|
||||
TactilityKernel
|
||||
mbedtls
|
||||
)
|
||||
|
||||
if (DEFINED ENV{ESP_IDF_VERSION})
|
||||
|
||||
5
TactilityC/Private/symbols/mbedtls.h
Normal file
5
TactilityC/Private/symbols/mbedtls.h
Normal file
@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include <private/elf_symbol.h>
|
||||
|
||||
extern const esp_elfsym mbedtls_symbols[];
|
||||
@ -64,8 +64,8 @@ extern long __fixdfdi(double a);
|
||||
// extern long long __fixtfti(long double a);
|
||||
// extern long long __fixxfti(long double a);
|
||||
|
||||
// extern unsigned int __fixunssfsi(float a);
|
||||
// extern unsigned int __fixunsdfsi(double a);
|
||||
extern unsigned int __fixunssfsi(float a);
|
||||
extern unsigned int __fixunsdfsi(double a);
|
||||
// extern unsigned int __fixunstfsi(long double a);
|
||||
// extern unsigned int __fixunsxfsi(long double a);
|
||||
|
||||
@ -79,8 +79,8 @@ extern unsigned long __fixunsdfdi(double a);
|
||||
// extern unsigned long long __fixunstfti(long double a);
|
||||
// extern unsigned long long __fixunsxfti(long double a);
|
||||
|
||||
// extern float __floatsisf(int i);
|
||||
// extern double __floatsidf(int i);
|
||||
extern float __floatsisf(int i);
|
||||
extern double __floatsidf(int i);
|
||||
// extern long double __floatsitf(int i);
|
||||
// extern long double __floatsixf(int i);
|
||||
|
||||
@ -146,6 +146,12 @@ int __gtsf2(float a, float b);
|
||||
int __gtdf2(double a, double b);
|
||||
// int __gttf2(long double a, long double b);
|
||||
|
||||
// GCC integer arithmetic helpers (needed on 32-bit targets for 64-bit ops)
|
||||
long long __divdi3(long long a, long long b);
|
||||
long long __moddi3(long long a, long long b);
|
||||
unsigned long long __udivdi3(unsigned long long a, unsigned long long b);
|
||||
unsigned long long __umoddi3(unsigned long long a, unsigned long long b);
|
||||
|
||||
} // extern "C"
|
||||
|
||||
const esp_elfsym gcc_soft_float_symbols[] = {
|
||||
@ -201,8 +207,8 @@ const esp_elfsym gcc_soft_float_symbols[] = {
|
||||
// ESP_ELFSYM_EXPORT(__fixtfti),
|
||||
// ESP_ELFSYM_EXPORT(__fixxfti),
|
||||
|
||||
// ESP_ELFSYM_EXPORT(__fixunssfsi),
|
||||
// ESP_ELFSYM_EXPORT(__fixunsdfsi),
|
||||
ESP_ELFSYM_EXPORT(__fixunssfsi),
|
||||
ESP_ELFSYM_EXPORT(__fixunsdfsi),
|
||||
// ESP_ELFSYM_EXPORT(__fixunstfsi),
|
||||
// ESP_ELFSYM_EXPORT(__fixunsxfsi),
|
||||
|
||||
@ -216,8 +222,8 @@ const esp_elfsym gcc_soft_float_symbols[] = {
|
||||
// ESP_ELFSYM_EXPORT(__fixunstfti),
|
||||
// ESP_ELFSYM_EXPORT(__fixunsxfti),
|
||||
|
||||
// ESP_ELFSYM_EXPORT(__floatsisf),
|
||||
// ESP_ELFSYM_EXPORT(__floatsidf),
|
||||
ESP_ELFSYM_EXPORT(__floatsisf),
|
||||
ESP_ELFSYM_EXPORT(__floatsidf),
|
||||
// ESP_ELFSYM_EXPORT(__floatsitf),
|
||||
// ESP_ELFSYM_EXPORT(__floatsixf),
|
||||
|
||||
@ -283,6 +289,12 @@ const esp_elfsym gcc_soft_float_symbols[] = {
|
||||
ESP_ELFSYM_EXPORT(__gtdf2),
|
||||
// ESP_ELFSYM_EXPORT(__gttf2),
|
||||
|
||||
// GCC integer arithmetic helpers
|
||||
ESP_ELFSYM_EXPORT(__divdi3),
|
||||
ESP_ELFSYM_EXPORT(__moddi3),
|
||||
ESP_ELFSYM_EXPORT(__udivdi3),
|
||||
ESP_ELFSYM_EXPORT(__umoddi3),
|
||||
|
||||
ESP_ELFSYM_END
|
||||
};
|
||||
|
||||
|
||||
100
TactilityC/Source/symbols/mbedtls.cpp
Normal file
100
TactilityC/Source/symbols/mbedtls.cpp
Normal file
@ -0,0 +1,100 @@
|
||||
#include <private/elf_symbol.h>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
|
||||
#include <symbols/mbedtls.h>
|
||||
|
||||
#include <mbedtls/ctr_drbg.h>
|
||||
#include <mbedtls/entropy.h>
|
||||
#include <mbedtls/cipher.h>
|
||||
#include <mbedtls/md.h>
|
||||
#include <mbedtls/bignum.h>
|
||||
#include <mbedtls/rsa.h>
|
||||
#include <mbedtls/pk.h>
|
||||
#include <mbedtls/ecp.h>
|
||||
#include <mbedtls/ecdsa.h>
|
||||
#include <mbedtls/ecdh.h>
|
||||
#include <mbedtls/error.h>
|
||||
|
||||
const esp_elfsym mbedtls_symbols[] = {
|
||||
// CTR_DRBG (random number generation)
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ctr_drbg_init),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ctr_drbg_free),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ctr_drbg_seed),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ctr_drbg_random),
|
||||
// Entropy
|
||||
ESP_ELFSYM_EXPORT(mbedtls_entropy_init),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_entropy_free),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_entropy_func),
|
||||
// Cipher
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_init),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_free),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_setup),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_setkey),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_set_iv),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_reset),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_update),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_finish),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_get_block_size),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_cipher_info_from_type),
|
||||
// Message digest / HMAC
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_init),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_free),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_setup),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_starts),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_update),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_finish),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_hmac_starts),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_hmac_update),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_hmac_finish),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_md_info_from_type),
|
||||
// Bignum (MPI)
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_init),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_free),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_read_binary),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_write_binary),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_size),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_bitlen),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_lset),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_set_bit),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_fill_random),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_mpi_exp_mod),
|
||||
// RSA
|
||||
ESP_ELFSYM_EXPORT(mbedtls_rsa_init),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_rsa_free),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_rsa_copy),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_rsa_get_len),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_rsa_check_pubkey),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_rsa_check_privkey),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_rsa_pkcs1_sign),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_rsa_pkcs1_verify),
|
||||
// Public key abstraction
|
||||
ESP_ELFSYM_EXPORT(mbedtls_pk_init),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_pk_free),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_pk_get_type),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_pk_parse_key),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_pk_parse_keyfile),
|
||||
// ECP (elliptic curves)
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecp_group_load),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecp_point_init),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecp_point_free),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecp_point_read_binary),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecp_point_write_binary),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecp_check_pubkey),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecp_check_privkey),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecp_mul),
|
||||
// ECDSA
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecdsa_init),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecdsa_free),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecdsa_genkey),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecdsa_from_keypair),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecdsa_sign),
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecdsa_verify),
|
||||
// ECDH
|
||||
ESP_ELFSYM_EXPORT(mbedtls_ecdh_compute_shared),
|
||||
// Error strings
|
||||
ESP_ELFSYM_EXPORT(mbedtls_strerror),
|
||||
// delimiter
|
||||
ESP_ELFSYM_END
|
||||
};
|
||||
@ -23,6 +23,7 @@
|
||||
#include "symbols/esp_http_client.h"
|
||||
#include "symbols/freertos.h"
|
||||
#include "symbols/gcc_soft_float.h"
|
||||
#include "symbols/mbedtls.h"
|
||||
#include "symbols/pthread.h"
|
||||
#include "symbols/stl.h"
|
||||
#include "symbols/string.h"
|
||||
@ -40,8 +41,12 @@
|
||||
#include <esp_netif.h>
|
||||
#include <fcntl.h>
|
||||
#include <lwip/sockets.h>
|
||||
#include <lwip/netdb.h>
|
||||
#include <lwip/inet.h>
|
||||
#include <sys/select.h>
|
||||
#include <locale.h>
|
||||
#include <setjmp.h>
|
||||
#include <strings.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/unistd.h>
|
||||
@ -80,10 +85,13 @@ const esp_elfsym main_symbols[] {
|
||||
ESP_ELFSYM_EXPORT(close),
|
||||
ESP_ELFSYM_EXPORT(rmdir),
|
||||
ESP_ELFSYM_EXPORT(unlink),
|
||||
// strings.h
|
||||
ESP_ELFSYM_EXPORT(explicit_bzero),
|
||||
// time.h
|
||||
ESP_ELFSYM_EXPORT(clock_gettime),
|
||||
ESP_ELFSYM_EXPORT(strftime),
|
||||
ESP_ELFSYM_EXPORT(time),
|
||||
ESP_ELFSYM_EXPORT(difftime),
|
||||
ESP_ELFSYM_EXPORT(localtime_r),
|
||||
ESP_ELFSYM_EXPORT(localtime),
|
||||
// esp_sntp.h
|
||||
@ -364,6 +372,12 @@ const esp_elfsym main_symbols[] {
|
||||
ESP_ELFSYM_EXPORT(lwip_accept),
|
||||
ESP_ELFSYM_EXPORT(lwip_getsockname),
|
||||
ESP_ELFSYM_EXPORT(lwip_send),
|
||||
ESP_ELFSYM_EXPORT(lwip_connect),
|
||||
ESP_ELFSYM_EXPORT(lwip_select),
|
||||
ESP_ELFSYM_EXPORT(lwip_gethostbyname),
|
||||
ESP_ELFSYM_EXPORT(ipaddr_addr),
|
||||
// POSIX socket names (VFS wrappers used when apps include <sys/socket.h>)
|
||||
ESP_ELFSYM_EXPORT(select),
|
||||
// sys/stat.h
|
||||
ESP_ELFSYM_EXPORT(stat),
|
||||
ESP_ELFSYM_EXPORT(mkdir),
|
||||
@ -418,6 +432,7 @@ uintptr_t tt_symbol_resolver(const char* symbolName) {
|
||||
string_symbols,
|
||||
esp_event_symbols,
|
||||
esp_http_client_symbols,
|
||||
mbedtls_symbols,
|
||||
};
|
||||
|
||||
for (const auto* symbols : all_symbols) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user