Poco::Net

class PrivateKeyPassphraseHandler

Library: NetSSL_OpenSSL
Package: SSLCore
Header: Poco/Net/PrivateKeyPassphraseHandler.h

Description

A passphrase handler is needed whenever the private key of a certificate is loaded and the certificate is protected by a passphrase. The PrivateKeyPassphraseHandler's task is to provide that passphrase. One can install one's own PrivateKeyPassphraseHandler 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/PrivateKeyFactory.h"
...
POCO_REGISTER_KEYFACTORY(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(myguiHandler, myInvalidCertificateHandler, mySSLContext)

or in case one's application extends Poco::Util::Application one can use an XML configuration and put the following entry under the path openSSL.privateKeyPassphraseHandler:

<privateKeyPassphraseHandler>
    <name>MyGuiHandler</name>
    <options>
        [...] // Put optional config params for the handler here
    </options>
</privateKeyPassphraseHandler>

Note that the name of the passphrase handler must be same as the one provided to the POCO_REGISTER_KEYFACTORY macro.

Inheritance

Known Derived Classes: KeyConsoleHandler, KeyFileHandler

Member Summary

Member Functions: onPrivateKeyRequested, serverSide

Constructors

PrivateKeyPassphraseHandler

PrivateKeyPassphraseHandler(
    bool onServerSide
);

Creates the PrivateKeyPassphraseHandler. Automatically registers at the SSLManager::PrivateKeyPassword event.

Destructor

~PrivateKeyPassphraseHandler virtual

virtual ~PrivateKeyPassphraseHandler();

Member Functions

onPrivateKeyRequested virtual

virtual void onPrivateKeyRequested(
    const void * pSender,
    std::string & privateKey
) = 0;

Returns the requested private key in the parameter privateKey.

serverSide inline

bool serverSide() const;