realtimenetprots/sipfw/SIP/SIPSec/DigestPlugin/src/sipsecplugincontext.cpp
changeset 0 307788aac0a8
--- /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<CSIPSecurityServerHeader>& 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<CSIPHeaderBase>& 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