| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Tue, 02 Feb 2010 00:44:34 +0200 | |
| changeset 1 | d5423fbb4f29 | 
| parent 0 | 164170e6151a | 
| child 12 | a005fc61b02a | 
| permissions | -rw-r--r-- | 
| 0 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 1 | /* | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 2 | * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 3 | * All rights reserved. | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 4 | * This component and the accompanying materials are made available | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 5 | * under the terms of "Eclipse Public License v1.0" | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 6 | * which accompanies this distribution, and is available | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 7 | * at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 8 | * | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 9 | * Initial Contributors: | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 10 | * Nokia Corporation - initial contribution. | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 11 | * | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 12 | * Contributors: | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 13 | * | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 14 | * Description: Implementation of CDevEncKeyUtils | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 15 | * | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 16 | */ | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 17 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 18 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 19 | // INCLUDE FILES | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 20 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 21 | // Class includes | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 22 | #include "DevEncDef.h" | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 23 | #include "DevEncKeyUtils.h" | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 24 | #include "DevEncLog.h" | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 25 | #include "DevEncUids.hrh" | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 26 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 27 | #include <pbe.h> | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 28 | #include <pbedata.h> | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 29 | //#include <PathInfo.h> // for system path literals | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 30 | #include <pkcs5kdf.h> | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 31 | #include <s32file.h> | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 32 | #include <s32mem.h> | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 33 | #include <imcvcodc.h> | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 34 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 35 | #include <DevEncEngineConstants.h> | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 36 | #include <DevEncEngineBase.h> | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 37 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 38 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 39 | // CDevEncKeyUtils::Connect() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 40 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 41 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 42 | EXPORT_C TInt CDevEncKeyUtils::Connect() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 43 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 44 | TRAPD( err, LoadDevEncEngineL() ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 45 | return err; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 46 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 47 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 48 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 49 | // CDevEncKeyUtils::Connect() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 50 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 51 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 52 | EXPORT_C void CDevEncKeyUtils::Close() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 53 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 54 | UnloadDevEncEngine(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 55 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 56 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 57 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 58 | // CDevEncKeyUtils::CDevEncKeyUtils() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 59 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 60 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 61 | EXPORT_C CDevEncKeyUtils::CDevEncKeyUtils(): iConnect( EFalse ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 62 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 63 | // No implementation necessary | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 64 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 65 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 66 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 67 | // CDevEncKeyUtils::CDevEncKeyUtils() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 68 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 69 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 70 | CDevEncKeyUtils::~CDevEncKeyUtils() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 71 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 72 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 73 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 74 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 75 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 76 | // CDevEncKeyUtils::CreateSetKey() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 77 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 78 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 79 | EXPORT_C void CDevEncKeyUtils::CreateSetKey( TRequestStatus& aStatus, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 80 | HBufC8*& aResult, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 81 | const TDesC8& aPassword, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 82 | const TInt aLength ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 83 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 84 | TInt error( KErrNone ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 85 | if ( ! ProcessHasCapability( ECapabilityDiskAdmin ) ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 86 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 87 | DFLOG( "Process does not have DiskAdmin capability" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 88 | error = KErrAccessDenied; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 89 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 90 | else if ( aPassword.Length() > KMaxPasswordLength || | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 91 | aPassword.Length() < KMinPasswordLength ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 92 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 93 | DFLOG( "CDevEncKeyUtils::CreateSetKey Invalid password length" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 94 | error = KErrArgument; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 95 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 96 | else if ( aLength > KEncryptionKeyLength ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 97 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 98 | DFLOG( "CDevEncKeyUtils::CreateSetKey Invalid key length" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 99 | error = KErrArgument; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 100 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 101 | else | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 102 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 103 | TRAP( error, DoCreateSetKeyL( aResult, aPassword, aLength ) ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 104 | DFLOG2( "CDevEncKeyUtils::CreateSetKey result %d", error ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 105 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 106 | TRequestStatus* statusPtr = &aStatus; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 107 | User::RequestComplete( statusPtr, error ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 108 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 109 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 110 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 111 | // CDevEncKeyUtils::CreateSetKey() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 112 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 113 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 114 | EXPORT_C void CDevEncKeyUtils::CreateSetKey( TRequestStatus& aStatus, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 115 | const TInt aLength ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 116 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 117 | TInt error( KErrNone ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 118 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 119 | HBufC8* password( NULL ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 120 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 121 | if ( ! ProcessHasCapability( ECapabilityDiskAdmin ) ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 122 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 123 | DFLOG( "Process does not have DiskAdmin capability" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 124 | error = KErrAccessDenied; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 125 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 126 | if ( aLength > KEncryptionKeyLength ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 127 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 128 | DFLOG( "CDevEncKeyUtils::CreateSetKey Invalid key length" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 129 | error = KErrArgument; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 130 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 131 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 132 | if ( !error ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 133 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 134 | TRAP( error, password = HBufC8::NewL( KMaxPasswordLength ) ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 135 | if ( error ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 136 |             {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 137 | DFLOG2( "Pwd buf alloc error %d", error ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 138 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 139 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 140 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 141 | if ( !error ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 142 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 143 | // Get some random password | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 144 | TPtr8 passwordPtr = password->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 145 | passwordPtr.SetLength( KMaxPasswordLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 146 | if( iConnect ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 147 |             {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 148 | iDevEncEngine->RandomDataGet( passwordPtr, KMaxPasswordLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 149 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 150 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 151 | DFLOG( "Random password allocated" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 152 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 153 | TRAP( error, DoCreateSetKeyL( *password, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 154 | aLength ) ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 155 | DFLOG2( "CDevEncKeyUtils::CreateSetKey result %d", error ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 156 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 157 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 158 | // Cleanup on demand | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 159 | if ( password ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 160 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 161 | delete password; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 162 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 163 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 164 | TRequestStatus* statusPtr = &aStatus; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 165 | User::RequestComplete( statusPtr, error ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 166 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 167 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 168 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 169 | // CDevEncKeyUtils::DoCreateSetKey() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 170 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 171 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 172 | void CDevEncKeyUtils::DoCreateSetKeyL( const TDesC8& aPassword, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 173 | TInt aLength ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 174 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 175 | DFLOG2( ">>CDevEncKeyUtils::DoCreateSetKeyL, length %d", aLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 176 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 177 | // Get some random key data | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 178 | HBufC8* clearKey = HBufC8::NewLC( aLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 179 | TPtr8 clearKeyPtr = clearKey->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 180 | clearKeyPtr.SetLength( aLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 181 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 182 | if( iConnect ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 183 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 184 | iDevEncEngine->RandomDataGet( clearKeyPtr, KMaxPasswordLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 185 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 186 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 187 | // if supply KDF, must also supply salt len and iteration count | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 188 | CPBEncryptElement* encryption = CPBEncryptElement::NewLC( aPassword, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 189 | ECipherDES_CBC ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 190 | CPBEncryptor* encryptor = encryption->NewEncryptLC(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 191 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 192 | HBufC8* ciphertextTemp = HBufC8::NewLC( encryptor->MaxFinalOutputLength( clearKey->Length() ) ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 193 | TPtr8 ciphertext = ciphertextTemp->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 194 | encryptor->ProcessFinalL( *clearKey, ciphertext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 195 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 196 | // ENCRYPTION DONE | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 197 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 198 | DFLOG( "DoCreateSetKeyL, Key in plaintext:" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 199 | RDebug::RawPrint( clearKeyPtr ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 200 | DFLOG( "DoCreateSetKeyL, Key in ciphertext:" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 201 | RDebug::RawPrint( ciphertext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 202 | DFLOG( "DoCreateSetKeyL, Password:" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 203 | RDebug::RawPrint( aPassword ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 204 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 205 | if( iConnect ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 206 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 207 | // Take the new key in use | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 208 | iDevEncEngine->TakeKeyInUseL( *clearKey ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 209 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 210 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 211 | // Destroy the evidence | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 212 | CleanupStack::PopAndDestroy( ciphertextTemp ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 213 | CleanupStack::PopAndDestroy( encryptor ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 214 | CleanupStack::PopAndDestroy( encryption ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 215 | CleanupStack::PopAndDestroy( clearKey ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 216 | }; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 217 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 218 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 219 | // CDevEncKeyUtils::DoCreateSetKey() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 220 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 221 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 222 | void CDevEncKeyUtils::DoCreateSetKeyL( HBufC8*& aResult, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 223 | const TDesC8& aPassword, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 224 | TInt aLength ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 225 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 226 | DFLOG2( ">>CDevEncKeyUtils::DoCreateSetKeyL, length %d", aLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 227 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 228 | // Get some random key data | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 229 | HBufC8* clearKey = HBufC8::NewLC( aLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 230 | TPtr8 clearKeyPtr = clearKey->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 231 | clearKeyPtr.SetLength( aLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 232 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 233 | if( iConnect ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 234 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 235 | iDevEncEngine->RandomDataGet( clearKeyPtr, KMaxPasswordLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 236 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 237 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 238 | // if supply KDF, must also supply salt len and iteration count | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 239 | CPBEncryptElement* encryption = CPBEncryptElement::NewLC( aPassword, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 240 | ECipherDES_CBC ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 241 | CPBEncryptor* encryptor = encryption->NewEncryptLC(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 242 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 243 | HBufC8* ciphertextTemp = HBufC8::NewLC( encryptor->MaxFinalOutputLength( clearKey->Length() ) ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 244 | TPtr8 ciphertext = ciphertextTemp->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 245 | encryptor->ProcessFinalL( *clearKey, ciphertext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 246 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 247 | // ENCRYPTION DONE | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 248 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 249 | DFLOG( "DoCreateSetKeyL, Key in plaintext:" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 250 | RDebug::RawPrint( clearKeyPtr ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 251 | DFLOG( "DoCreateSetKeyL, Key in ciphertext:" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 252 | RDebug::RawPrint( ciphertext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 253 | DFLOG( "DoCreateSetKeyL, Password:" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 254 | RDebug::RawPrint( aPassword ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 255 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 256 | if( iConnect ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 257 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 258 | // Take the new key in use | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 259 | iDevEncEngine->TakeKeyInUseL( *clearKey ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 260 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 261 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 262 | // If we got this far, the operation was successful. | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 263 | // Give the caller a copy of the encrypted key | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 264 | // Externalize the key data and ciphertext | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 265 | HBufC8* result = HBufC8::NewLC( ciphertext.Length() + | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 266 | KMaxPasswordLength + | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 267 | 50 // should be enough for encryption data | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 268 | ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 269 | TPtr8 resultPtr = result->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 270 | ExternalizeKeyL( encryption, ciphertext, resultPtr ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 271 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 272 | // Encode key to base64 before returning it | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 273 | aResult = HBufC8::NewL( resultPtr.Length()*4/3+3 ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 274 | TPtr8 returnPtr = aResult->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 275 | returnPtr.SetLength( 0 ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 276 | TImCodecB64 b64codec; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 277 | b64codec.Initialise(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 278 | b64codec.Encode( *result, returnPtr ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 279 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 280 | // Destroy the evidence | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 281 | CleanupStack::PopAndDestroy( result ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 282 | CleanupStack::PopAndDestroy( ciphertextTemp ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 283 | CleanupStack::PopAndDestroy( encryptor ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 284 | CleanupStack::PopAndDestroy( encryption ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 285 | CleanupStack::PopAndDestroy( clearKey ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 286 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 287 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 288 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 289 | // CDevEncKeyUtils::SetKey() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 290 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 291 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 292 | EXPORT_C void CDevEncKeyUtils::SetKey( TRequestStatus& aStatus, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 293 | const TDesC8& aPkcs5Key, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 294 | const TDesC8& aPassword ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 295 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 296 | TInt error( KErrNone ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 297 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 298 | if ( ! ProcessHasCapability( ECapabilityDiskAdmin ) ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 299 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 300 | DFLOG( "Process does not have DiskAdmin capability" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 301 | error = KErrAccessDenied; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 302 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 303 | else | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 304 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 305 | TRAP( error, DoSetKeyL( aPkcs5Key, aPassword ) ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 306 | DFLOG2( "CDevEncKeyUtils::SetKey result %d", error ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 307 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 308 | TRequestStatus* statusPtr = &aStatus; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 309 | User::RequestComplete( statusPtr, error ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 310 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 311 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 312 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 313 | // CDevEncKeyUtils::DoSetKey() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 314 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 315 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 316 | void CDevEncKeyUtils::DoSetKeyL( const TDesC8& aPkcs5Key, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 317 | const TDesC8& aPassword ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 318 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 319 | // Decode the base64 encoded key | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 320 | HBufC8* decodedKey = HBufC8::NewLC( aPkcs5Key.Length()*3/4 ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 321 | TPtr8 keyPtr = decodedKey->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 322 | keyPtr.SetLength( 0 ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 323 | TImCodecB64 b64codec; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 324 | b64codec.Initialise(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 325 | b64codec.Decode( aPkcs5Key, keyPtr ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 326 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 327 | // Read the parameters and ciphertext from the input | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 328 | CPBEncryptElement* encryption( NULL ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 329 | HBufC8* ciphertext( NULL ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 330 | InternalizeKeyL( encryption, aPassword, ciphertext, *decodedKey ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 331 | CleanupStack::PopAndDestroy( decodedKey ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 332 | CleanupStack::PushL( encryption ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 333 | CleanupStack::PushL( ciphertext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 334 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 335 | // Decrypt and take key in use | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 336 | CPBDecryptor* decryptor = encryption->NewDecryptLC(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 337 | HBufC8* plaintextTemp = | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 338 | HBufC8::NewLC( decryptor->MaxOutputLength( (*ciphertext).Size() ) ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 339 | TPtr8 plaintext = plaintextTemp->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 340 | decryptor->Process( *ciphertext, plaintext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 341 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 342 | Pkcs5RemovePadding( plaintext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 343 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 344 | if( iConnect ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 345 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 346 | // Take the new key in use | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 347 | iDevEncEngine->TakeKeyInUseL( plaintext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 348 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 349 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 350 | DFLOG( "DoSetKeyL, Key in plaintext:" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 351 | RDebug::RawPrint( plaintext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 352 | DFLOG( "DoSetKeyL, Key in ciphertext:" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 353 | RDebug::RawPrint( *ciphertext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 354 | DFLOG( "DoSetKeyL, Password:" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 355 | RDebug::RawPrint( aPassword ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 356 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 357 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 358 | CleanupStack::PopAndDestroy( plaintextTemp ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 359 | CleanupStack::PopAndDestroy( decryptor ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 360 | CleanupStack::PopAndDestroy( ciphertext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 361 | CleanupStack::PopAndDestroy( encryption ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 362 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 363 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 364 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 365 | // CDevEncKeyUtils::ResetKey() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 366 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 367 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 368 | EXPORT_C void CDevEncKeyUtils::ResetKey( TRequestStatus& aStatus ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 369 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 370 | TInt error( KErrNone ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 371 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 372 | if ( ! ProcessHasCapability( ECapabilityDiskAdmin ) ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 373 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 374 | DFLOG( "Process does not have DiskAdmin capability" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 375 | error = KErrAccessDenied; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 376 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 377 | else | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 378 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 379 | TBuf8<KEncryptionKeyLength> nullKey; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 380 | nullKey.FillZ( KEncryptionKeyLength ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 381 | TRAP( error, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 382 | if( iConnect ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 383 |                   {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 384 | // Take the new key in use | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 385 | iDevEncEngine->TakeKeyInUseL( nullKey ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 386 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 387 | ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 388 | DFLOG2( "CDevEncKeyUtils::TakeKeyInUseL result %d", error ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 389 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 390 | TRequestStatus* statusPtr = &aStatus; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 391 | User::RequestComplete( statusPtr, error ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 392 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 393 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 394 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 395 | // CDevEncKeyUtils::GetNewFileStoreL() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 396 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 397 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 398 | void CDevEncKeyUtils::GetNewFileStoreL( RFs& aFs, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 399 | TDes& aFileName, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 400 | CFileStore*& aStore ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 401 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 402 | // Leaves with KErrAlreadyExists if file exists from before | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 403 | aStore = CPermanentFileStore::CreateL( aFs, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 404 | aFileName, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 405 | EFileRead | EFileWrite ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 406 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 407 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 408 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 409 | // CDevEncKeyUtils::SaveKeyL() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 410 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 411 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 412 | void CDevEncKeyUtils::SaveKeyL( CFileStore* aStore, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 413 | const CPBEncryptElement* aElement, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 414 | const TDesC8& aCiphertext ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 415 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 416 | RStoreWriteStream write; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 417 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 418 | aStore->SetTypeL( aStore->Layout() ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 419 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 420 | //write the encryption data to a new stream | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 421 | write.CreateLC( *aStore ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 422 | aElement->EncryptionData().ExternalizeL( write ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 423 | write.CommitL(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 424 | CleanupStack::PopAndDestroy(); //CreateLC() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 425 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 426 | //write the cyphertext to a new stream | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 427 | write.CreateLC( *aStore ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 428 | write << aCiphertext; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 429 | write.CommitL(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 430 | CleanupStack::PopAndDestroy(); //CreateLC() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 431 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 432 | aStore->Commit(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 433 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 434 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 435 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 436 | // CDevEncKeyUtils::LoadKeyLC() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 437 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 438 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 439 | void CDevEncKeyUtils::LoadKeyLC( RFs& aFs, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 440 | const TFileName& aFileName, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 441 | CPBEncryptionData*& aData, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 442 | HBufC8*& aCiphertext ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 443 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 444 | //prepare to read the streams back in, creating a new TPBEncryptionData | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 445 | RStoreReadStream read; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 446 | // open the next PFS | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 447 | CFileStore *store = CPermanentFileStore::OpenLC( aFs, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 448 | aFileName, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 449 | EFileRead ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 450 | TStreamId dataStreamId( 1 ); // we know it was the first stream written | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 451 | read.OpenLC( *store, dataStreamId ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 452 | // CleanupStack::Pop(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 453 | //read in Encryption data | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 454 | aData = CPBEncryptionData::NewL( read ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 455 | CleanupStack::Pop(); // read | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 456 | read.Close(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 457 | CleanupStack::PushL( aData ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 458 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 459 | //read in ciphertext key | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 460 | TStreamId cipherId( 2 ); // we know it was the second stream written | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 461 | read.OpenLC( *store, cipherId ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 462 | CleanupStack::Pop(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 463 | aCiphertext = HBufC8::NewL( read, 10000 ); //some large number | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 464 | read.Close(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 465 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 466 | CleanupStack::Pop( aData ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 467 | CleanupStack::PopAndDestroy( store ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 468 | CleanupStack::PushL( aData ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 469 | CleanupStack::PushL( aCiphertext ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 470 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 471 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 472 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 473 | // CDevEncKeyUtils::ExternalizeKeyL() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 474 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 475 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 476 | void CDevEncKeyUtils::ExternalizeKeyL( const CPBEncryptElement* aElement, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 477 | const TDesC8& aCiphertext, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 478 | //HBufC8*& aResult ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 479 | TDes8& aResult ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 480 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 481 | RDesWriteStream write; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 482 | write.Open( aResult ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 483 | write.PushL(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 484 | aElement->EncryptionData().ExternalizeL( write ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 485 | write << aCiphertext; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 486 | write.CommitL(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 487 | write.Pop(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 488 | write.Close(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 489 | DFLOG( "CDevEncKeyUtils::ExternalizeKeyL done" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 490 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 491 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 492 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 493 | // CDevEncKeyUtils::InternalizeKeyL() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 494 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 495 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 496 | void CDevEncKeyUtils::InternalizeKeyL( CPBEncryptElement*& aElement, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 497 | const TDesC8& aPassword, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 498 | HBufC8*& aCiphertext, | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 499 | const TDesC8& aSource ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 500 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 501 | RDesReadStream read; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 502 | read.Open( aSource ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 503 | read.PushL(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 504 | CPBEncryptionData* data = CPBEncryptionData::NewLC( read ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 505 | aElement = CPBEncryptElement::NewLC( *data, aPassword ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 506 | aCiphertext = HBufC8::NewL( aSource.Length() ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 507 | TPtr8 cipherTextPtr = aCiphertext->Des(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 508 | read >> cipherTextPtr; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 509 | CleanupStack::Pop( aElement ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 510 | CleanupStack::Pop( data ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 511 | read.Pop(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 512 | read.Close(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 513 | DFLOG( "CDevEncKeyUtils::InternalizeKeyL done" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 514 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 515 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 516 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 517 | // CDevEncKeyUtils::Pkcs5RemovePadding() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 518 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 519 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 520 | void CDevEncKeyUtils::Pkcs5RemovePadding( TPtr8& aInput ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 521 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 522 | // From RFC 2898: | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 523 | // The padding string PS consists of 8-(||M|| mod 8) octets | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 524 | // each with value 8-(||M|| mod 8). The padding string PS will | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 525 | // satisfy one of the following statements: | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 526 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 527 | // PS = 01, if ||M|| mod 8 = 7 ; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 528 | // PS = 02 02, if ||M|| mod 8 = 6 ; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 529 | // ... | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 530 | // PS = 08 08 08 08 08 08 08 08, if ||M|| mod 8 = 0. | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 531 | // So the last byte shows how much padding there is | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 532 | DFLOG( "CDevEncKeyUtils::Pkcs5RemovePadding" ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 533 | TInt paddingBytes = aInput[ aInput.Length() - 1 ]; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 534 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 535 | if ( paddingBytes <= 0 || | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 536 | paddingBytes > 8 || | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 537 | paddingBytes > aInput.Length() ) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 538 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 539 | return; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 540 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 541 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 542 | TInt delPos( aInput.Length() - paddingBytes - 1 ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 543 | TInt delLen( aInput.Length() - delPos ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 544 | aInput.Delete( delPos, delLen ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 545 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 546 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 547 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 548 | // CDevEncKeyUtils::ProcessHasCapability() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 549 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 550 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 551 | TBool CDevEncKeyUtils::ProcessHasCapability( TCapability aCapability ) const | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 552 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 553 | RProcess process; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 554 | return process.HasCapability( aCapability ); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 555 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 556 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 557 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 558 | // CDevEncKeyUtils::LoadDevEncEngineL() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 559 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 560 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 561 | void CDevEncKeyUtils::LoadDevEncEngineL() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 562 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 563 |     FLOG(" CDevEncKeyUtils::LoadDevEncEngineL >> ");
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 564 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 565 | if (!iDevEncEngine) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 566 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 567 | iConnect = EFalse; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 568 | TInt err = iLibrary.Load(KEncryptionDll); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 569 | if (err != KErrNone) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 570 |              {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 571 |              FLOG2("Error in finding the library... %d", err);
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 572 | if (err == KErrNotFound) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 573 | err = KErrNotSupported; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 574 | User::Leave(err); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 575 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 576 | TLibraryFunction entry = iLibrary.Lookup(1); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 577 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 578 | if (!entry) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 579 |              {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 580 |              FLOG("Error in loading the library...");
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 581 | User::Leave(KErrBadLibraryEntryPoint); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 582 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 583 | iDevEncEngine = (CDevEncEngineBase *) entry(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 584 | iConnect = ETrue; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 585 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 586 |     FLOG(" CDevEncKeyUtils::LoadDevEncEngineL << ");
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 587 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 588 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 589 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 590 | // CDevEncKeyUtils::UnloadDevEncEngine() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 591 | // | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 592 | // -------------------------------------------------------------------------- | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 593 | void CDevEncKeyUtils::UnloadDevEncEngine() | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 594 |     {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 595 |     FLOG(" CDevEncKeyUtils::UnloadDevEncEngineL >> ");
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 596 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 597 | if (iDevEncEngine) | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 598 |         {
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 599 | iDevEncEngine->Close(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 600 | delete iDevEncEngine; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 601 | iDevEncEngine = NULL; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 602 | iLibrary.Close(); | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 603 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 604 | iConnect = EFalse; | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 605 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 606 |     FLOG(" CDevEncKeyUtils::UnloadDevEncEngineL << ");
 | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 607 | } | 
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 608 | |
| 
164170e6151a
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 609 | // End of file |