diff -r 95243422089a -r 491b3ed49290 deviceencryption/DevEncUi/src/DevEncUiFileManager.cpp --- a/deviceencryption/DevEncUi/src/DevEncUiFileManager.cpp Thu Aug 19 09:42:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -/* -* Copyright (c) 2005 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: Implementation of CDevEncUiFileManager. -* -*/ - -#include "DevEncLog.h" -#include "DevEncUids.hrh" -#include "DevEncUiFileManager.h" - -#include -#include -#include - -// -------------------------------------------------------------------------- -// CDevEncUiFileManager::CDevEncUiFileManager() -// -// -------------------------------------------------------------------------- -void CDevEncUiFileManager::ConstructL() - { - User::LeaveIfError( iFs.Connect() ); - } - -// -------------------------------------------------------------------------- -// CDevEncUiFileManager::CDevEncUiFileManager() -// -// -------------------------------------------------------------------------- -CDevEncUiFileManager::~CDevEncUiFileManager() - { - iFs.Close(); - } - -// -------------------------------------------------------------------------- -// CDevEncUiFileManager::SaveKeyL() -// -// -------------------------------------------------------------------------- -void CDevEncUiFileManager::SaveKeyL( CFileStore* aStore, - const TDesC8& aPkcs5Key ) const - { - RStoreWriteStream write; - - aStore->SetTypeL( aStore->Layout() ); - - //write the encryption key to a new stream - write.CreateLC( *aStore ); - write << aPkcs5Key; - write.CommitL(); - CleanupStack::PopAndDestroy(); //CreateLC() - - aStore->Commit(); - } - -// -------------------------------------------------------------------------- -// CDevEncUiFileManager::LoadKeyL() -// -// -------------------------------------------------------------------------- -void CDevEncUiFileManager::LoadKeyL( const TFileName& aFileName, - HBufC8*& aPkcs5Key ) - { - DFLOG2( "CDevEncUiFileManager::LoadKeyL Filename %S", &aFileName ); - //prepare to read the streams back in, creating a new TPBEncryptionData - RStoreReadStream read; - - // open the next PFS - CFileStore *store = CPermanentFileStore::OpenLC( iFs, - aFileName, - EFileRead ); - - DFLOG("CPermanentFileStore::OpenLC passed"); - - TStreamId dataStreamId( 1 ); // we know it was the first stream written - read.OpenLC( *store, dataStreamId ); - DFLOG("RStoreReadStream::OpenLC passed"); - //read in Encryption key - aPkcs5Key = HBufC8::NewL( read, KMaxTInt ); - DFLOG("HBufC8::NewL passed"); - CleanupStack::Pop(); // read - read.Close(); - CleanupStack::PopAndDestroy( store ); - } - -// -------------------------------------------------------------------------- -// CDevEncUiFileManager::OpenFileStore() -// -// -------------------------------------------------------------------------- -TInt CDevEncUiFileManager::OpenFileStore( const TDesC& aFilename, - CFileStore*& aStore ) - { - // Leaves with KErrAlreadyExists if file exists from before - TInt error( KErrNone ); - CFileStore* store( NULL ); - TRAP( error, store = CPermanentFileStore::CreateL( iFs, - aFilename, - EFileRead | EFileWrite ) ); - if ( !error ) - { - aStore = store; - } - return error; - } - -// -------------------------------------------------------------------------- -// CDevEncUiFileManager::GetKeyListL() -// -// -------------------------------------------------------------------------- -void CDevEncUiFileManager::GetKeyListL( CDir*& aList ) - { - // Construct file path - _LIT( KAsterisk, "*" ); - _LIT( KDevEncKeyFileExtension, ".pk5"); - - TBuf filePath; - User::LeaveIfError( KeyFolder( filePath ) ); - filePath.Append( KAsterisk ); - filePath.Append( KDevEncKeyFileExtension ); - - TInt error = iFs.GetDir( filePath, - KEntryAttNormal, // Any file, not hidden and system files - ESortByName, - aList ); - if ( error ) - { - DFLOG2( "Could not get dir listing, error %d", error ); - User::Leave( error ); - } - } - -// -------------------------------------------------------------------------- -// CDevEncUiFileManager::DriveToChar() -// -// -------------------------------------------------------------------------- -TInt CDevEncUiFileManager::DriveToChar( TInt aDrive, TChar &aChar ) - { - return iFs.DriveToChar( aDrive, aChar ); - } - -// -------------------------------------------------------------------------- -// CDevEncUiFileManager::KeyFolder() -// -// -------------------------------------------------------------------------- -TInt CDevEncUiFileManager::KeyFolder( TDes& aResult ) - { - DFLOG("KeyFolder()"); - TInt result( KErrNone ); - if ( !result ) - { - DFLOG("1st Append"); - aResult.Append( PathInfo::PhoneMemoryRootPath() ); - DFLOG("2nd Append"); - aResult.Append( PathInfo::OthersPath() ); - } - DFLOG2( "CDevEncUiFileManager::KeyFolder %S", &aResult ); - return result; - } - -// -------------------------------------------------------------------------- -// CDevEncUiFileManager::RemountMmc() -// -// -------------------------------------------------------------------------- -TInt CDevEncUiFileManager::RemountMmc() - { - return iFs.RemountDrive( /*EDriveE*/EDriveF ); - } - -// End of file