Commit Graph

43 Commits

Author SHA1 Message Date
Laan Tungir 55e2a9c68e nip13 validation added 2025-09-05 13:42:03 -04:00
Laan Tungir 445ab7a8f4 readme.md 2025-09-03 15:16:08 -04:00
Laan Tungir 33129d82fd remove exposed .h crypto headers 2025-09-02 12:36:52 -04:00
Laan Tungir c0d095e57b Streaming sha256 2025-08-19 11:24:48 -04:00
Laan Tungir e40f3037d3 version 2025-08-19 07:02:42 -04:00
Laan Tungir 77d92dbcf9 Nostr note validation added to nip01 2025-08-19 06:59:04 -04:00
Laan Tungir 1da4f6751e clean up 2025-08-17 14:14:52 -04:00
Laan Tungir 3ebfdc06c0 Fixed bug in nip44.c, was an error in ecdh_shared_secret. Added comments 2025-08-17 11:29:07 -04:00
Laan Tungir d8b342ca3f Fixed error in nip04 implementation. Now working 2025-08-17 10:42:38 -04:00
Laan Tungir df23fd618a comparison test for debugging 2025-08-16 17:48:02 -04:00
Laan Tungir 19452f45c2 remove secp256 from project 2025-08-16 14:09:26 -04:00
Laan Tungir 711a7cc15c feat: migrate to system dependencies from static linking
BREAKING CHANGE: Library now requires system-installed dependencies

Major Changes:
- Convert secp256k1 from bundled static lib to system dependency
- Convert OpenSSL from bundled static lib to system dependency
- Convert curl from bundled static lib to system dependency
- Update build.sh with pkg-config detection and fallback logic
- Remove all static library extraction/building logic
- Update README.md with new dependency requirements and installation

Build System:
- Add detect_system_secp256k1() with pkg-config support
- Add detect_system_openssl() with pkg-config support
- Add detect_system_curl() with pkg-config support
- Remove secp256k1 building/extraction from ar archive
- Update CFLAGS and LIBS to use system library variables
- Clear error messages for missing dependencies with install commands

Documentation:
- Add system dependency installation for Ubuntu/Debian/CentOS/macOS
- Update all compile/link examples to include -lssl -lcrypto -lcurl -lsecp256k1
- Remove references to 'self-contained' and 'no external dependencies'
- Update integration examples throughout README

Benefits:
- Smaller library size (only internal code bundled)
- Automatic security updates via system package manager
- Standard Linux library distribution pattern
- Reduced build complexity
- Better system integration with pkg-config

Required Installation:
Ubuntu/Debian: sudo apt install libssl-dev libcurl4-openssl-dev libsecp256k1-dev
CentOS/RHEL: sudo yum install openssl-devel libcurl-devel libsecp256k1-devel
macOS: brew install openssl curl secp256k1
2025-08-16 13:59:29 -04:00
Laan Tungir 58cabadc44 un-nest curl 2025-08-16 11:22:44 -04:00
Laan Tungir 77186c88dd secp256k1 2025-08-16 10:48:58 -04:00
Laan Tungir 2036d0165b Add in secp256k repo so that customer can build. 2025-08-16 10:39:49 -04:00
Laan Tungir 40dd3aa20b Updated build.sh to build curl, openssl, and 256k1 if needed 2025-08-16 10:26:39 -04:00
Laan Tungir 00df0cad99 Simplify build script directory validation
- Replace file-based validation with directory name check
- Now simply checks if current directory is named 'nostr_core_lib'
- More reliable and clearer error messages for customers
- Fixes issue where customers get validation errors when running from properly named directories
2025-08-16 09:45:27 -04:00
Laan Tungir 05fe1df8aa Update library usage documentation 2025-08-16 09:36:39 -04:00
Laan Tungir 98a802552b Fix build script path resolution for customer Makefile usage
- Added BUILD_DIR=/home/teknari/Sync/Programming/VibeCoding/nostr_core_lib to capture absolute build directory
- Changed relative paths to absolute paths in archive extraction
- Fixes 'No such file or directory' error when build.sh is called from customer Makefiles
- Maintains backward compatibility for all existing use cases
2025-08-16 09:34:57 -04:00
Laan Tungir 9fd4c61df7 Working in the mines 2025-08-16 08:51:04 -04:00
Laan Tungir 76e883fad4 Refactor and consolidate test suite
- Moved old tests from tests/old/ to main tests/ directory
- Renamed nostr_test_bip32.c to bip32_test.c for consistency
- Renamed nostr_crypto_test.c to crypto_test.c for consistency
- Renamed wss_test.c and moved from old directory
- Fixed unused variable warning in bip32_test.c
- Updated build system and workspace rules
- Cleaned up old compiled test executables
- Updated nostr_common.h and core_relays.c
- Removed obsolete nostr_core.h.old backup file

This consolidates all active tests into the main directory and removes
outdated test files while maintaining a clean, organized structure.
2025-08-16 08:38:41 -04:00
Laan Tungir c3a9482882 Completed refactoring to separate nip files, and updating build.sh 2025-08-16 07:42:48 -04:00
Laan Tungir 8ed9262c65 Last version before deleting Makefile and CmakeLists.txt 2025-08-15 16:32:59 -04:00
Laan Tungir 6014a250dd Final fix for curl callback function signature - use proper void* types 2025-08-15 09:14:53 -04:00
Laan Tungir f50384962d Fixed curl type warnings - callback function signature and timeout parameter casting 2025-08-15 09:12:55 -04:00
Laan Tungir c569c0c346 Improved POW 2025-08-15 07:47:16 -04:00
Laan Tungir 3d2537603c . 2025-08-14 19:15:55 -04:00
Laan Tungir d6a0bd67b2 . 2025-08-14 18:30:16 -04:00
Laan Tungir 9191d446d3 version 2025-08-14 17:52:45 -04:00
Laan Tungir f1c22bdf53 Add automatic dependency building to Makefile
- Add secp256k1 auto-building rule for x64 target
- Fix customer build errors with missing secp256k1/.libs/libsecp256k1.a
- Force clean rebuild when secp256k1 library is missing
- Customers can now run 'make' directly without manual dependency building
- Maintains existing ARM64 cross-compilation auto-building functionality
2025-08-14 17:43:33 -04:00
Laan Tungir 993ca0f2a1 . 2025-08-14 16:43:46 -04:00
Laan Tungir 77fadc2683 Fix submodule compatibility: Remove version.c dependency and include cjson source files
- Remove nostr_core/version.c from Makefile LIB_SOURCES to fix submodule build failures
- Remove cjson/ from .gitignore and add cjson source files to repository
- Consolidate cJSON.h into cjson/ directory (remove duplicate from nostr_core/)
- Simplify build.sh versioning to only manage git tags and VERSION file
- Update examples/version_test.c to work without version functions
- Consumer projects can now use 'make' directly without missing file errors
2025-08-14 16:40:34 -04:00
Laan Tungir 2637378bf0 clean up versioning 2025-08-14 16:26:37 -04:00
Laan Tungir c109c93382 Initial template structure from nostr_core_lib
- Complete C library template with OpenSSL-based crypto
- Comprehensive build system (Makefile, build.sh)
- Example code and test suite
- Documentation and usage guides
- Cross-platform compatibility (x64/ARM64)
- Production-ready structure for C library projects
2025-08-14 15:10:59 -04:00
Laan Tungir 0ace93e303 Adding in curl and openssl repos 2025-08-14 12:09:30 -04:00
Laan Tungir af2117b574 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
2025-08-14 11:59:03 -04:00
Laan Tungir 6d7b709f9a Pre-mbedTLS cleanup checkpoint - OpenSSL migration complete, all tests passing 2025-08-14 11:51:26 -04:00
Laan Tungir 5a7c796873 Last commit before switching from mbedtls to openssl 2025-08-14 09:58:24 -04:00
Laan Tungir 3aaa46bb9b cJSON.h added 2025-08-12 21:05:39 -04:00
Laan Tungir d257ae49f1 Fully statically linked for both x64 and arm64. Updated build.sh to always compile both versions 2025-08-11 06:54:50 -04:00
Laan Tungir ae4aa7cf80 added nostr_decode_npub 2025-08-09 11:40:34 -04:00
Laan Tungir e137560d64 . 2025-08-09 11:07:11 -04:00
Laan Tungir ca6b4754f9 First commit on a late git install 2025-08-09 10:23:28 -04:00