mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-07-09 18:37:12 +02:00
bin
module
vendor
CPR
ConcurrentQueue
Fmt
MaxmindDB
POCO
ApacheConnector
CppParser
CppUnit
Crypto
Data
Encodings
Foundation
JSON
JWT
MongoDB
Net
NetSSL_OpenSSL
NetSSL_Win
cmake
doc
include
Poco
Net
AcceptCertificateHandler.h
AutoSecBufferDesc.h
CertificateHandlerFactory.h
CertificateHandlerFactoryMgr.h
ConsoleCertificateHandler.h
Context.h
HTTPSClientSession.h
HTTPSSessionInstantiator.h
HTTPSStreamFactory.h
InvalidCertificateHandler.h
KeyConsoleHandler.h
KeyFileHandler.h
NetSSL.h
PrivateKeyFactory.h
PrivateKeyFactoryMgr.h
PrivateKeyPassphraseHandler.h
RejectCertificateHandler.h
SSLException.h
SSLManager.h
SecureSMTPClientSession.h
SecureServerSocket.h
SecureServerSocketImpl.h
SecureSocketImpl.h
SecureStreamSocket.h
SecureStreamSocketImpl.h
Session.h
Utility.h
VerificationErrorArgs.h
X509Certificate.h
samples
src
testsuite
CMakeLists.txt
NetSSL_Win.progen
NetSSL_Win_vs140.sln
NetSSL_Win_vs140.vcxproj
NetSSL_Win_vs140.vcxproj.filters
NetSSL_Win_vs150.sln
NetSSL_Win_vs150.vcxproj
NetSSL_Win_vs150.vcxproj.filters
NetSSL_Win_vs160.sln
NetSSL_Win_vs160.vcxproj
NetSSL_Win_vs160.vcxproj.filters
NetSSL_Win_vs90.sln
NetSSL_Win_vs90.vcproj
PDF
PageCompiler
PocoDoc
ProGen
Redis
SevenZip
Util
XML
Zip
appveyor
build
cmake
contrib
doc
packaging
patches
release
travis
.gitattributes
.gitignore
.gitmodules
.travis.yml
CHANGELOG
CMakeLists.txt
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CONTRIBUTORS
LICENSE
Makefile
NEWS
README
README.md
VERSION
appveyor.yml
build_cmake.cmd
build_cmake.sh
build_vs140.cmd
build_vs150.cmd
build_vs160.cmd
buildwin.cmd
buildwin.ps1
components
configure
cppignore.lnx
cppignore.win
env.bat
env.sh
libversion
SimpleIni
Squirrel
TinyDir
CMakeLists.txt
.gitignore
.gitmodules
CMakeLists.txt
LICENSE
README.md
Switched to POCO library for unified platform/library interface. Deprecated the external module API. It was creating more problems than solving. Removed most built-in libraries in favor of system libraries for easier maintenance. Cleaned and secured code with help from static analyzers.
81 lines
2.8 KiB
C++
81 lines
2.8 KiB
C++
//
|
|
// InvalidCertificateHandler.h
|
|
//
|
|
// Library: NetSSL_Win
|
|
// Package: SSLCore
|
|
// Module: InvalidCertificateHandler
|
|
//
|
|
// Definition of the InvalidCertificateHandler class.
|
|
//
|
|
// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH.
|
|
// and Contributors.
|
|
//
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
//
|
|
|
|
|
|
#ifndef NetSSL_InvalidCertificateHandler_INCLUDED
|
|
#define NetSSL_InvalidCertificateHandler_INCLUDED
|
|
|
|
|
|
#include "Poco/Net/NetSSL.h"
|
|
#include "Poco/Net/VerificationErrorArgs.h"
|
|
|
|
|
|
namespace Poco {
|
|
namespace Net {
|
|
|
|
|
|
class NetSSL_Win_API InvalidCertificateHandler
|
|
/// A InvalidCertificateHandler is invoked whenever an error occurs verifying the certificate. It allows the user
|
|
/// to inspect and accept/reject the certificate.
|
|
/// One can install one's own InvalidCertificateHandler by implementing this interface. Note that
|
|
/// in the implementation file of the subclass the following code must be present (assuming you use the namespace My_API
|
|
/// and the name of your handler class is MyGuiHandler):
|
|
///
|
|
/// #include "Poco/Net/CertificateHandlerFactory.h"
|
|
/// ...
|
|
/// POCO_REGISTER_CHFACTORY(My_API, MyGuiHandler)
|
|
///
|
|
/// One can either set the handler directly in the startup code of the main method of ones application by calling
|
|
///
|
|
/// SSLManager::instance().initialize(mypassphraseHandler, myguiHandler, mySSLContext)
|
|
///
|
|
/// or in case one uses Poco::Util::Application one can rely on an XML configuration and put the following entry
|
|
/// under the path openSSL.invalidCertificateHandler:
|
|
///
|
|
/// <invalidCertificateHandler>
|
|
/// <name>MyGuiHandler<name>
|
|
/// <options>
|
|
/// [...] // Put optional config params for the handler here
|
|
/// </options>
|
|
/// </invalidCertificateHandler>
|
|
///
|
|
/// Note that the name of the InvalidCertificateHandler must be same as the one provided to the POCO_REGISTER_CHFACTORY macro.
|
|
{
|
|
public:
|
|
InvalidCertificateHandler(bool handleErrorsOnServerSide);
|
|
/// Creates the InvalidCertificateHandler.
|
|
///
|
|
/// Set handleErrorsOnServerSide to true if the certificate handler is used on the server side.
|
|
/// Automatically registers at one of the SSLManager::VerificationError events.
|
|
|
|
virtual ~InvalidCertificateHandler();
|
|
/// Destroys the InvalidCertificateHandler.
|
|
|
|
virtual void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert) = 0;
|
|
/// Receives the questionable certificate in parameter errorCert. If one wants to accept the
|
|
/// certificate, call errorCert.setIgnoreError(true).
|
|
|
|
protected:
|
|
bool _handleErrorsOnServerSide;
|
|
/// Stores if the certificate handler gets invoked by the server (i.e. a client certificate is wrong)
|
|
/// or the client (a server certificate is wrong)
|
|
};
|
|
|
|
|
|
} } // namespace Poco::Net
|
|
|
|
|
|
#endif // NetSSL_InvalidCertificateHandler_INCLUDED
|