--- a/vpnengine/ikev1lib/src/credentialcache.cpp Wed Sep 15 13:20:54 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
- /*
-* Copyright (c) 2010 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: Cache for authentication credentials
-*
-*/
-
-#include <f32file.h>
-
-#include "credentialcache.h"
-#include "ikedebug.h"
-#include "cmutils.h"
-
-
-_LIT( KFileName, "cache" );
-
-
-CCredentialCache* CCredentialCache::NewL( MIkeDebug& aDebug )
-{
- CCredentialCache* cache = new (ELeave) CCredentialCache( aDebug );
-
- CleanupStack::PushL( cache );
-
- cache->ConstructL();
-
- CleanupStack::Pop();
-
- return cache;
-}
-
-
-CCredentialCache::CCredentialCache( MIkeDebug& aDebug )
- : iDebug( aDebug )
-{
-}
-
-
-void CCredentialCache::ConstructL()
-{
- User::LeaveIfError( iFs.Connect() );
-
- DEBUG_LOG( _L( "CCredentialCache::ConstructL" ) );
-}
-
-
-CCredentialCache::~CCredentialCache()
-{
- iFs.Close();
-}
-
-
-void CCredentialCache::SetUserName( const TDesC8& aUser )
-{
- if( KErrNone != CheckCredential( aUser ) )
- {
- return;
- }
-
- iBuf.iUser.Copy( aUser );
-}
-
-
-void CCredentialCache::SetSecret( const TDesC8& aSecret )
-{
- if( KErrNone != CheckCredential( aSecret ) )
- {
- return;
- }
-
- iBuf.iSecret.Copy( aSecret );
-}
-
-
-TInt CCredentialCache::GetCredentials(
- const TUint32 aVpnApId, HBufC8*& aUser, HBufC8*& aSecret )
-{
- TInt ret = KErrNone;
-
- TRAPD( err, ret = GetCredentialsL( aVpnApId, aUser, aSecret ) );
-
- if( KErrNone != err )
- {
- DEBUG_LOG1( _L("CCredentialCache::GetCredentials, err=%d"), err );
- return err;
- }
-
- return ret;
-}
-
-
-TInt CCredentialCache::GetCredentialsL(
- const TUint32 aVpnApId, HBufC8*& aUser, HBufC8*& aSecret )
-{
- TInt ret = ReadFile();
-
- if( KErrNone != ret )
- {
- return ret;
- }
-
- TVpnPolicyId id;
-
- CmUtils::GetPolicyIdL( aVpnApId, id );
-
- if( id != iBuf.iId )
- {
- DEBUG_LOG1(
- _L("CCredentialCache::GetCredentialsL, pol=%S"), &iBuf.iId
- );
-
- return KErrNotFound;
- }
-
- aUser = iBuf.iUser.AllocL();
- aSecret = iBuf.iSecret.AllocL();
-
- return KErrNone;
-}
-
-
-void CCredentialCache::Store( const TUint32 aVpnApId )
-{
- TRAPD( err, StoreL( aVpnApId ) );
-
- if( KErrNone != err )
- {
- DEBUG_LOG1( _L("CCredentialCache::Store, err=%d"), err );
- }
-}
-
-
-void CCredentialCache::StoreL( const TUint32 aVpnApId )
-{
- CmUtils::GetPolicyIdL( aVpnApId, iBuf.iId );
-
- StoreToFileL();
-}
-
-
-void CCredentialCache::Clear()
-{
- TInt ret = CreateFileNameAndPath();
-
- if( KErrNone != ret )
- {
- return;
- }
-
- ret = iFs.Delete( iFileName );
-
- if( KErrNone != ret )
- {
- DEBUG_LOG1( _L("CCredentialCache::Clear, ret=%d"), ret );
- }
-}
-
-
-TInt CCredentialCache::CheckCredential( const TDesC8& cr )
-{
- TInt len = cr.Length();
-
- if( 0 == len || KCredentialMaxLen < len )
- {
- DEBUG_LOG1( _L("CCredentialCache::CheckCredential, len=%d"), len );
- return KErrArgument;
- }
-
- return KErrNone;
-}
-
-
-void CCredentialCache::StoreToFileL()
-{
- RFile cache;
-
- User::LeaveIfError( CreateFileNameAndPath() );
-
- User::LeaveIfError( cache.Replace(
- iFs, iFileName, EFileShareExclusive | EFileWrite
- ) );
-
- CleanupClosePushL( cache );
-
- TPckg< TCacheBuffer > data( iBuf );
-
- User::LeaveIfError( cache.Write( data ) );
-
- CleanupStack::PopAndDestroy( &cache );
-}
-
-
-TInt CCredentialCache::ReadFile()
-{
- RFile cache;
-
- TInt ret = cache.Open( iFs, KFileName, EFileRead );
-
- if( KErrNone != ret )
- {
- return ret;
- }
-
- TInt size = 0;
-
- ret = cache.Size( size );
-
- TPckg< TCacheBuffer > data( iBuf );
-
- if( size != data.Size() )
- {
- DEBUG_LOG1( _L("CCredentialCache::ReadFile, size=%d"), size );
- cache.Close();
- Clear();
- return KErrCorrupt;
- }
-
- ret = cache.Read( data );
-
- cache.Close();
-
- return ret;
-}
-
-
-TInt CCredentialCache::CreateFileNameAndPath()
-{
- TInt ret = iFs.CreatePrivatePath( RFs::GetSystemDrive() );
-
- if( KErrNone != ret &&
- KErrAlreadyExists != ret )
- {
- DEBUG_LOG1( _L("CCredentialCache, CreatePrivatePath ret=%d"), ret );
- return ret;
- }
-
- ret = iFs.PrivatePath( iFileName );
-
- if( KErrNone != ret )
- {
- DEBUG_LOG1( _L("CCredentialCache, PrivatePath ret=%d"), ret );
- return ret;
- }
-
- iFileName.Append( KFileName );
-
- return KErrNone;
-}
-
-
-/***/