CSIPSec Class Reference
class CSIPSec : public CBase
|
Class provides functions for adding security information in SIP requests using different security mechanisms. SIP stack will always request to add the security parameters before sending a SIP request to a remote UA.
SipServer.exe
Public Member Functions
|
|
~CSIPSec
()
|
void
|
AddSecurityParamsL
(
TSIPTransportParams
&,
CSIPRequest
&,
TRegistrationId
,
TTransactionId
,
TInetAddr
&, const
TDesC8
&, const
CUri8
&, const
TDesC8
&,
MSIPSecUser
&)
|
void
|
CancelPendingOperations
(
MSIPSecObserver
&)
|
void
|
ClearCache
(
MSIPSecUser
*)
|
TInt
|
IgnoreChallenge
(
TTransactionId
, const
TDesC8
&, const
MSIPSecUser
*)
|
MSIPSecSecurityMechanism
*
|
MechanismByName
(const
TDesC8
&)
|
TSIPSecMechanismIter
&
|
MechanismIter
()
|
HBufC8
*
|
NegotiatedSecurityMechanismL
(const
TDesC8
&)
|
CSIPSec
*
|
NewL
(
MTimerManager
&,
MSIPTransportMgr
&,
TUint
)
|
CSIPSec
*
|
NewLC
(
MTimerManager
&,
MSIPTransportMgr
&,
TUint
)
|
void
|
Remove
(
CSIPSecResponseHandler
&)
|
TInt
|
RemoveCredentials
(const
TDesC8
&)
|
void
|
ResponseFirstPhaseDoneL
(
CSIPResponse
&,
TInetAddr
&, const
TDesC8
&,
MSIPSecUser
&,
TBool
)
|
TBool
|
ResponseReceivedL
(
TSIPTransportParams
&,
CSIPResponse
&,
CSIPRequest
&,
TRegistrationId
,
TTransactionId
,
TInetAddr
&, const
TDesC8
&, const
CUri8
&, const
TDesC8
&,
MSIPSecUser
&,
MSIPSecObserver
&)
|
void
|
SetCredentialsL
(
TTransactionId
, const
TDesC8
&, const
TDesC8
&, const
TDesC8
&, const
TDesC8
&)
|
void
|
SetCredentialsL
(const
MSIPSecUser
&, const
TDesC8
&, const
TDesC8
&, const
TDesC8
&, const
TDesC8
&)
|
CDesC8Array
*
|
SupportedSecurityMechanismsL
()
|
Constructor & Destructor Documentation
CSIPSec(MTimerManager &, MSIPTransportMgr &, TUint)
Member Functions Documentation
AddSecurityParamsL(TSIPTransportParams &, CSIPRequest &, TRegistrationId, TTransactionId, TInetAddr &, const TDesC8 &, const CUri8 &, const TDesC8 &, MSIPSecUser &)
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. If an SA was created on return contains also the updated transport identifier.
|
CSIPRequest
& aRequest
|
SIP request where the security parameters will be added
|
TRegistrationId
aRegistrationId
|
Registration ID
|
TTransactionId
aTransactionId
|
transaction ID
|
TInetAddr
& aNextHopAddr
|
the next hop IP address of the request
|
const
TDesC8
& 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
|
ArrayCleanup(TAny *)
void
|
ArrayCleanup
|
(
|
TAny
*
|
aArray
|
)
|
[private, static]
|
CancelPendingOperations(MSIPSecObserver &)
Cancels all the pending asynchronous operations for the given observer.
Parameters
MSIPSecObserver
& aObserver
|
observer waiting for an asynchronous cache update
|
ClearCache(MSIPSecUser *)
Clears all the cached information for the given user.
Parameters
MSIPSecUser
* aUser
|
the user for the cache entries The ownership is NOT transferred.
|
ConstructL()
void
|
ConstructL
|
(
|
)
|
[private]
|
IgnoreChallenge(TTransactionId, const TDesC8 &, const MSIPSecUser *)
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
|
ListMechanismImplementationsL()
void
|
ListMechanismImplementationsL
|
(
|
)
|
[private]
|
MechanismByName(const TDesC8 &)
NegotiatedSecurityMechanismL(const TDesC8 &)
HBufC8
*
|
NegotiatedSecurityMechanismL
|
(
|
const
TDesC8
&
|
aHop
|
)
|
|
Gets the negotiated security mechanism with the next hop on the signaling path.
Parameters
const
TDesC8
& aHop
|
the next hop's FQDN or numeric IP address
|
NewL(MTimerManager &, MSIPTransportMgr &, TUint)
Constructs an object; leaves on failure.
Parameters
MTimerManager
& aTimerMgr
|
an interface for requesting timer events
|
MSIPTransportMgr
& aTransportMgr
|
an interface for allocating and de-allocating transports resources for IPSec.
|
TUint
aT1
|
Duration of T1
|
NewLC(MTimerManager &, MSIPTransportMgr &, TUint)
Constructs an object and adds the pointer to the cleanup stack; leaves on failure.
Parameters
MTimerManager
& aTimerMgr
|
an interface for requesting timer events
|
MSIPTransportMgr
& aTransportMgr
|
an interface for allocating and de-allocating transports resources for IPSec.
|
TUint
aT1
|
Duration of T1
|
Remove(CSIPSecResponseHandler &)
RemoveCredentials(const TDesC8 &)
Removes all set credentials for the realm
Parameters
const
TDesC8
& aRealm
|
servers's realm
|
ResponseFirstPhaseDoneL(CSIPResponse &, TInetAddr &, const TDesC8 &, MSIPSecUser &, TBool)
ResponseReceivedL(TSIPTransportParams &, CSIPResponse &, CSIPRequest &, TRegistrationId, TTransactionId, TInetAddr &, const TDesC8 &, const CUri8 &, const TDesC8 &, MSIPSecUser &, MSIPSecObserver &)
TBool
|
ResponseReceivedL
|
(
|
TSIPTransportParams
&
|
aTransportParams,
|
|
CSIPResponse
&
|
aResponse,
|
|
CSIPRequest
&
|
aRequest,
|
|
TRegistrationId
|
aRegistrationId,
|
|
TTransactionId
|
aTransactionId,
|
|
TInetAddr
&
|
aNextHopAddr,
|
|
const
TDesC8
&
|
aNextHop,
|
|
const
CUri8
&
|
aRemoteTarget,
|
|
const
TDesC8
&
|
aOutboundProxy,
|
|
MSIPSecUser
&
|
aUser,
|
|
MSIPSecObserver
&
|
aObserver
|
|
)
|
|
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. If an SA was updated on return contains also the updated transport identifier.
|
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
& aNextHopAddr
|
the next hop of the original request
|
const
TDesC8
& aNextHop
|
the next hop of the 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.
|
MSIPSecObserver
& aObserver
|
observer that will be notified when after an asynchronous cache update has been completed.
|
SetCredentialsL(TTransactionId, const TDesC8 &, const TDesC8 &, const TDesC8 &, const TDesC8 &)
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 &)
Parameters
const
MSIPSecUser
& aUser
|
SIPSec user
|
const
TDesC8
& aRealm
|
the realm for the credentials
|
const
TDesC8
& aOutboundProxy
|
Outbound proxy
|
const
TDesC8
& aUserName
|
the username
|
const
TDesC8
& aPassword
|
the password
|
SupportedSecurityMechanismsL()
Gets all supported security mechanisms
Member Data Documentation
CSIPSecAgreementContainer * iAgreementContainer
CSIPSecEngineContext * iEngineContext
TSIPSecMechanismIter
iMechanismIter
RPointerArray< MSIPSecSecurityMechanism > iMechanisms
RPointerArray< CSIPSecResponseHandler > iResponseHandlers
MTimerManager & iTimerMgr
MSIPTransportMgr & iTransportMgr
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.