This fixes problems when a project adds a directory to
CMAKE_PREFIX_PATH, then calls find_package(Poco ...) and afterwards
calls find_package() for another project located in one of the
directories of the original CMAKE_PREFIX_PATH variable.
The two RSAKey constructors which take existing keys (one from a
stream, the other from a string) have incomplete and ambiguous
documentation.
This change improves the header documentation to reflect that:
1. Decryption is supported using a private key (existing doc says you
can "only" sign if a private key is present),
2. Clarify that public key not needed when private key is present.
Per https://www.openssl.org/docs/crypto/pem.html, specifying to encrypt
a private key with DES *without* providing a passphrase causes OpenSSL
to prompt for the passphrase to use on the console -- which is
problematic for GUI applications which generally lack a console.
This modifies the behavior of RSAKeyImpl::save() so that DES encryption
of private keys will not be attempted unless the passphrase argument is
non-empty. This will also suppress OpenSSL's prompting for that
passphrase on the console.
Also added a case to the test suite.
- Add missing CMakeLists.txt
- Use POCO_ macros to improve code structure in XCode/VisualStudio
- Better ODBC detection
- Remove unnecessary commented out code
The CMake documentation recommends explicitly listing source files, but because CMake is not the primary build system GLOB patterns are used for the moment.
For a unix system, this commit implies no changes by default. However, the ${LIB_SUFFIX} convention was added so the build can be configured for a red-hat style installation which uses lib64 by specifying cmake -DLIB_SUFFIX=64
For a windows build (msvc), this commit will cause the .dll files to be installed in the bin/ path; import libraries .lib are still installed in the lib/ path. Installing dlls into the bin path is preferable because dlls must be in the executable %PATH% to be found at runtime, as there is not equivalent of a separate library path as there is on unix.