contentpublishingsrv/contentpublishingutils/contentpublishingmap/src/cpsecuritypolicy.cpp
changeset 93 82b66994846c
parent 92 782e3408c2ab
child 94 dbb8300717f7
--- a/contentpublishingsrv/contentpublishingutils/contentpublishingmap/src/cpsecuritypolicy.cpp	Fri Apr 16 14:45:49 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,372 +0,0 @@
-/*
-* Copyright (c) 2008 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:  ?Description
- *  Version     : %version: ou1s60ui#5.1.2 % << Don't touch! Updated by Synergy at check-out.
- *
-*/
-
-
-#include <s32mem.h>
-#include <liwcommon.h>
-#include <e32std.h>
-
-#include "cpsecuritypolicy.h"
-#include "cpdebug.h"
-#include "cpglobals.h"
-
-_LIT( KHex, "0x" );
-_LIT( KTCB, "TCB" );
-_LIT( KLocalServices, "LocalServices" );
-_LIT( KLocation, "Location" );
-_LIT( KNetworkServices, "NetworkServices" );
-_LIT( KReadUserData, "ReadUserData" );
-_LIT( KUserEnvironment, "UserEnvironment" );
-_LIT( KWriteUserData, "WriteUserData" );
-_LIT( KAllFiles, "AllFiles" );
-_LIT( KCommDD, "CommDD" );
-_LIT( KDiskAdmin, "DiskAdmin" );
-_LIT( KDrm, "Drm" );
-_LIT( KMultimediaDD, "MultimediaDD" );
-_LIT( KNetworkControl, "NetworkControl" );
-_LIT( KPowerMgmt, "PowerMgmt" );
-_LIT( KProtServ, "ProtServ" );
-_LIT( KReadDeviceData, "ReadDeviceData" );
-_LIT( KSurroundingsDD, "SurroundingsDD" );
-_LIT( KSwEvent, "SwEvent" );
-_LIT( KTrustedUI, "TrustedUI" );
-_LIT( KWriteDeviceData, "WriteDeviceData" );
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-CCPSecurityPolicy::CCPSecurityPolicy( const RMessage2& aMessage ): 
-                                                           iMessage( aMessage )
-    {
-
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CCPSecurityPolicy::ConstructL()
-    {
-  
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-CCPSecurityPolicy* CCPSecurityPolicy::NewL( const RMessage2& aMessage )
-    {
-    CCPSecurityPolicy* self = CCPSecurityPolicy::NewLC( aMessage );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-CCPSecurityPolicy* CCPSecurityPolicy::NewLC( const RMessage2& aMessage )
-    {
-    CCPSecurityPolicy* self = new( ELeave ) CCPSecurityPolicy( aMessage );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-CCPSecurityPolicy::~CCPSecurityPolicy()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CCPSecurityPolicy::GetDefaultSecurityL( RBuf8& aResult ) const
-    {
-    CLiwDefaultMap* aclMap = CLiwDefaultMap::NewLC();
-    CLiwDefaultMap* writeMap = CLiwDefaultMap::NewLC();
-    CLiwDefaultMap* deleteMap = CLiwDefaultMap::NewLC();
-    
-    TUint32 publisherUid = iMessage.SecureId();
-    
-    TBuf<10> uidString;
-    uidString.Append( KHex );
-    uidString.AppendNumFixedWidth(publisherUid,EHex,8);
-    
-    writeMap->InsertL( KUIDs, TLiwVariant( uidString ) );
-    deleteMap->InsertL( KUIDs, TLiwVariant( uidString ) );
-    
-    aclMap->InsertL( KACLWrite, TLiwVariant( writeMap ) );
-    aclMap->InsertL( KACLDelete, TLiwVariant( deleteMap ) );
-
-    //externalize
-    aResult.CreateL( aclMap->Size() );
-    RDesWriteStream strm( aResult );
-    CleanupClosePushL( strm );
-    aclMap->ExternalizeL( strm );
-    strm.CommitL( );
-     
-    CleanupStack::PopAndDestroy( &strm );    
-    CleanupStack::PopAndDestroy( deleteMap );
-    CleanupStack::PopAndDestroy( writeMap );
-    CleanupStack::PopAndDestroy( aclMap );
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CCPSecurityPolicy::CheckSecurityL( TPtrC8& aBinary, 
-                                        TACLPolicy aPolicy ) const
-    {
-    TBool error( ETrue );    
-    RDesReadStream datastrm( aBinary );
-    CleanupClosePushL( datastrm );
-    CLiwDefaultMap* map = CLiwDefaultMap::NewLC( datastrm );
-    TLiwVariant variant;
-    variant.PushL();
-    switch( aPolicy )
-        {
-        case ERead:
-            if( map->FindL( KACLRead, variant ) )
-                {
-                error = DoCheckSecurityL( variant.AsMap() );
-                }
-        break;
-        case EWrite:
-            if( map->FindL( KACLWrite, variant ) )
-                {
-                error = DoCheckSecurityL( variant.AsMap() );
-                }
-        break;
-        case EDelete:
-            if( map->FindL( KACLDelete, variant ) )
-                {
-                error = DoCheckSecurityL( variant.AsMap() );
-                }
-        break;
-        default:
-            User::Leave( KErrNotSupported );
-        }
-    CleanupStack::PopAndDestroy( &variant );
-    CleanupStack::PopAndDestroy( map );
-    CleanupStack::PopAndDestroy( &datastrm );
-    return error;
-    }
-    
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//    
-TBool CCPSecurityPolicy::DoCheckSecurityL( const CLiwMap* aMap ) const
-    {
-    TLiwVariant variant;
-    variant.PushL();
-    TBool denyAccess( ETrue );
-    if( aMap->FindL( KUIDs, variant ) )
-        {
-        TPtrC uidList( KNullDesC );
-        if( variant.Get( uidList) )
-            {
-            denyAccess = CheckUids( uidList );
-            }
-        }
-    if( denyAccess && aMap->FindL( KCapability, variant ) )
-        {
-        TPtrC capList( KNullDesC );
-        if( variant.Get( capList ) )
-            {
-            denyAccess = CheckCapabilities( capList );
-            }
-        }
-    CleanupStack::PopAndDestroy( &variant );
-    return !denyAccess;
-    }
-
- // ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//   
-TBool CCPSecurityPolicy::CheckUids( const TDesC& aList ) const
-    {
-    TInt i( 1 );
-    TBool denyAccess( ETrue );
-    TPtrC singleUid( KNullDesC );
-    while( i )
-        {
-        ExctractNextToken( aList , singleUid, i );
-        TLex converter( singleUid );
-        converter.Inc( KHex().Length() );
-        TUint32 aclUid( 0 );
-        converter.Val( aclUid , EHex );
-        if( iMessage.SecureId().iId == aclUid )
-            {
-            denyAccess = EFalse;
-            break;
-            }
-        ++i;    
-        }
-    return denyAccess;
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CCPSecurityPolicy::CheckCapabilities( const TDesC& aList ) const
-    {
-    TInt i( 1 );
-    TBool denyAccess( EFalse );
-    TPtrC singleCap( KNullDesC );
-    while( i )
-        {
-        ExctractNextToken( aList , singleCap, i );
-        if( !iMessage.HasCapability( GetCapability( singleCap ) ) )
-            {
-            denyAccess = ETrue;
-            break;
-            }  
-        ++i;    
-        }
-    return denyAccess;
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//  
-void CCPSecurityPolicy::ExctractNextToken( const TDesC& aList, 
-                                            TPtrC& aResult , TInt& aPos ) const
-    {
-    TPtrC buf( aList );
-    for( TInt x(0); x < aPos; x++ )
-        {
-        TInt pos = buf.Locate(':');
-        if( pos!= KErrNotFound )
-            {
-            aResult.Set( buf.Left( pos ) );
-            buf.Set( buf.Right( buf.Length() - pos - 1 ) );
-            }
-        else
-            {
-            aResult.Set( buf );
-            aPos = -1;
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//  
-TCapability CCPSecurityPolicy::GetCapability( const TDesC& aCapability ) const
-    {
-    TCapability ret( ECapability_None );
-    if( aCapability == KTCB )
-        {
-        ret = ECapabilityTCB;
-        }
-    else if( aCapability == KLocalServices )
-        {
-        ret = ECapabilityLocalServices;
-        }
-    else if( aCapability == KLocation )
-        {
-        ret = ECapabilityLocation;
-        }
-    else if( aCapability == KNetworkServices )
-        {
-        ret = ECapabilityNetworkServices;
-        }
-    else if( aCapability == KReadUserData )
-        {
-        ret = ECapabilityReadUserData;
-        }
-    else if( aCapability == KUserEnvironment )
-        {
-        ret = ECapabilityUserEnvironment;
-        }
-    else if( aCapability == KWriteUserData )
-        {
-        ret = ECapabilityWriteUserData;
-        }
-    else if( aCapability == KAllFiles )
-        {
-        ret = ECapabilityAllFiles;
-        }
-    else if( aCapability == KDiskAdmin )
-        {
-        ret = ECapabilityDiskAdmin;
-        }
-    else if( aCapability == KCommDD )
-        {
-        ret = ECapabilityCommDD;
-        }
-    else if( aCapability == KDrm )
-        {
-        ret = ECapabilityDRM;
-        }
-    else if( aCapability == KMultimediaDD )
-        {
-        ret = ECapabilityMultimediaDD;
-        }
-    else if( aCapability == KNetworkControl )
-        {
-        ret = ECapabilityNetworkControl;
-        }
-    else if( aCapability == KPowerMgmt )
-        {
-        ret = ECapabilityPowerMgmt;
-        }
-    else if( aCapability == KProtServ )
-        {
-        ret = ECapabilityProtServ;
-        }                            
-    else if( aCapability == KReadDeviceData )
-        {
-        ret = ECapabilityReadDeviceData;
-        }                            
-    else if( aCapability == KSurroundingsDD )
-        {
-        ret = ECapabilitySurroundingsDD;
-        }
-    else if( aCapability == KSwEvent )
-        {
-        ret = ECapabilitySwEvent;
-        }
-    else if( aCapability == KTrustedUI )
-        {
-        ret = ECapabilityTrustedUI;
-        }                        
-    else if( aCapability == KWriteDeviceData )
-        {
-        ret = ECapabilityWriteDeviceData;
-        }
-    else ret = ECapability_None;                        
-    return ret;
-    }   
-