# H235Authenticator Class Reference

`#include <h235auth.h>`

Inheritance diagram for H235Authenticator:

[legend]

## Public Types

| e_OK = 0
| e_Absent
| Security parameters and Msg are ok, no security attacks.
| e_Error
| Security parameters are expected but absent.
| e_InvalidTime
| Security parameters are present but incorrect.
| e_BadPassword
| Security parameters indicate peer has bad real time clock.
| e_ReplyAttack
| Security parameters indicate bad password in token.
| e_Disabled
| Security is disabled by local system.
| GKAdmission
| To Be Used for GK Admission.
| EPAuthentication
| To Be Used for EP Authentication.
| LRQOnly
| To Be Used for Location Request Authentication.
| AnyApplication
| To Be Used for Any Application.
enum | ValidationResult { e_OK = 0, e_Absent, e_Error, e_InvalidTime, e_BadPassword, e_ReplyAttack, e_Disabled }
enum | Application { GKAdmission, EPAuthentication, LRQOnly, AnyApplication }

## Public Member Functions

| H235Authenticator ()
virtual void | PrintOn (ostream &strm) const
virtual const char * | GetName () const =0
virtual PBoolean | PrepareTokens (PASN_Array &clearTokens, PASN_Array &cryptoTokens)
virtual H235_ClearToken * | CreateClearToken ()
virtual H225_CryptoH323Token * | CreateCryptoToken (bool digits)
virtual PBoolean | Finalise (PBYTEArray &rawPDU)
virtual ValidationResult | ValidateTokens (const PASN_Array &clearTokens, const PASN_Array &cryptoTokens, const PBYTEArray &rawPDU)
virtual ValidationResult | ValidateClearToken (const H235_ClearToken &clearToken)
virtual ValidationResult | ValidateCryptoToken (const H225_CryptoH323Token &cryptoToken, const PBYTEArray &rawPDU)
virtual PBoolean | IsCapability (const H235_AuthenticationMechanism &mechansim, const PASN_ObjectId &algorithmOID)=0
virtual PBoolean | SetCapability (H225_ArrayOf_AuthenticationMechanism &mechansims, H225_ArrayOf_PASN_ObjectId &algorithmOIDs)=0
virtual PBoolean | UseGkAndEpIdentifiers () const
virtual PBoolean | IsSecuredPDU (unsigned rasPDU, PBoolean received) const
virtual PBoolean | IsActive () const
void | Enable (PBoolean enab=true)
void | Disable ()
const PString & | GetRemoteId () const
void | SetRemoteId (const PString &id)
const PString & | GetLocalId () const
void | SetLocalId (const PString &id)
const PString & | GetPassword () const
void | SetPassword (const PString &pw)
Application | GetApplication ()
| Get Authentication Application.

## Protected Member Functions

PBoolean | AddCapability (unsigned mechanism, const PString &oid, H225_ArrayOf_AuthenticationMechanism &mechansims, H225_ArrayOf_PASN_ObjectId &algorithmOIDs)

## Protected Attributes

PBoolean | enabled
PString | remoteId
PString | localId
PString | password
unsigned | sentRandomSequenceNumber
unsigned | lastRandomSequenceNumber
unsigned | lastTimestamp
int | timestampGracePeriod
Application | usage
| Authenticator's Application.
PMutex | mutex

## Detailed Description

This abtract class embodies an H.235 authentication mechanism. NOTE: descendants must have a Clone() function for correct operation.

## Member Enumeration Documentation

enum H235Authenticator::Application

Enumerator:

  GKAdmission | To Be Used for GK Admission.
  EPAuthentication | To Be Used for EP Authentication.
  LRQOnly | To Be Used for Location Request Authentication.
  AnyApplication | To Be Used for Any Application.

enum H235Authenticator::ValidationResult

Enumerator:

  e_OK |
  e_Absent | Security parameters and Msg are ok, no security attacks.
  e_Error | Security parameters are expected but absent.
  e_InvalidTime | Security parameters are present but incorrect.
  e_BadPassword | Security parameters indicate peer has bad real time clock.
  e_ReplyAttack | Security parameters indicate bad password in token.
  e_Disabled | Security is disabled by local system.

## Constructor & Destructor Documentation

H235Authenticator::H235Authenticator | ( |  | ) |

## Member Function Documentation

PBoolean H235Authenticator::AddCapability | ( | unsigned | mechanism,
|  | const PString & | oid,
|  | H225_ArrayOf_AuthenticationMechanism & | mechansims,
|  | H225_ArrayOf_PASN_ObjectId & | algorithmOIDs |
| ) |  |  | `[protected]`

virtual H235_ClearToken* H235Authenticator::CreateClearToken | ( |  | ) | `[virtual]`

Reimplemented in H235AuthCAT.

virtual H225_CryptoH323Token* H235Authenticator::CreateCryptoToken | ( | bool | digits | ) | `[virtual]`

Reimplemented in H235AuthSimpleMD5.

void H235Authenticator::Disable | ( |  | ) | `[inline]`

void H235Authenticator::Enable | ( | PBoolean | enab = `true` | ) | `[inline]`

virtual PBoolean H235Authenticator::Finalise | ( | PBYTEArray & | rawPDU | ) | `[virtual]`

Application H235Authenticator::GetApplication | ( |  | ) | `[inline]`

Get Authentication Application.

const PString& H235Authenticator::GetLocalId | ( |  | ) | const`[inline]`

virtual const char* H235Authenticator::GetName | ( |  | ) | const`[pure virtual]`

Implemented in H235AuthSimpleMD5, and H235AuthCAT.

const PString& H235Authenticator::GetPassword | ( |  | ) | const`[inline]`

const PString& H235Authenticator::GetRemoteId | ( |  | ) | const`[inline]`

virtual PBoolean H235Authenticator::IsActive | ( |  | ) | const`[virtual]`

virtual PBoolean H235Authenticator::IsCapability | ( | const H235_AuthenticationMechanism & | mechansim,
|  | const PASN_ObjectId & | algorithmOID |
| ) |  |  | `[pure virtual]`

Implemented in H235AuthSimpleMD5, and H235AuthCAT.

virtual PBoolean H235Authenticator::IsSecuredPDU | ( | unsigned | rasPDU,
|  | PBoolean | received |
| ) |  |  | const`[virtual]`

Reimplemented in H235AuthSimpleMD5, and H235AuthCAT.

virtual PBoolean H235Authenticator::PrepareTokens | ( | PASN_Array & | clearTokens,
|  | PASN_Array & | cryptoTokens |
| ) |  |  | `[virtual]`

virtual void H235Authenticator::PrintOn | ( | ostream & | strm | ) | const`[virtual]`

virtual PBoolean H235Authenticator::SetCapability | ( | H225_ArrayOf_AuthenticationMechanism & | mechansims,
|  | H225_ArrayOf_PASN_ObjectId & | algorithmOIDs |
| ) |  |  | `[pure virtual]`

Implemented in H235AuthSimpleMD5, and H235AuthCAT.

void H235Authenticator::SetLocalId | ( | const PString & | id | ) | `[inline]`

void H235Authenticator::SetPassword | ( | const PString & | pw | ) | `[inline]`

void H235Authenticator::SetRemoteId | ( | const PString & | id | ) | `[inline]`

virtual PBoolean H235Authenticator::UseGkAndEpIdentifiers | ( |  | ) | const`[virtual]`

virtual ValidationResult H235Authenticator::ValidateClearToken | ( | const H235_ClearToken & | clearToken | ) | `[virtual]`

Reimplemented in H235AuthCAT.

virtual ValidationResult H235Authenticator::ValidateCryptoToken | ( | const H225_CryptoH323Token & | cryptoToken,
|  | const PBYTEArray & | rawPDU |
| ) |  |  | `[virtual]`

Reimplemented in H235AuthSimpleMD5.

virtual ValidationResult H235Authenticator::ValidateTokens | ( | const PASN_Array & | clearTokens,
|  | const PASN_Array & | cryptoTokens,
|  | const PBYTEArray & | rawPDU |
| ) |  |  | `[virtual]`

## Field Documentation

PBoolean H235Authenticator::enabled `[protected]`

unsigned H235Authenticator::lastRandomSequenceNumber `[protected]`

unsigned H235Authenticator::lastTimestamp `[protected]`

PString H235Authenticator::localId `[protected]`

PMutex H235Authenticator::mutex `[protected]`

PString H235Authenticator::password `[protected]`

PString H235Authenticator::remoteId `[protected]`

unsigned H235Authenticator::sentRandomSequenceNumber `[protected]`

int H235Authenticator::timestampGracePeriod `[protected]`

Application H235Authenticator::usage `[protected]`

Authenticator's Application.

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

- h235auth.h