PTLib Version 2.12.9

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PSSLCertificate Class Reference

Certificate for SSL. More...

`#include <pssl.h>`

Inheritance diagram for PSSLCertificate:
[legend]
Collaboration diagram for PSSLCertificate:
[legend]

## Classes
class | X509_Name

## Public Member Functions
| PSSLCertificate ()
| Create an empty certificate. More...
| PSSLCertificate (const PFilePath &certFile, PSSLFileTypes fileType=PSSLFileTypeDEFAULT)
| Create a new certificate given the file. More...
| PSSLCertificate (const BYTE *certData, PINDEX certSize)
| Create certificate from the binary ASN1 DER encoded data specified. More...
| PSSLCertificate (const PBYTEArray &certData)
| Create certificate from the binary ASN1 DER encoded data specified. More...
| PSSLCertificate (const PString &certString)
| Create certificate from the ASN1 DER base64 encoded data specified. More...
| PSSLCertificate (const PSSLCertificate &cert)
| Create a copy of the certificate. More...
| PSSLCertificate (x509_st *cert, bool duplicate=true)
PSSLCertificate & | operator= (const PSSLCertificate &cert)
| Create a copy of the certificate. More...
PSSLCertificate & | operator= (x509_st *cert)
| ~PSSLCertificate ()
| Destroy and release storage for certificate. More...
| operator x509_st * () const
| Get internal OpenSSL X509 structure. More...
void | Attach (x509_st *cert)
| Set internal OpenSSL X509 structure. More...
bool | IsValid () const
| Return true if is a valid certificate. More...
PBoolean | CreateRoot (const PString &subject, const PSSLPrivateKey &key)
| Create a new root certificate. More...
bool | SetData (const PBYTEArray &data)
| Set the certificate as binary ASN1 DER encoded data. More...
PBYTEArray | GetData () const
| Get the certificate as binary ASN1 DER encoded data. More...
PString | AsString () const
| Get the certificate as ASN1 DER base64 encoded data. More...
bool | Parse (const PString &certStr)
| Set the certificate from ASN1 DER base64 encoded data. More...
PBoolean | Load (const PFilePath &certFile, PSSLFileTypes fileType=PSSLFileTypeDEFAULT)
| Load certificate from file. More...
PBoolean | Save (const PFilePath &keyFile, PBoolean append=false, PSSLFileTypes fileType=PSSLFileTypeDEFAULT)
| Save certificate to file. More...
bool | GetIssuerName (X509_Name &name) const
| Get certificate issuer name. More...
bool | GetSubjectName (X509_Name &name) const
| Get certificate subject name. More...
PString | GetSubjectName () const
PString | GetSubjectAltName () const
| Get certificate alternate subject name. More...
virtual void | PrintOn (ostream &strm) const
| Output the contents of the object to the stream. More...
Public Member Functions inherited from PObject
unsigned | GetTraceContextIdentifier () const
| Get PTRACE context identifier. More...
void | SetTraceContextIdentifier (unsigned id)
void | GetTraceContextIdentifier (PObject &obj)
void | GetTraceContextIdentifier (PObject *obj)
void | SetTraceContextIdentifier (const PObject &obj)
void | SetTraceContextIdentifier (const PObject *obj)
virtual | ~PObject ()
virtual PObject * | Clone () const
| Create a copy of the class on the heap. More...
template<class CLS >
CLS * | CloneAs () const
| As for Clone() but converts to specified type. More...
virtual PINDEX | HashFunction () const
| This function yields a hash value required by the `PDictionary` class. More...
virtual const char * | GetClass (unsigned ancestor=0) const
| Get the current dynamic type of the object instance. More...
PBoolean | IsClass (const char *cls) const
virtual PBoolean | InternalIsDescendant (const char *clsName) const
| Determine if the dynamic type of the current instance is a descendent of the specified class. More...
__inline const PObject * | PTraceObjectInstance () const
virtual Comparison | Compare (const PObject &obj) const
| Compare the two objects and return their relative rank. More...
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const
| Determine the byte wise comparison of two objects. More...
bool | operator== (const PObject &obj) const
| Compare the two objects. More...
bool | operator!= (const PObject &obj) const
| Compare the two objects. More...
bool | operator< (const PObject &obj) const
| Compare the two objects. More...
bool | operator> (const PObject &obj) const
| Compare the two objects. More...
bool | operator<= (const PObject &obj) const
| Compare the two objects. More...
bool | operator>= (const PObject &obj) const
| Compare the two objects. More...
virtual void | ReadFrom (istream &strm)
| Input the contents of the object from the stream. More...

## Protected Member Functions
void | FreeCertificate ()
Protected Member Functions inherited from PObject
| PObject ()
| Constructor for PObject, made protected so cannot ever create one on its own. More...

## Protected Attributes
x509_st * | m_certificate
Protected Attributes inherited from PObject
unsigned | m_traceContextIdentifier

## Additional Inherited Members
Public Types inherited from PObject
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
| Result of the comparison operation performed by the `Compare()` function. More...
Static Public Member Functions inherited from PObject
static const char * | Class ()
| Get the name of the class as a C string. More...
static __inline const PObject * | PTraceObjectInstance (const char *)
static __inline const PObject * | PTraceObjectInstance (const PObject *obj)
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
| Internal function caled from CompareObjectMemoryDirect() More...
Friends inherited from PObject

## Detailed Description

Certificate for SSL.

This class embodies a common environment for all certificates used by the PSSLContext and PSSLChannel classes.

## Constructor & Destructor Documentation

PSSLCertificate::PSSLCertificate | ( |  | ) |

Create an empty certificate.

PSSLCertificate::PSSLCertificate | ( | const PFilePath & | certFile,
|  | PSSLFileTypes | fileType = `PSSLFileTypeDEFAULT`
| ) |  |

Create a new certificate given the file.

The type of the certificate key can be specified explicitly, or if PSSLFileTypeDEFAULT it will be determined from the file extension, ".pem" is a text file, anything else eg ".der" is a binary ASN1 file.

Parameters

  certFile | Certificate file
  fileType | Type of file to read

PSSLCertificate::PSSLCertificate | ( | const BYTE * | certData,
|  | PINDEX | certSize
| ) |  |

Create certificate from the binary ASN1 DER encoded data specified.

Parameters

  certData | Certificate data
  certSize | Size of certificate data

PSSLCertificate::PSSLCertificate | ( | const PBYTEArray & | certData | ) |

Create certificate from the binary ASN1 DER encoded data specified.

Parameters

  certData | Certificate data

PSSLCertificate::PSSLCertificate | ( | const PString & | certString | ) |

Create certificate from the ASN1 DER base64 encoded data specified.

Parameters

  certString | Certificate data as string

PSSLCertificate::PSSLCertificate | ( | const PSSLCertificate & | cert | ) |

Create a copy of the certificate.

PSSLCertificate::PSSLCertificate | ( | x509_st * | cert,
|  | bool | duplicate = `true`
| ) |  |

PSSLCertificate::~PSSLCertificate | ( |  | ) |

Destroy and release storage for certificate.

## Member Function Documentation

PString PSSLCertificate::AsString | ( |  | ) | const

Get the certificate as ASN1 DER base64 encoded data.

void PSSLCertificate::Attach | ( | x509_st * | cert | ) |

Set internal OpenSSL X509 structure.

PBoolean PSSLCertificate::CreateRoot | ( | const PString & | subject,
|  | const PSSLPrivateKey & | key
| ) |  |

Create a new root certificate.

The subject name is a string of the form "/name=value/name=value" where name is a short name for the field and value is a string value for the field for example: "/C=ZA/SP=Western Cape/L=Cape Town/O=Thawte Consulting cc" "/OU=Certification Services Division/CN=Thawte Server CA" "/Email=server-certs@thawte.com"

Parameters

  subject | Subject name for certificate
  key | Key to sign certificate with

void PSSLCertificate::FreeCertificate | ( |  | ) |
| protected

PBYTEArray PSSLCertificate::GetData | ( |  | ) | const

Get the certificate as binary ASN1 DER encoded data.

bool PSSLCertificate::GetIssuerName | ( | X509_Name & | name | ) | const

Get certificate issuer name.

PString PSSLCertificate::GetSubjectAltName | ( |  | ) | const

Get certificate alternate subject name.

bool PSSLCertificate::GetSubjectName | ( | X509_Name & | name | ) | const

Get certificate subject name.

PString PSSLCertificate::GetSubjectName | ( |  | ) | const

Referenced by PrintOn().

bool PSSLCertificate::IsValid | ( |  | ) | const
| inline

Return true if is a valid certificate.

References m_certificate.

PBoolean PSSLCertificate::Load | ( | const PFilePath & | certFile,
|  | PSSLFileTypes | fileType = `PSSLFileTypeDEFAULT`
| ) |  |

Load certificate from file.

The type of the certificate key can be specified explicitly, or if PSSLFileTypeDEFAULT it will be determined from the file extension, ".pem" is a text file, anything else eg ".der" is a binary ASN1 file.

Parameters

  certFile | Certificate file
  fileType | Type of file to read

PSSLCertificate::operator x509_st * | ( |  | ) | const
| inline

Get internal OpenSSL X509 structure.

References m_certificate.

PSSLCertificate& PSSLCertificate::operator= | ( | const PSSLCertificate & | cert | ) |

Create a copy of the certificate.

PSSLCertificate& PSSLCertificate::operator= | ( | x509_st * | cert | ) |

bool PSSLCertificate::Parse | ( | const PString & | certStr | ) |

Set the certificate from ASN1 DER base64 encoded data.

virtual void PSSLCertificate::PrintOn | ( | ostream & | strm | ) | const
| inline virtual

Output the contents of the object to the stream.

The exact output is dependent on the exact semantics of the descendent class. This is primarily used by the standard `operator<<` function.

The default behaviour is to print the class name.

Reimplemented from PObject.

References GetSubjectName().

PBoolean PSSLCertificate::Save | ( | const PFilePath & | keyFile,
|  | PBoolean | append = `false`,
|  | PSSLFileTypes | fileType = `PSSLFileTypeDEFAULT`
| ) |  |

Save certificate to file.

The type of the certificate key can be specified explicitly, or if PSSLFileTypeDEFAULT it will be determined from the file extension, ".pem" is a text file, anything else eg ".der" is a binary ASN1 file.

Parameters

  keyFile | Certificate key file
  append | Append to file
  fileType | Type of file to write

bool PSSLCertificate::SetData | ( | const PBYTEArray & | data | ) |

Set the certificate as binary ASN1 DER encoded data.

## Member Data Documentation

x509_st* PSSLCertificate::m_certificate
| protected

Referenced by IsValid(), and operator x509_st *().

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

- pssl.h