diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/SIP/SIPSec/DigestPlugin/src/sipsecplugincontext.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/SIP/SIPSec/DigestPlugin/src/sipsecplugincontext.cpp Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,301 @@ +// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// Name : sipsecplugincontext.cpp +// Part of : SIPSec/DigestPlugin +// Version : SIP/6.0 +// + + + +#include "sipsecplugincontext.h" +#include "siprequest.h" +#include "sipresponse.h" +#include "sipsecdigestcache.h" +#include "MSIPSecSecurityMechanismObserver.h" +#include "sipsecurityserverheader.h" + +const TInt KSIPSecHeaderOffset = _FOFF( CSIPHeaderBase,iLink ); + +// ============================ MEMBER FUNCTIONS ============================== + + +// ---------------------------------------------------------------------------- +// TSIPSecPluginContext::TSIPSecPluginContext +// ---------------------------------------------------------------------------- +// +TSIPSecPluginContext::TSIPSecPluginContext( CSIPSecDigestPlugin& aPlugin, + const CUri8& aRemoteTarget, + const TDesC8& aOutboundProxy, + MSIPSecUser& aUser, + TRegistrationId aRegistrationId, + TTransactionId aTransactionId ) : + iPlugin( aPlugin ), + iRemoteTarget( aRemoteTarget ), + iOutboundProxy( aOutboundProxy ), + iUser( aUser ), + iRegistrationId( aRegistrationId ), + iTransactionId( aTransactionId ) + { + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginContext::AlsoTrustedUser +// ---------------------------------------------------------------------------- +// +TBool TSIPSecPluginContext::AlsoTrustedUser() + { + return ETrue; + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginContext::RemoteTarget +// ---------------------------------------------------------------------------- +// +const CUri8& TSIPSecPluginContext::RemoteTarget() const + { + return iRemoteTarget; + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginContext::OutboundProxy +// ---------------------------------------------------------------------------- +// +const TDesC8& TSIPSecPluginContext::OutboundProxy() const + { + return iOutboundProxy; + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginContext::SIPSecUser +// ---------------------------------------------------------------------------- +// +MSIPSecUser& TSIPSecPluginContext::SIPSecUser() + { + return iUser; + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginContext::Plugin +// ---------------------------------------------------------------------------- +// +CSIPSecDigestPlugin& TSIPSecPluginContext::Plugin() const + { + return iPlugin; + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginContext::RegistrationId +// ---------------------------------------------------------------------------- +// +TRegistrationId TSIPSecPluginContext::RegistrationId() const + { + return iRegistrationId; + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginContext::TransactionId +// ---------------------------------------------------------------------------- +// +TTransactionId TSIPSecPluginContext::TransactionId() const + { + return iTransactionId; + } + +// ============================ MEMBER FUNCTIONS =============================== + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxRequest::TSIPSecPluginCtxRequest +// ---------------------------------------------------------------------------- +// +TSIPSecPluginCtxRequest::TSIPSecPluginCtxRequest( CSIPSecDigestPlugin& aPlugin, + const CUri8& aRemoteTarget, + const TDesC8& aOutboundProxy, + CSIPRequest& aSIPRequest, + MSIPSecUser& aUser, + TRegistrationId aRegistrationId, + TTransactionId aTransactionId ) : + TSIPSecPluginContext( aPlugin, + aRemoteTarget, + aOutboundProxy, + aUser, + aRegistrationId, + aTransactionId ), + iSIPRequest( aSIPRequest ) + { + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxRequest::SIPRequest +// ---------------------------------------------------------------------------- +// +CSIPRequest& TSIPSecPluginCtxRequest::SIPRequest() + { + return iSIPRequest; + } + + + +// ============================ MEMBER FUNCTIONS ============================== + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxResponse::TSIPSecPluginCtxResponse +// ---------------------------------------------------------------------------- +// +TSIPSecPluginCtxResponse::TSIPSecPluginCtxResponse( + CSIPSecDigestPlugin& aPlugin, + const CUri8& aRemoteTarget, + const TDesC8& aOutboundProxy, + CSIPResponse& aSIPResponse, + CSIPSecDigestCache& aCache, + MSIPSecSecurityMechanismObserver& aObserver, + MSIPSecUser& aUser, + TRegistrationId aRegistrationId, + TTransactionId aTransactionId ) : + + TSIPSecPluginContext( aPlugin, + aRemoteTarget, + aOutboundProxy, + aUser, + aRegistrationId, + aTransactionId ), + iCache( aCache ), + iObserver( aObserver ), + iSIPResponse( aSIPResponse ) + { + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxResponse::Cache +// ---------------------------------------------------------------------------- +// +CSIPSecDigestCache& TSIPSecPluginCtxResponse::Cache() + { + return iCache; + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxResponse::Observer +// ---------------------------------------------------------------------------- +// +MSIPSecSecurityMechanismObserver& TSIPSecPluginCtxResponse::Observer() + { + return iObserver; + } + + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxResponse::SIPResponse +// ---------------------------------------------------------------------------- +// +CSIPResponse& TSIPSecPluginCtxResponse::SIPResponse() + { + return iSIPResponse; + } + + + +// ============================ MEMBER FUNCTIONS ============================== + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxVerify::TSIPSecPluginCtxVerify +// ---------------------------------------------------------------------------- +// +TSIPSecPluginCtxVerify::TSIPSecPluginCtxVerify( + CSIPSecDigestPlugin& aPlugin, + const CUri8& aRemoteTarget, + const TDesC8& aOutboundProxy, + CSIPRequest& aSIPRequest, + CSIPSecurityVerifyHeader& aVerifyHeader, + RPointerArray& aServerHeaders, + MSIPSecUser& aUser, + TRegistrationId aRegistrationId ) : + TSIPSecPluginCtxRequest( aPlugin, + aRemoteTarget, + aOutboundProxy, + aSIPRequest, + aUser, + aRegistrationId, + KEmptyTransactionId ), + iVerifyHeader( aVerifyHeader ), + iServerHeaders( KSIPSecHeaderOffset ) + { + for ( TInt i = 0; i < aServerHeaders.Count() ; ++i ) + { + iServerHeaders.AddLast( *aServerHeaders[ i ] ); + } + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxVerify::SecurityVerifyHeader +// ---------------------------------------------------------------------------- +// +CSIPSecurityVerifyHeader& TSIPSecPluginCtxVerify::SecurityVerifyHeader() + { + return iVerifyHeader; + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxVerify::SecurityServerHeaders +// ---------------------------------------------------------------------------- +// +TSglQue& TSIPSecPluginCtxVerify::SecurityServerHeaders() + { + return iServerHeaders; + } + + + +// ============================ MEMBER FUNCTIONS ============================== + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxInfo::TSIPSecPluginCtxInfo +// ---------------------------------------------------------------------------- +// +TSIPSecPluginCtxInfo::TSIPSecPluginCtxInfo( + CSIPSecDigestPlugin& aPlugin, + const CUri8& aRemoteTarget, + const TDesC8& aOutboundProxy, + CSIPResponse& aSIPResponse, + CSIPAuthenticationInfoHeader& aAuthInfo, + CSIPSecDigestCache& aCache, + MSIPSecSecurityMechanismObserver& aObserver, + MSIPSecUser& aUser, + TRegistrationId aRegistrationId ) : + TSIPSecPluginCtxResponse( aPlugin, aRemoteTarget, aOutboundProxy, + aSIPResponse, aCache, aObserver, aUser, + aRegistrationId, KEmptyTransactionId ), + iAuthInfo( aAuthInfo ) + { + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxInfo::AuthenticationInfoHeader +// ---------------------------------------------------------------------------- +// +CSIPAuthenticationInfoHeader& TSIPSecPluginCtxInfo::AuthenticationInfoHeader() + { + return iAuthInfo; + } + +// ---------------------------------------------------------------------------- +// TSIPSecPluginCtxInfo::AlsoTrustedUser +// Let only the exact SIPSec user to process the Authentication-Info. +// ---------------------------------------------------------------------------- +// +TBool TSIPSecPluginCtxInfo::AlsoTrustedUser() + { + return EFalse; + } + +// End of File