# 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 ~PrivateKeyPassphraseHandler();

Destroys the PrivateKeyPassphraseHandler.

## Member Functions

### onPrivateKeyRequested

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

Returns the requested private key in the parameter privateKey.

### serverSide

bool serverSide() const;