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 *)

voidAddSecurityParamsL(TSIPTransportParams &aTransportParams,
CSIPRequest &aRequest,
TRegistrationIdaRegistrationId,
TTransactionIdaTransactionId,
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 & aTransportParamsParams to be used when creating IPSec SAs
CSIPRequest & aRequestSIP request where the security parameters will be added
TRegistrationId aRegistrationIdregistration ID
TTransactionId aTransactionIdtransaction ID
TInetAddr & aNextHopthe next hop of the request IP address or a domain name
const CUri8 & aRemoteTargetRemote target of the request
const TDesC8 & aOutboundProxythe outbound proxy of the request IP address or a domain name. Zero-length if not present.
MSIPSecUser * aUserthe user for the possible cache entries The ownership is NOT transferred.

CancelPendingOperations(MSIPSecSecurityMechanismObserver *)

voidCancelPendingOperations(MSIPSecSecurityMechanismObserver *aObserver)[pure virtual]

Cancels all the pending asynchronous operations for the given observer.

Parameters

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

ClearCache(MSIPSecUser *)

voidClearCache(MSIPSecUser *aUser)[pure virtual]

Clears all the cached information for the given user.

Parameters

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

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

TInt IgnoreChallenge(TTransactionIdaTransactionId,
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 aTransactionIdtransaction ID if available, otherwise KEmptyTransactionId
const TDesC8 & aRealma realm for which the challenge was ignored
const MSIPSecUser * aTrustedUserthe trusted user for the ignored challenge

InitializeSecurityClientL(CSIPSecurityClientHeader &)

voidInitializeSecurityClientL(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 & aSecurityClientSecurity-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 * aUserSIPSec user. The ownership is NOT transferred.

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

voidProcessSecurityVerifyL(TSIPTransportParams &aTransportParams,
CSIPRequest &aRequest,
TInetAddr &aNextHop,
const CUri8 &aRemoteTarget,
const TDesC8 &aOutboundProxy,
MSIPSecUser *aUser,
TRegistrationIdaRegistrationId,
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 & aTransportParamsParams to be used when creating IPSec SAs
CSIPRequest & aRequestSIP request
TInetAddr & aNextHopNext-hop address
const CUri8 & aRemoteTargetRemote target of the request
const TDesC8 & aOutboundProxyOutbound proxy or empty descriptor
MSIPSecUser * aUserSIPSec user. The ownership is NOT transferred.
TRegistrationId aRegistrationIdRegistration id
RPointerArray< CSIPSecurityServerHeader > & aSecurityServerSecurity-Server headers
RPointerArray< CSIPSecurityVerifyHeader > & aSecurityVerifySecurity-Verify headers

RemoveCredentials(const TDesC8 &)

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

Removes all set credentials for the realm

Parameters

const TDesC8 & aRealmservers's realm

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

TBool ResponseReceivedL(TSIPTransportParams &aTransportParams,
CSIPResponse &aResponse,
CSIPRequest &aRequest,
TRegistrationIdaRegistrationId,
TTransactionIdaTransactionId,
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 & aTransportParamsParams to be used when creating IPSec SAs
CSIPResponse & aResponseSIP response to be processed to update the cache
CSIPRequest & aRequestIN: SIP request related to the aResponse
TRegistrationId aRegistrationIdregistration ID
TTransactionId aTransactionIdtransaction ID
TInetAddr & aNextHopthe next hop of the original request IP address or a domain name
const CUri8 & aRemoteTargetRemote target of the original request
const TDesC8 & aOutboundProxythe outbound proxy of the original request IP address or a domain name. Zero-length if not present.
MSIPSecUser * aUserthe user for the possible cache entries, Can be used to getting the credentials for the cache. The ownership is NOT transferred.
MSIPSecSecurityMechanismObserver & aObserverobserver 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 &)

voidSetCredentialsL(TTransactionIdaTransactionId,
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 aTransactionIdtransaction ID if available, otherwise KEmptyTransactionId
const TDesC8 & aRealmthe realm for the credentials
const TDesC8 & aOutboundProxyOutbound proxy
const TDesC8 & aUserNamethe username
const TDesC8 & aPasswordthe password

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

voidSetCredentialsL(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 & aUserSIPSec user who provides the credentials
const TDesC8 & aRealmthe realm for the credentials
const TDesC8 & aOutboundProxyOutbound proxy
const TDesC8 & aUserNamethe username
const TDesC8 & aPasswordthe password