Complete mbedTLS cleanup - Removed all mbedTLS dependencies and updated documentation
- Moved mbedTLS directories to Trash/ (mbedtls/, mbedtls-install/, mbedtls-arm64-install/) - Removed obsolete nostr_websocket_mbedtls.c implementation - Updated nostr_websocket/Makefile to use OpenSSL instead of mbedTLS - Updated nostr_websocket/README.md with OpenSSL migration notes - Updated nostr_websocket/EXPORT_GUIDE.md with OpenSSL instructions - All tests pass: crypto tests, static linking verification - Build system fully functional with OpenSSL-only dependencies
This commit is contained in:
@@ -8,11 +8,11 @@ The NOSTR WebSocket library consists of these key files for export:
|
||||
|
||||
### Core Files (Required)
|
||||
- `nostr_websocket_tls.h` - Header with all function declarations and constants
|
||||
- `nostr_websocket_mbedtls.c` - Main implementation using mbedTLS for SSL/TLS
|
||||
- `nostr_websocket_openssl.c` - Main implementation using OpenSSL for SSL/TLS
|
||||
- `../cjson/cJSON.h` and `../cjson/cJSON.c` - JSON parsing (lightweight)
|
||||
|
||||
### Dependencies
|
||||
- **mbedTLS** - For SSL/TLS support (wss:// connections)
|
||||
- **OpenSSL** - For SSL/TLS support (wss:// connections) - libssl, libcrypto
|
||||
- **Standard C libraries** - socket, networking, etc.
|
||||
|
||||
## Quick Integration
|
||||
@@ -21,23 +21,29 @@ The NOSTR WebSocket library consists of these key files for export:
|
||||
```bash
|
||||
# Copy the library files
|
||||
cp nostr_websocket_tls.h your_project/
|
||||
cp nostr_websocket_mbedtls.c your_project/
|
||||
cp nostr_websocket_openssl.c your_project/
|
||||
cp ../cjson/cJSON.h your_project/
|
||||
cp ../cjson/cJSON.c your_project/
|
||||
```
|
||||
|
||||
### 2. Install mbedTLS Dependency
|
||||
### 2. Install OpenSSL Dependency
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt-get install libmbedtls-dev
|
||||
sudo apt-get install libssl-dev
|
||||
|
||||
# Or build from source (see mbedTLS documentation)
|
||||
# CentOS/RHEL/Fedora
|
||||
sudo yum install openssl-devel
|
||||
# or
|
||||
sudo dnf install openssl-devel
|
||||
|
||||
# macOS (via Homebrew)
|
||||
brew install openssl
|
||||
```
|
||||
|
||||
### 3. Compile Your Project
|
||||
```bash
|
||||
gcc -o my_nostr_app my_app.c nostr_websocket_mbedtls.c cJSON.c \
|
||||
-lmbedtls -lmbedx509 -lmbedcrypto -lm
|
||||
gcc -o my_nostr_app my_app.c nostr_websocket_openssl.c cJSON.c \
|
||||
-lssl -lcrypto -lm
|
||||
```
|
||||
|
||||
## Basic Usage Example
|
||||
@@ -131,16 +137,17 @@ The library supports both TCP (`ws://`) and TLS (`wss://`) automatically based o
|
||||
|
||||
### Linux/Unix
|
||||
- Works out of the box with standard development tools
|
||||
- Requires: gcc, mbedTLS development headers
|
||||
- Requires: gcc, OpenSSL development headers (libssl-dev)
|
||||
|
||||
### Potential Windows Support
|
||||
### Windows Support
|
||||
- Would need Winsock2 adaptations in transport layer
|
||||
- mbedTLS is cross-platform compatible
|
||||
- OpenSSL is widely available on Windows
|
||||
|
||||
### Embedded Systems
|
||||
- Lightweight design suitable for embedded use
|
||||
- Memory usage: ~4KB per client + message buffers
|
||||
- No dynamic allocations in hot paths
|
||||
- OpenSSL provides optimized implementations for various architectures
|
||||
|
||||
## Library Design Benefits
|
||||
|
||||
@@ -178,7 +185,21 @@ The library handles all WebSocket protocol details, SSL/TLS, and NOSTR message f
|
||||
|
||||
- Based on WebSocket RFC 6455
|
||||
- Implements NOSTR WebSocket conventions
|
||||
- SSL/TLS via proven mbedTLS library
|
||||
- SSL/TLS via industry-standard OpenSSL library
|
||||
- Tested with major NOSTR relays
|
||||
|
||||
## Migration Notes
|
||||
|
||||
If you were previously using the mbedTLS version of this library:
|
||||
|
||||
### Code Changes Required
|
||||
- Update `#include` to reference `nostr_websocket_openssl.c` instead of `nostr_websocket_mbedtls.c`
|
||||
- Change linking flags from `-lmbedtls -lmbedx509 -lmbedcrypto` to `-lssl -lcrypto`
|
||||
- Install OpenSSL development headers instead of mbedTLS
|
||||
|
||||
### API Compatibility
|
||||
- All function signatures remain identical
|
||||
- No changes to your application code required
|
||||
- Same performance characteristics and behavior
|
||||
|
||||
This library provides a clean, efficient way to integrate NOSTR WebSocket functionality into any C project with minimal dependencies and maximum portability.
|
||||
|
||||
Reference in New Issue
Block a user