MSIPSecSecurityMechanism Class Reference

class MSIPSecSecurityMechanism

Class provides functions for maintaing security information in security cache.

Constructor & Destructor Documentation

~MSIPSecSecurityMechanism()

~MSIPSecSecurityMechanism ( ) [inline, virtual]

Member Functions Documentation

AddSecurityParamsL(TSIPTransportParams &, CSIPRequest &, TRegistrationId, TTransactionId, TInetAddr &, const CUri8 &, const TDesC8 &, MSIPSecUser *)

void AddSecurityParamsL ( TSIPTransportParams & aTransportParams,
CSIPRequest & aRequest,
TRegistrationId aRegistrationId,
TTransactionId aTransactionId,
TInetAddr & aNextHop,
const CUri8 & aRemoteTarget,
const TDesC8 & aOutboundProxy,
MSIPSecUser * aUser
) [pure virtual]

Adds the cached security parameters to the SIP request. If no cache entries are found returns without any error.

Parameters

TSIPTransportParams & aTransportParams Params to be used when creating IPSec SAs
CSIPRequest & aRequest SIP request where the security parameters will be added
TRegistrationId aRegistrationId registration ID
TTransactionId aTransactionId transaction ID
TInetAddr & aNextHop the next hop of the request IP address or a domain name
const CUri8 & aRemoteTarget Remote target of the request
const TDesC8 & aOutboundProxy the outbound proxy of the request IP address or a domain name. Zero-length if not present.
MSIPSecUser * aUser the user for the possible cache entries The ownership is NOT transferred.

CancelPendingOperations(MSIPSecSecurityMechanismObserver *)

void CancelPendingOperations ( MSIPSecSecurityMechanismObserver * aObserver ) [pure virtual]

Cancels all the pending asynchronous operations for the given observer.

Parameters

MSIPSecSecurityMechanismObserver * aObserver observer waiting for an asynchronous cache update The ownership is NOT transferred.

ClearCache(MSIPSecUser *)

void ClearCache ( MSIPSecUser * aUser ) [pure virtual]

Clears all the cached information for the given user.

Parameters

MSIPSecUser * aUser the user for the cache entries The ownership is NOT transferred.

IgnoreChallenge(TTransactionId, const TDesC8 &, const MSIPSecUser *)

TInt IgnoreChallenge ( TTransactionId aTransactionId,
const TDesC8 & aRealm,
const MSIPSecUser * aTrustedUser
) [pure virtual]

Ignores the challenge for the realm. As a result the error will be generated to the original request in case.

Parameters

TTransactionId aTransactionId transaction ID if available, otherwise KEmptyTransactionId
const TDesC8 & aRealm a realm for which the challenge was ignored
const MSIPSecUser * aTrustedUser the trusted user for the ignored challenge

InitializeSecurityClientL(CSIPSecurityClientHeader &)

void InitializeSecurityClientL ( CSIPSecurityClientHeader & aSecurityClient ) [pure virtual]

Mechanism should verify that Security-Client header contains all parameters which are needed for the mechanism. This function is called only when the first request is being sent to the next hop.

Parameters

CSIPSecurityClientHeader & aSecurityClient Security-Client header

IsServerInitiatedSecAgreeAllowed()

TBool IsServerInitiatedSecAgreeAllowed ( ) const [pure virtual]

Mechanism returns information whether it is allowed to be selected when security agreement is initiated by the server.

Name()

const TDesC8 & Name ( ) const [pure virtual]

Gets the name of the mechanism

ParametersUpdatedL(MSIPSecUser *)

TBool ParametersUpdatedL ( MSIPSecUser * aUser ) [pure virtual]

Inform the plugin that the SIPSec parameters have been updated to MSIPSecEngineContext .

Parameters

MSIPSecUser * aUser SIPSec user. The ownership is NOT transferred.

ProcessSecurityVerifyL(TSIPTransportParams &, CSIPRequest &, TInetAddr &, const CUri8 &, const TDesC8 &, MSIPSecUser *, TRegistrationId, RPointerArray< CSIPSecurityServerHeader > &, RPointerArray< CSIPSecurityVerifyHeader > &)

void ProcessSecurityVerifyL ( TSIPTransportParams & aTransportParams,
CSIPRequest & aRequest,
TInetAddr & aNextHop,
const CUri8 & aRemoteTarget,
const TDesC8 & aOutboundProxy,
MSIPSecUser * aUser,
TRegistrationId aRegistrationId,
RPointerArray < CSIPSecurityServerHeader > & aSecurityServer,
RPointerArray < CSIPSecurityVerifyHeader > & aSecurityVerify
) [pure virtual]

Mechanism should verify that Security-Verify header contains all parameters which are needed for the mechanism. The function is called for every request after sec-agreement was established with the next hop.

Parameters

TSIPTransportParams & aTransportParams Params to be used when creating IPSec SAs
CSIPRequest & aRequest SIP request
TInetAddr & aNextHop Next-hop address
const CUri8 & aRemoteTarget Remote target of the request
const TDesC8 & aOutboundProxy Outbound proxy or empty descriptor
MSIPSecUser * aUser SIPSec user. The ownership is NOT transferred.
TRegistrationId aRegistrationId Registration id
RPointerArray < CSIPSecurityServerHeader > & aSecurityServer Security-Server headers
RPointerArray < CSIPSecurityVerifyHeader > & aSecurityVerify Security-Verify headers

RemoveCredentials(const TDesC8 &)

TInt RemoveCredentials ( const TDesC8 & aRealm ) [pure virtual]

Removes all set credentials for the realm

Parameters

const TDesC8 & aRealm servers's realm

ResponseReceivedL(TSIPTransportParams &, CSIPResponse &, CSIPRequest &, TRegistrationId, TTransactionId, TInetAddr &, const CUri8 &, const TDesC8 &, MSIPSecUser *, MSIPSecSecurityMechanismObserver &)

TBool ResponseReceivedL ( TSIPTransportParams & aTransportParams,
CSIPResponse & aResponse,
CSIPRequest & aRequest,
TRegistrationId aRegistrationId,
TTransactionId aTransactionId,
TInetAddr & aNextHop,
const CUri8 & aRemoteTarget,
const TDesC8 & aOutboundProxy,
MSIPSecUser * aUser,
MSIPSecSecurityMechanismObserver & aObserver
) [pure virtual]

Updates the SIPSec cache if necessary. If nothing was updated returns without any error. May lead to asynchronous processing. If so, returns ETrue and the user must wait for the cache to be updated before sending the SIP request again.

Parameters

TSIPTransportParams & aTransportParams Params to be used when creating IPSec SAs
CSIPResponse & aResponse SIP response to be processed to update the cache
CSIPRequest & aRequest IN: SIP request related to the aResponse
TRegistrationId aRegistrationId registration ID
TTransactionId aTransactionId transaction ID
TInetAddr & aNextHop the next hop of the original request IP address or a domain name
const CUri8 & aRemoteTarget Remote target of the original request
const TDesC8 & aOutboundProxy the outbound proxy of the original request IP address or a domain name. Zero-length if not present.
MSIPSecUser * aUser the user for the possible cache entries, Can be used to getting the credentials for the cache. The ownership is NOT transferred.
MSIPSecSecurityMechanismObserver & aObserver observer that will be notified when after an asynchronous cache update has been completed. The ownership is NOT transferred.

SetCredentialsL(TTransactionId, const TDesC8 &, const TDesC8 &, const TDesC8 &, const TDesC8 &)

void SetCredentialsL ( TTransactionId aTransactionId,
const TDesC8 & aRealm,
const TDesC8 & aOutboundProxy,
const TDesC8 & aUserName,
const TDesC8 & aPassword
) [pure virtual]

Will be called as a result to asynchronous call to MSIPSecUser::RequestCredentialsL .

Parameters

TTransactionId aTransactionId transaction ID if available, otherwise KEmptyTransactionId
const TDesC8 & aRealm the realm for the credentials
const TDesC8 & aOutboundProxy Outbound proxy
const TDesC8 & aUserName the username
const TDesC8 & aPassword the password

SetCredentialsL(const MSIPSecUser &, const TDesC8 &, const TDesC8 &, const TDesC8 &, const TDesC8 &)

void SetCredentialsL ( const MSIPSecUser & aUser,
const TDesC8 & aRealm,
const TDesC8 & aOutboundProxy,
const TDesC8 & aUserName,
const TDesC8 & aPassword
) [pure virtual]

Will be called as a result to asynchronous call to MSIPSecUser::RequestCredentialsL .

Parameters

const MSIPSecUser & aUser SIPSec user who provides the credentials
const TDesC8 & aRealm the realm for the credentials
const TDesC8 & aOutboundProxy Outbound proxy
const TDesC8 & aUserName the username
const TDesC8 & aPassword the password