27 #ifndef OPAL_H323_H235AUTH_H
28 #define OPAL_H323_H235AUTH_H
38 #include <ptlib/pfactory.h>
42 class H225_CryptoH323Token;
43 class H225_ArrayOf_AuthenticationMechanism;
44 class H225_ArrayOf_PASN_ObjectId;
45 class H235_ClearToken;
46 class H235_AuthenticationMechanism;
65 virtual const char *
GetName()
const = 0;
68 PASN_Array & clearTokens,
69 PASN_Array & cryptoTokens,
93 const PASN_Array & clearTokens,
94 const PASN_Array & cryptoTokens,
95 const PBYTEArray & rawPDU
99 const H235_ClearToken & clearToken
103 const H225_CryptoH323Token & cryptoToken,
104 const PBYTEArray & rawPDU
108 const H235_AuthenticationMechanism & mechansim,
109 const PASN_ObjectId & algorithmOID
113 H225_ArrayOf_AuthenticationMechanism & mechansims,
114 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
153 H225_ArrayOf_AuthenticationMechanism & mechansims,
154 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
174 P_REMOVE_VIRTUAL(PBoolean,
PrepareTokens(PASN_Array &,PASN_Array &),
false);
182 PASN_Array & clearTokens,
183 unsigned clearOptionalField,
184 PASN_Array & cryptoTokens,
185 unsigned cryptoOptionalField
189 const PASN_Array & clearTokens,
190 unsigned clearOptionalField,
191 const PASN_Array & cryptoTokens,
192 unsigned cryptoOptionalField,
193 const PBYTEArray & rawPDU
198 InternalPreparePDU(pdu, ras.m_tokens, RAS::e_tokens, ras.m_cryptoTokens, RAS::e_cryptoTokens);
202 return InternalValidatePDU(pdu, ras.m_tokens, RAS::e_tokens, ras.m_cryptoTokens, RAS::e_cryptoTokens, rawPDU);
219 PObject *
Clone()
const;
221 virtual const char *
GetName()
const;
226 const H225_CryptoH323Token & cryptoToken,
227 const PBYTEArray & rawPDU
231 const H235_AuthenticationMechanism & mechansim,
232 const PASN_ObjectId & algorithmOID
236 H225_ArrayOf_AuthenticationMechanism & mechansim,
237 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
261 PObject *
Clone()
const;
263 virtual const char *
GetName()
const;
268 const H235_ClearToken & clearToken
272 const H235_AuthenticationMechanism & mechansim,
273 const PASN_ObjectId & algorithmOID
277 H225_ArrayOf_AuthenticationMechanism & mechansim,
278 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
298 H235AuthPwd_DES_ECB();
300 PObject * Clone()
const;
302 virtual const char *
GetName()
const;
308 const H235_ClearToken & clearToken
311 const H225_CryptoH323Token & cryptoToken,
312 const PBYTEArray & rawPDU
316 H225_ArrayOf_AuthenticationMechanism & mechansim,
317 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
321 const H235_AuthenticationMechanism & mechansim,
322 const PASN_ObjectId & algorithmOID
331 bool EncryptToken(PBYTEArray & encryptedToken);
333 PBYTEArray m_encodedToken;
345 H235AuthProcedure1();
347 PObject * Clone()
const;
349 virtual const char *
GetName()
const;
358 const H225_CryptoH323Token & cryptoToken,
359 const PBYTEArray & rawPDU
363 const H235_AuthenticationMechanism & mechansim,
364 const PASN_ObjectId & algorithmOID
368 H225_ArrayOf_AuthenticationMechanism & mechansim,
369 H225_ArrayOf_PASN_ObjectId & algorithmOIDs
377 #endif // OPAL_PTLIB_SSL
381 #endif //OPAL_H323_H235AUTH_H
void SetLocalId(const PString &id)
Definition: h235auth.h:134
Security parameters indicate an attack was made.
Definition: h235auth.h:89
virtual PBoolean IsCapability(const H235_AuthenticationMechanism &mechansim, const PASN_ObjectId &algorithmOID)=0
To Be Used for GK Admission.
Definition: h235auth.h:140
To Be Used for Any Application.
Definition: h235auth.h:143
PString password
Definition: h235auth.h:161
Security parameters indicate bad password in token.
Definition: h235auth.h:88
Application
Definition: h235auth.h:139
unsigned lastRandomSequenceNumber
Definition: h235auth.h:164
PINDEX AddCapabilityIfNeeded(unsigned mechanism, const PString &oid, H225_ArrayOf_AuthenticationMechanism &mechansims, H225_ArrayOf_PASN_ObjectId &algorithmOIDs)
void SetRemoteId(const PString &id)
Definition: h235auth.h:131
virtual ValidationResult ValidateClearToken(const H235_ClearToken &clearToken)
virtual PBoolean IsCapability(const H235_AuthenticationMechanism &mechansim, const PASN_ObjectId &algorithmOID)
To Be Used for Location Request Authentication.
Definition: h235auth.h:142
const PString & GetRemoteId() const
Definition: h235auth.h:130
virtual PBoolean Finalise(PBYTEArray &rawPDU)
const PString & GetLocalId() const
Definition: h235auth.h:133
const PString & GetPassword() const
Definition: h235auth.h:136
virtual H235_ClearToken * CreateClearToken()
To Be Used for EP Authentication.
Definition: h235auth.h:141
virtual ValidationResult ValidateClearToken(const H235_ClearToken &clearToken)
Application usage
Authenticator's Application.
Definition: h235auth.h:168
bool m_enabled
Definition: h235auth.h:157
void InternalPreparePDU(H323TransactionPDU &pdu, PASN_Array &clearTokens, unsigned clearOptionalField, PASN_Array &cryptoTokens, unsigned cryptoOptionalField)
PFACTORY_LOAD(OpalPluginCodecManager)
Application GetApplication()
Get Authentication Application.
Definition: h235auth.h:146
H235Authenticator::ValidationResult InternalValidatePDU(const H323TransactionPDU &pdu, const PASN_Array &clearTokens, unsigned clearOptionalField, const PASN_Array &cryptoTokens, unsigned cryptoOptionalField, const PBYTEArray &rawPDU)
PString localId
Definition: h235auth.h:160
PString remoteId
Definition: h235auth.h:159
Security parameters are present but incorrect.
Definition: h235auth.h:86
unsigned sentRandomSequenceNumber
Definition: h235auth.h:163
virtual ValidationResult ValidateCryptoToken(const H225_CryptoH323Token &cryptoToken, const PBYTEArray &rawPDU)
virtual H225_CryptoH323Token * CreateCryptoToken(bool digits)
virtual PBoolean IsSecuredPDU(unsigned rasPDU, PBoolean received) const
Definition: h235auth.h:255
virtual const char * GetName() const =0
virtual const char * GetName() const
void Disable()
Definition: h235auth.h:127
void Enable(PBoolean enab=true)
Definition: h235auth.h:124
virtual void PrintOn(ostream &strm) const
virtual PBoolean SetCapability(H225_ArrayOf_AuthenticationMechanism &mechansims, H225_ArrayOf_PASN_ObjectId &algorithmOIDs)=0
virtual PBoolean IsCapability(const H235_AuthenticationMechanism &mechansim, const PASN_ObjectId &algorithmOID)
virtual ValidationResult ValidateCryptoToken(const H225_CryptoH323Token &cryptoToken, const PBYTEArray &rawPDU)
Definition: h235auth.h:83
virtual H225_CryptoH323Token * CreateCryptoToken(bool digits, unsigned rasPDU)
unsigned lastTimestamp
Definition: h235auth.h:165
int timestampGracePeriod
Definition: h235auth.h:166
Security parameters are expected but absent.
Definition: h235auth.h:85
Definition: h235auth.h:55
virtual ValidationResult ValidateTokens(const PASN_Array &clearTokens, const PASN_Array &cryptoTokens, const PBYTEArray &rawPDU)
Definition: h323trans.h:47
ValidationResult
Definition: h235auth.h:82
virtual PBoolean UseGkAndEpIdentifiers() const
H235Authenticator::ValidationResult ValidatePDU(const H323TransactionPDU &pdu, const RAS &ras, const PBYTEArray &rawPDU)
Definition: h235auth.h:200
virtual PBoolean IsSecuredPDU(unsigned rasPDU, PBoolean received) const
bool IsEnabled() const
Definition: h235auth.h:128
virtual H235_ClearToken * CreateClearToken()
virtual PBoolean PrepareTokens(PASN_Array &clearTokens, PASN_Array &cryptoTokens, unsigned rasPDU)
virtual PBoolean SetCapability(H225_ArrayOf_AuthenticationMechanism &mechansim, H225_ArrayOf_PASN_ObjectId &algorithmOIDs)
virtual const char * GetName() const
Definition: h235auth.h:213
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:84
void SetPassword(const PString &pw)
Definition: h235auth.h:137
Security parameters indicate peer has bad real time clock.
Definition: h235auth.h:87
void PreparePDU(H323TransactionPDU &pdu, RAS &ras)
Definition: h235auth.h:196