MIT License
© 2022 Tobias Staack
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- OpenSLL
- Crypto++
- ZLib
- NetCore
- NetCore
- NetCore
- Static Build
- Shared Build
- DLL Only Build
- Static Build
- Shared Build
Requires:
- nasm
- perl
- VC build tools
Install and Compile:
- Run Install.bat inside the Scripts folder.
- Enter the VC Path (e.g., C:\Program Files (x86)\Microsoft Visual Studio\2019).
- Enter the Perl path (e.g., C:\Strawberry).
- Enter the NASM path (e.g., C:\Users\Tobias\AppData\Local\bin\NASM).
[WARNING] Uses 'setx' to set NASM path to the system environment.
Build all:
make all
(include dependencies)make build
make sandbox
Build dependencies:
make cryptopp
make openssl-download
make openssl-unpack
make openssl-configure
make openssl-build
make openssl-install
Clean:
make cryptopp-clean
make openssl-clean
Clean all:
make clean
Build:
make netcore
make netclient
make netserver
make netwebsocket
Build sandbox:
make sandboxclient
make sandboxserver
make sandboxwebsocket
make sandboxfeatures
(use it to test functionality of NetCore Features)
Using WinSocket for Windows build and Unix Socket for Linux build.
- Client
- Server
- Websocket
- Peer Thread Pooling (definable amount of allowed peers inside a thread)
- Non-Blocking
- Http/s
- String
- Json
- Packet
- Thread
- Timer
- Pointer encryption (Runtime)
- XOR-String encryption (Runtime & Compiletime)
- Directory-Manager
- File-Manager
- Log-Manager
- AES (OpenSSL)
- RSA (CryptoPP)
- ZLib
- Base32
- Base64
- Hex (CryptoPP)
- MD5
- SHA1
- TOTP (Time-Based One-Time Password)
- NTP (Network Time Protocol)
- Custom import resolver
- Unsafe plain communication
- Safe hybrid-encrypted communication using RSA + AES combination
- Compression mode using zlib algorithm
- JSON-based packet data
- Raw packet data for a large amount of bytes
- Ping measuring using ICMP
- Unsafe plain communication
- Safe communication using TLS (SSL)
- Sanitize user input to prevent XSS