What is the openssl version used by aws_sdk for c++? And how can we make SDK to support particular version of openssl?
Currently the SDK targets 1.0.x. We need to update the SDK to handle 1.1.x and later. There is currently a pull request request for this. We'll evaluate it and get it merged in as soon as possible.
Related
I built a qt c++ application on a Linux system which uses network requests as part of its functionality, and on the system which it was built on it works alright, after I deployed it (using cqtdeployer), and ran the application on a different Linux computer, the GUI opens up and everything, but when it tries to perform HTTP requests it logs the following error to the console:
qt.tlsbackend.ossl: Incompatible version of OpenSSL (built with OpenSSL 1.x, runtime version is >= 3.x)
My question is - can Qt be built with modern OpenSSL versions, or do I have to manually install OpenSSL1.x on the computer which tries to run the program? Maybe I can just provide a bunch of libraries to the deployment folder?
Thanks.
OpenSSL is generally binary incompatible between major versions, especially with version 3, which is a major API change.
Perhaps it will be a good investment of time for you to take this opportunity to learn how to use your Linux distribution's package manager, (rpm/dnf on Fedora-based Linux distributions, and dpkg/apt on Debian-derived distributions) which exists precisely to solve these kinds of problems.
Most major Linux distributions still include an additional compatibility package for code that's built with OpenSSL 1. If you use your Linux distribution's package manager and prepared an appropriate package, the compatibility package would've gotten installed, automatically, by the package manager together with your package. That's what the package manager is for.
It's also a fair chance that the version of Qt is different too, and there's also a high chance of an incompatibility between your code that's compiled for one version of Qt and the different version that's installed on the computer in question, even though it seemingly runs. If you used the package manager it would've figured it out too, and alerted you.
I know that according to this, integrating gRPC for C++ using Bazel on Windows is currently not supported, CMake is the preferred way. But since Bazel is very adaptable and gRPC integration works like a charm on Linux I was wondering if there is some example/howto that's not officially supported, ideally for MSVC. I could not find any.
gRPC for C++ doesn't support this yet, although that is indeed the plan, so there is no current example/howto from the team.
You're welcome to try it out and send pull requests for anything you end up patching to make it work. Alternatively, you can create a new feature request at https://github.com/grpc/grpc/issues.
I am having trouble building the ACE_SSL library with OpenSSL.
I am using ACE 6.4.1 and OpenSSL 1.1.0c which is the latest release on github (I would assume these are compatible right, even though building instructions for ACE SSL seem to reference out32 and inc32 which seem to be the output of building a previous version of OpenSSL and not this one).
I managed to build openssl and all tests run ok. After that I ran the .mwc script ACE came with as so:
bin\mwc.pl -type vc14 -features "ssl=1" ACE.mwc
This generated a Visual Studio 2015 solution, which now does contain a project called SSL and several other related projects. However when I try to build, the compiler complains about the use of the incomplete type "BIO_METHOD" which is a typedef of "struct bio_method_st", defined in the openssl header "bio.h".
When doing a search in the openssl folder for "struct bio_method_st", I only find one reference to it and it's in that header, but it only contains the declaration and not the definition. Comparing with older versions of openssl online, that header used to contain the definition as well.
I also found a repo online with a script that downloads and builds ace with ssl, 64 bit version here:
https://github.com/sphawk/build-ace
The script runs and builds ok but it uses ACE version 6.3.3 and openssl version 1.0.2f (which released january this year). I could easily modify it to build the 32 bit libraries which are the ones I need and change it to use the latest version of ACE. Using the latest version of openssl requires a bit more change because building steps changed, so I could save time and use that version of openssl. Would that bring any problems? I assume that even if the new version improves on some aspects, it doesn't render the older ones obsolete right?
Bottom line is I can't figure out if the problem is that I am doing something wrong, or if ACE is not compatible with this version of openssl and I should use an older one. I just wanted to post this in case anyone has run into something similar and can point me in the right direction before I do any extra work. Thanks!
ACE doesn't support OpenSSL 1.1.x yet. Please open an issue at github for this. Maybe you can create a fix, if so, please open a pull request with the necessary changes.
I would like to know if it was possible to use JNI for an BB10 app. I'm kinda new with this thing and I saw somewhere that is possible.
Because I've an android app but I need to had some special features to make it run properly on BB10 and for that I need to use JNI.
Is it possible ? If yes, is it possible to find a sample or some doc about it somewhere ?
I assume you are asking about running an Android appliction on BB10. Support for JNI does not exist on any of the current official BB10 versions (up to and including 10.2.0). However version 10.2.1 includes a completely different Android runtime that is able to run APK directly including applications that use JNI. I haven't seen any official documentation of this yet however.
I am trying to integrate AlchemyAPI into my c++ project and I'm a little lost regarding where to start. I downloaded the API, obtained the key. The readme file has Unix installation instructions on running the autobuild.sh script then configure and make and make install. I have cygwin installed, I installed autoconf for windows. I'm just guessing there must be a more straightforward way to use AlchemyAPI c++ on windows.
There's two ways to go about this that are probably a lot easier than what you're trying to do:
Using the C# SDK that AlchemyAPI provides, build it, reference it, and call it from your solution.
Bypass the SDKs all together, hitting the API directly by building your own URLs and data strings for HTTP GETs or POSTs (x-www-form-urlencoded) and submitting them using a popular C++ HTTP implementation. (This is all the SDK is really doing anyway.)
An example URL that you could use to build your own interface might be this one (enter your API key to view it in your browser):
http://access.alchemyapi.com/calls/url/URLGetRankedNamedEntities?apikey=YOUR_API_KEY&url=http://www.cnn.com/2011/09/28/us/massachusetts-pentagon-plot-arrest/index.html?hpt=hp_t1&sentiment=1
If you want to parse the results in XML, you can use libxml, and AlchemyAPI's C++ SDK can provide you with an example. If you want to parse the results as JSON, then add 'outputMode=json' to the request and use your favorite JSON parser.
There's more information in the documentation on all of the features and how to implement them in your requests:
http://www.alchemyapi.com/api/