Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Poco/Exception.h"
- #include "Poco/StreamCopier.h"
- #include "Poco/URI.h"
- #include "Poco/URIStreamOpener.h"
- #include "Poco/Net/HTTPStreamFactory.h"
- #include "Poco/Net/SecureStreamSocket.h"
- #include "Poco/Net/AcceptCertificateHandler.h"
- #include "Poco/Net/InvalidCertificateHandler.h"
- #include "Poco/Net/Context.h"
- #include "Poco/Net/SSLManager.h"
- #include "Poco/Net/PrivateKeyPassphraseHandler.h"
- #include "Poco/Net/NetSSL.h"
- #include "Poco/Net/VerificationErrorArgs.h"
- #include <Poco/Util/Application.h>
- #include <vector>
- #include <string>
- #include <memory>
- #include <iostream>
- #pragma comment(lib, "Crypt32.lib")
- #pragma comment(lib, "ws2_32.lib")
- class MyPrivateKeyPassphraseHandler : public Poco::Net::PrivateKeyPassphraseHandler
- {
- public:
- MyPrivateKeyPassphraseHandler(bool onServerSize) : Poco::Net::PrivateKeyPassphraseHandler(onServerSize)
- {
- }
- void onPrivateKeyRequested(const void* pSender, std::string& privateKey) override
- {
- }
- };
- class MyInvalidCertificateHandler : public Poco::Net::InvalidCertificateHandler
- {
- public:
- MyInvalidCertificateHandler(bool handleErrorsOnServerSize)
- : Poco::Net::InvalidCertificateHandler(handleErrorsOnServerSize)
- {
- }
- void onInvalidCertificate(const void* pSender, Poco::Net::VerificationErrorArgs& errorCert) override
- {
- errorCert.setIgnoreError(true);
- }
- };
- int main(int argc, char** argv)
- {
- Poco::SharedPtr<MyInvalidCertificateHandler> invalidCertificateHandlerPtr(new MyInvalidCertificateHandler(false));
- Poco::SharedPtr<MyPrivateKeyPassphraseHandler> privateKeyPassphraseHandlerPtr(new MyPrivateKeyPassphraseHandler(false));
- Poco::Net::Context::Ptr context = new Poco::Net::Context(Poco::Net::Context::Usage::CLIENT_USE, "");
- Poco::Net::SSLManager::instance().initializeClient(privateKeyPassphraseHandlerPtr, invalidCertificateHandlerPtr, context);
- Poco::Net::SocketAddress address("www.example.org", 443);
- Poco::Net::SecureStreamSocket stream(address);
- const char* request = "GET / HTTP/1.0\nHost: www.example.org\n\n";
- stream.sendBytes((void*)request, strlen(request));
- char recvBuff[2048];
- stream.receiveBytes((void*)recvBuff, sizeof(recvBuff));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement