Performs certificate validation. More...

#include <ValidatorList.h>

Inheritance diagram for Ssl::ValidatorList:
[legend]
Collaboration diagram for Ssl::ValidatorList:
[legend]

Public Types

typedef int(* Comparer) (const Validator &lhs, const Validator &rhs)
 

Public Member Functions

bool add (Validator *validator)
 Add a validator to the list. More...
 
template<class T >
bool pin (const T &fingerprint)
 Pin a fingerprint. More...
 
bool add (ValidatorCallback callback, void *data=nullptr)
 Register a custom validator callback. More...
 
bool validate (const Certificate *certificate)
 Validate certificate via registered validators. More...
 
unsigned int capacity () const
 
bool contains (const Validator &elem) const
 
const ValidatorfirstElement () const
 
int indexOf (const Validator &elem) const
 
bool isEmpty () const
 
const ValidatorlastElement () const
 
int lastIndexOf (const Validator &elem) const
 
unsigned int count () const override
 
unsigned int size () const
 
void copyInto (Validator *array) const
 
bool add (const Validator &obj)
 
bool addElement (const Validator &obj)
 
bool addElement (Validator *objp)
 
void clear ()
 
bool ensureCapacity (unsigned int minCapacity)
 
void removeAllElements ()
 
bool removeElement (const Validator &obj)
 
bool setSize (unsigned int newSize)
 
void trimToSize ()
 
const ValidatorelementAt (unsigned int index) const
 
bool insertElementAt (const Validator &obj, unsigned int index)
 
const void remove (unsigned int index)
 
void removeElementAt (unsigned int index)
 
bool setElementAt (const Validator &obj, unsigned int index)
 
const Validatorget (unsigned int index) const
 
const Validatoroperator[] (unsigned int index) const override
 
Validatoroperator[] (unsigned int index) override
 
void sort (Comparer compareFunction)
 
const Validatorat (unsigned int i) const
 

Public Attributes

Fingerprint::Types fingerprintTypes
 Contains a list of registered fingerprint types. More...
 

Protected Member Functions

void copyFrom (const Vector &rhv)
 

Protected Attributes

unsigned int _size
 
unsigned int _capacity
 
unsigned int _increment
 
Validator ** _data
 

Detailed Description

Performs certificate validation.

Validators are created in the application's session initialisation callback. When the certificate has been received, it is checked against each registered validator in turn until successful. All validators are destroyed during this process.

If there are no validators in the list then the certificate will not be checked and the connection accepted.

Member Typedef Documentation

◆ Comparer

typedef int(* Vector< Validator >::Comparer) (const Validator &lhs, const Validator &rhs)
inherited

Member Function Documentation

◆ add() [1/3]

bool Ssl::ValidatorList::add ( Validator validator)
inline

Add a validator to the list.

Parameters
validatorMust be allocated on the heap

◆ add() [2/3]

bool Vector< Validator >::add ( const Validator &  obj)
inlineinherited

◆ add() [3/3]

bool Ssl::ValidatorList::add ( ValidatorCallback  callback,
void *  data = nullptr 
)
inline

Register a custom validator callback.

Parameters
callback
dataUser-provided data (optional)

◆ addElement() [1/2]

bool Vector< Validator >::addElement ( const Validator &  obj)
inherited

◆ addElement() [2/2]

bool Vector< Validator >::addElement ( Validator *  objp)
inherited

◆ at()

const Validator & Countable< Validator >::at ( unsigned int  i) const
inlineinherited

◆ capacity()

unsigned int Vector< Validator >::capacity ( ) const
inherited

◆ clear()

void Vector< Validator >::clear ( void  )
inlineinherited

◆ contains()

bool Vector< Validator >::contains ( const Validator &  elem) const
inherited

◆ copyFrom()

void Vector< Validator >::copyFrom ( const Vector< Validator > &  rhv)
protectedinherited

◆ copyInto()

void Vector< Validator >::copyInto ( Validator *  array) const
inherited

◆ count()

unsigned int Vector< Validator >::count ( ) const
inlineoverridevirtualinherited

◆ elementAt()

const Validator & Vector< Validator >::elementAt ( unsigned int  index) const
inherited

◆ ensureCapacity()

bool Vector< Validator >::ensureCapacity ( unsigned int  minCapacity)
inherited

◆ firstElement()

const Validator & Vector< Validator >::firstElement ( ) const
inherited

◆ get()

const Validator & Vector< Validator >::get ( unsigned int  index) const
inlineinherited

◆ indexOf()

int Vector< Validator >::indexOf ( const Validator &  elem) const
inherited

◆ insertElementAt()

bool Vector< Validator >::insertElementAt ( const Validator &  obj,
unsigned int  index 
)
inherited

◆ isEmpty()

bool Vector< Validator >::isEmpty ( ) const
inherited

◆ lastElement()

const Validator & Vector< Validator >::lastElement ( ) const
inherited

◆ lastIndexOf()

int Vector< Validator >::lastIndexOf ( const Validator &  elem) const
inherited

◆ operator[]() [1/2]

const Validator & Vector< Validator >::operator[] ( unsigned int  index) const
overridevirtualinherited

◆ operator[]() [2/2]

Validator & Vector< Validator >::operator[] ( unsigned int  index)
overridevirtualinherited

◆ pin()

template<class T >
bool Ssl::ValidatorList::pin ( const T &  fingerprint)
inline

Pin a fingerprint.

Creates and adds a fingerprint validator to the list

◆ remove()

const void Vector< Validator >::remove ( unsigned int  index)
inherited

◆ removeAllElements()

void Vector< Validator >::removeAllElements ( )
inherited

◆ removeElement()

bool Vector< Validator >::removeElement ( const Validator &  obj)
inherited

◆ removeElementAt()

void Vector< Validator >::removeElementAt ( unsigned int  index)
inherited

◆ setElementAt()

bool Vector< Validator >::setElementAt ( const Validator &  obj,
unsigned int  index 
)
inherited

◆ setSize()

bool Vector< Validator >::setSize ( unsigned int  newSize)
inherited

◆ size()

unsigned int Vector< Validator >::size ( ) const
inherited

◆ sort()

void Vector< Validator >::sort ( Comparer  compareFunction)
inherited

◆ trimToSize()

void Vector< Validator >::trimToSize ( )
inherited

◆ validate()

bool Ssl::ValidatorList::validate ( const Certificate certificate)

Validate certificate via registered validators.

Parameters
certificateWhen called with nullptr will free all validators, then fail
Return values
booltrue on success, false on failure
Note
Called by SSL framework.

We only need one match for a successful result, but we free all the validators. This method must be called no more than ONCE.

Member Data Documentation

◆ _capacity

unsigned int Vector< Validator >::_capacity
protectedinherited

◆ _data

Validator ** Vector< Validator >::_data
protectedinherited

◆ _increment

unsigned int Vector< Validator >::_increment
protectedinherited

◆ _size

unsigned int Vector< Validator >::_size
protectedinherited

◆ fingerprintTypes

Fingerprint::Types Ssl::ValidatorList::fingerprintTypes

Contains a list of registered fingerprint types.

Allows implementations to avoid calculating fingerprint values which are not required, as this is computationally expensive.


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