Pre-mbedTLS cleanup checkpoint - OpenSSL migration complete, all tests passing

This commit is contained in:
2025-08-14 11:51:26 -04:00
parent 5a7c796873
commit 6d7b709f9a
17 changed files with 1438 additions and 49 deletions

View File

@@ -2,7 +2,7 @@
A comprehensive, self-contained C library for NOSTR protocol implementation with no external cryptographic dependencies.
[![Version](https://img.shields.io/badge/version-0.1.8-blue.svg)](VERSION)
[![Version](https://img.shields.io/badge/version-0.1.20-blue.svg)](VERSION)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](#license)
[![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](#building)
@@ -142,7 +142,7 @@ make clean
**Included:**
- cJSON (JSON parsing)
- secp256k1 (elliptic curve cryptography)
- mbedTLS components (selected crypto functions)
- OpenSSL (TLS for WebSocket connections)
## 📚 API Documentation
@@ -309,18 +309,25 @@ cd tests && make test
### Self-Contained Library
The `libnostr_core.a` file is completely self-contained with **no external dependencies**:
**x64 Library:** The `libnostr_core.a` file is completely self-contained with **no external dependencies**:
- ✅ **No OpenSSL required**
- ✅ **All OpenSSL code embedded**
- ✅ **No libwally required**
- ✅ **No system secp256k1 required**
- ✅ **Only needs math library (`-lm`)**
```bash
# This is all you need:
# x64 - This is all you need:
gcc your_app.c ./libnostr_core.a -lm -o your_app
```
**ARM64 Library:** The `libnostr_core_arm64.a` requires system OpenSSL:
```bash
# ARM64 - Requires OpenSSL libraries:
aarch64-linux-gnu-gcc your_app.c ./libnostr_core_arm64.a -lssl -lcrypto -lm -o your_app
```
## 🔧 Configuration
### Compile-Time Options
@@ -377,7 +384,7 @@ make arm64
## 📈 Version History
Current version: **0.1.8**
Current version: **0.1.20**
The library uses automatic semantic versioning based on Git tags. Each build increments the patch version automatically.
@@ -400,7 +407,7 @@ cd ..
```
**Library too large:**
The library is intentionally large (~2.4MB) because it includes all secp256k1 cryptographic functions for complete self-containment.
The x64 library is intentionally large (~15MB) because it includes all secp256k1 cryptographic functions and OpenSSL for complete self-containment. The ARM64 library is smaller (~2.4MB) as it links against system OpenSSL.
**Linking errors:**
Make sure to include the math library: