The C++ edition of IPWorks OpenPGP is provided as a set of libraries in a variety of packages. Each package is designed to best suit your development environment. The sections below provide further details on each supported platform.
Libraries for windows are provided as dll files. Additionally, the full version of the toolkit includes static libraries. The lib folder of the installation includes the 32-bit dll and static library. The lib64 folder of the installation includes the 64-bit dll and static library.
Libraries for Linux are provided as compiled shared libraries (.so files). The lib folder of the installation includes the 32-bit .so file. The lib64 folder of the installation includes the 64-bit .so file.
Obfuscated Source Notes
The full version of the toolkit includes obfuscated source code. The src folder of the installation includes the source files. The obfuscated source code can be compiled with g++. For instance a makefile may look like:
mytarget: ipworksopenpgp.o g++ -D UNIX -o myapp ipworksopenpgp.o myapp.cpp -I../include/ -lz ipworks.o: g++ -c -fno-exceptions -fno-rtti -fPIC -o ipworksopenpgp.o ipworksopenpgp.cpp
The header files for the system compression library libz-dev must be present in the linker search path.
By default the Linux library does not rely on OpenSSL and uses an internal implementation for all SSL/TLS and other cryptographic functionality. Attempting to use the platform implementation by setting properties such as SSLProvider will result in an error.
To enable OpenSSL support within the toolkit the obfuscated source code can be compiled with the -D ENABLE_OPENSSL option. For instance a makefile may look like:
mytarget: ./src/ipworksopenpgp.o g++ -D UNIX -o myapp ./src/ipworksopenpgp.o myapp.cpp -I./include/ -ldl -lz -lssl -lcrypto ./src/ipworksopenpgp.o: g++ -c -fno-exceptions -fno-rtti -fPIC -D ENABLE_OPENSSL -o ./src/ipworksopenpgp.o ./src/ipworksopenpgp.cpp
When enabled, the linker options for the project using the library must include -lssl -lcrypto. Note that components must still be configured to use the OpenSSL implementation by setting the SSLProvider property to 1 (Platform).
The library for macOS is provided as a dynamic library (.dylib file). The lib64 folder of the installation includes the .dylib file. In the full version, the src folder contains the obfuscated source code and corresponding makefile.
The installation directory contains an include\qt folder with header files which allow the components to be used in Qt. To use the components in Qt Creator first navigate to the Projects menu, then the Add Library option and finally select the External Library option. Browse to the ipworksopenpgp22.lib file within the lib or lib64 folder. Ensure the Add 'd' suffix for debug version is unchecked.
Then, add the header file of the component to be used under the HEADERS variable in the .pro file. The HEADERS variable will look something like this: HEADERS += C:\My\Install\Path\include\qt\qhttp.h . Note that the path should contain no spaces.
Finally, the header for the desired components can then be added in code. For instance: #include "C:\My\Install\Path\include\qt\qhttp.h"