# PSSLContext Class Reference

Context for SSL channels. More...

`#include <pssl.h>`

List of all members.

## Public Types

| SSLv23
| SSLv3
| TLSv1
enum | Method { SSLv23, SSLv3, TLSv1 }

## Public Member Functions

| PSSLContext (const void *sessionId=NULL, PINDEX idSize=0)
| Create a new context for SSL channels.
| PSSLContext (Method method, const void *sessionId=NULL, PINDEX idSize=0)
| ~PSSLContext ()
| Clean up the SSL context.
| operator ssl_ctx_st * () const
| Get the internal SSL context structure.
PBoolean | SetCAPath (const PDirectory &caPath)
| Set the path to locate CA certificates.
PBoolean | SetCAFile (const PFilePath &caFile)
| Set the CA certificate file.
PBoolean | UseCertificate (const PSSLCertificate &certificate)
| Use the certificate specified.
PBoolean | UsePrivateKey (const PSSLPrivateKey &key)
| Use the private key specified.
PBoolean | UseDiffieHellman (const PSSLDiffieHellman &dh)
| Use the Diffie-Hellman parameters specified.
PBoolean | SetCipherList (const PString &ciphers)
| Set the available ciphers to those listed.

## Protected Member Functions

void | Construct (Method method, const void *sessionId, PINDEX idSize)

## Protected Attributes

ssl_ctx_st * | context

## Detailed Description

Context for SSL channels.

This class embodies a common environment for all connections made via SSL using the PSSLChannel class. It includes such things as the version of SSL and certificates, CA's etc.

## Member Enumeration Documentation

enum PSSLContext::Method

Enumerator:

  SSLv23 |
  SSLv3 |
  TLSv1 |

## Constructor & Destructor Documentation

PSSLContext::PSSLContext | ( | const void * | sessionId = `NULL`,
|  | PINDEX | idSize = `0` |
| ) |  |  |

Create a new context for SSL channels.

An optional session ID may be provided in the context. This is used to identify sessions across multiple channels in this context. The session ID is a completely arbitrary block of data. If sessionId is non NULL and idSize is zero, then sessionId is assumed to be a pointer to a C string. The default SSL method is SSLv23

Parameters:

  sessionId | Pointer to session ID
  idSize | Size of session ID

PSSLContext::PSSLContext | ( | Method | method,
|  | const void * | sessionId = `NULL`,
|  | PINDEX | idSize = `0` |
| ) |  |  |

Parameters:

  method | SSL connection method
  sessionId | Pointer to session ID
  idSize | Size of session ID

PSSLContext::~PSSLContext | ( |  | ) |

Clean up the SSL context.

## Member Function Documentation

void PSSLContext::Construct | ( | Method | method,
|  | const void * | sessionId,
|  | PINDEX | idSize |
| ) |  |  | `[protected]`

PSSLContext::operator ssl_ctx_st * | ( |  | ) | const`[inline]`

Get the internal SSL context structure.

PBoolean PSSLContext::SetCAFile | ( | const PFilePath & | caFile | ) |

Set the CA certificate file.

Parameters:

  caFile | CA certificate file

PBoolean PSSLContext::SetCAPath | ( | const PDirectory & | caPath | ) |

Set the path to locate CA certificates.

Parameters:

  caPath | Directory for CA certificates

PBoolean PSSLContext::SetCipherList | ( | const PString & | ciphers | ) |

Set the available ciphers to those listed.

Parameters:

  ciphers | List of cipher names.

PBoolean PSSLContext::UseCertificate | ( | const PSSLCertificate & | certificate | ) |

Use the certificate specified.

PBoolean PSSLContext::UseDiffieHellman | ( | const PSSLDiffieHellman & | dh | ) |

Use the Diffie-Hellman parameters specified.

PBoolean PSSLContext::UsePrivateKey | ( | const PSSLPrivateKey & | key | ) |

Use the private key specified.

## Member Data Documentation

ssl_ctx_st* PSSLContext::context `[protected]`

The documentation for this class was generated from the following file:

- pssl.h