31 #ifndef OPAL_H323_H235AUTH_H
32 #define OPAL_H323_H235AUTH_H
42 #include <ptlib/pfactory.h>
46 class H225_CryptoH323Token;
47 class H225_ArrayOf_AuthenticationMechanism;
48 class H225_ArrayOf_PASN_ObjectId;
49 class H235_ClearToken;
50 class H235_AuthenticationMechanism;
69 virtual const char *
GetName()
const = 0;
72 PASN_Array & clearTokens,
73 PASN_Array & cryptoTokens
94 const PASN_Array & clearTokens,
95 const PASN_Array & cryptoTokens,
96 const PBYTEArray & rawPDU
100 const H235_ClearToken & clearToken
104 const H225_CryptoH323Token & cryptoToken,
105 const PBYTEArray & rawPDU
109 const H235_AuthenticationMechanism & mechansim,
110 const PASN_ObjectId & algorithmOID
114 H225_ArrayOf_AuthenticationMechanism & mechansims,
115 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
146 H225_ArrayOf_AuthenticationMechanism & mechansims,
147 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
172 PASN_Array & clearTokens,
173 unsigned clearOptionalField,
174 PASN_Array & cryptoTokens,
175 unsigned cryptoOptionalField
180 const PASN_Array & clearTokens,
181 unsigned clearOptionalField,
182 const PASN_Array & cryptoTokens,
183 unsigned cryptoOptionalField,
184 const PBYTEArray & rawPDU
201 PObject * Clone()
const;
203 virtual const char * GetName()
const;
205 virtual H225_CryptoH323Token * CreateCryptoToken(
bool digits);
208 const H225_CryptoH323Token & cryptoToken,
209 const PBYTEArray & rawPDU
212 virtual PBoolean IsCapability(
213 const H235_AuthenticationMechanism & mechansim,
214 const PASN_ObjectId & algorithmOID
217 virtual PBoolean SetCapability(
218 H225_ArrayOf_AuthenticationMechanism & mechansim,
219 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
222 virtual PBoolean IsSecuredPDU(
243 PObject *
Clone()
const;
245 virtual const char *
GetName()
const;
250 const H235_ClearToken & clearToken
254 const H235_AuthenticationMechanism & mechansim,
255 const PASN_ObjectId & algorithmOID
259 H225_ArrayOf_AuthenticationMechanism & mechansim,
260 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
280 H235AuthProcedure1();
282 PObject * Clone()
const;
284 virtual const char *
GetName()
const;
293 const H225_CryptoH323Token & cryptoToken,
294 const PBYTEArray & rawPDU
298 const H235_AuthenticationMechanism & mechansim,
299 const PASN_ObjectId & algorithmOID
303 H225_ArrayOf_AuthenticationMechanism & mechansim,
304 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
312 #endif // OPAL_PTLIB_SSL
316 #endif //OPAL_H323_H235AUTH_H
void SetLocalId(const PString &id)
Definition: h235auth.h:136
Security parameters indicate an attack was made.
Definition: h235auth.h:90
virtual PBoolean IsCapability(const H235_AuthenticationMechanism &mechansim, const PASN_ObjectId &algorithmOID)=0
PString password
Definition: h235auth.h:154
Security parameters indicate bad password in token.
Definition: h235auth.h:89
virtual H225_CryptoH323Token * CreateCryptoToken(bool digits)
unsigned lastRandomSequenceNumber
Definition: h235auth.h:157
void SetRemoteId(const PString &id)
Definition: h235auth.h:133
virtual ValidationResult ValidateClearToken(const H235_ClearToken &clearToken)
virtual PBoolean IsCapability(const H235_AuthenticationMechanism &mechansim, const PASN_ObjectId &algorithmOID)
const PString & GetRemoteId() const
Definition: h235auth.h:132
virtual PBoolean Finalise(PBYTEArray &rawPDU)
const PString & GetLocalId() const
Definition: h235auth.h:135
const PString & GetPassword() const
Definition: h235auth.h:138
virtual H235_ClearToken * CreateClearToken()
virtual ValidationResult ValidateClearToken(const H235_ClearToken &clearToken)
PString localId
Definition: h235auth.h:153
PString remoteId
Definition: h235auth.h:152
void PreparePDU(H323TransactionPDU &pdu, PASN_Array &clearTokens, unsigned clearOptionalField, PASN_Array &cryptoTokens, unsigned cryptoOptionalField)
Security parameters are present but incorrect.
Definition: h235auth.h:87
virtual PBoolean PrepareTokens(PASN_Array &clearTokens, PASN_Array &cryptoTokens)
unsigned sentRandomSequenceNumber
Definition: h235auth.h:156
virtual ValidationResult ValidateCryptoToken(const H225_CryptoH323Token &cryptoToken, const PBYTEArray &rawPDU)
Definition: h235auth.h:237
virtual const char * GetName() const =0
void Disable()
Definition: h235auth.h:130
void Enable(PBoolean enab=true)
Definition: h235auth.h:127
virtual void PrintOn(ostream &strm) const
virtual PBoolean SetCapability(H225_ArrayOf_AuthenticationMechanism &mechansims, H225_ArrayOf_PASN_ObjectId &algorithmOIDs)=0
PBoolean AddCapability(unsigned mechanism, const PString &oid, H225_ArrayOf_AuthenticationMechanism &mechansims, H225_ArrayOf_PASN_ObjectId &algorithmOIDs)
Definition: h235auth.h:84
virtual PBoolean IsActive() const
unsigned lastTimestamp
Definition: h235auth.h:158
int timestampGracePeriod
Definition: h235auth.h:159
Security parameters are expected but absent.
Definition: h235auth.h:86
Definition: h235auth.h:59
virtual ValidationResult ValidateTokens(const PASN_Array &clearTokens, const PASN_Array &cryptoTokens, const PBYTEArray &rawPDU)
Definition: h323trans.h:51
ValidationResult
Definition: h235auth.h:83
virtual PBoolean UseGkAndEpIdentifiers() const
PMutex mutex
Definition: h235auth.h:161
virtual PBoolean IsSecuredPDU(unsigned rasPDU, PBoolean received) const
H235Authenticator::ValidationResult ValidatePDU(const H323TransactionPDU &pdu, const PASN_Array &clearTokens, unsigned clearOptionalField, const PASN_Array &cryptoTokens, unsigned cryptoOptionalField, const PBYTEArray &rawPDU)
virtual H235_ClearToken * CreateClearToken()
PFACTORY_LOAD(H235AuthSimpleMD5)
PBoolean enabled
Definition: h235auth.h:150
virtual const char * GetName() const
Definition: h235auth.h:195
virtual PBoolean SetCapability(H225_ArrayOf_AuthenticationMechanism &mechansim, H225_ArrayOf_PASN_ObjectId &algorithmOIDs)
virtual PBoolean IsSecuredPDU(unsigned rasPDU, PBoolean received) const
Security parameters and Msg are ok, no security attacks.
Definition: h235auth.h:85
void SetPassword(const PString &pw)
Definition: h235auth.h:139
Security parameters indicate peer has bad real time clock.
Definition: h235auth.h:88