diff -r 675a964f4eb5 -r 35751d3474b7 cryptoservices/filebasedcertificateandkeystores/test/keytool/keytool_import.cpp --- a/cryptoservices/filebasedcertificateandkeystores/test/keytool/keytool_import.cpp Tue Jul 21 01:04:32 2009 +0100 +++ b/cryptoservices/filebasedcertificateandkeystores/test/keytool/keytool_import.cpp Thu Sep 10 14:01:51 2009 +0300 @@ -1,179 +1,180 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -#include "keytool_commands.h" -#include "keytool_controller.h" -#include "controller.h" - -#include - -/*static*/ CKeytoolImport* CKeytoolImport::NewLC(CController* aController) - { - CKeytoolImport* self = new (ELeave) CKeytoolImport(aController); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -/*static*/ CKeytoolImport* CKeytoolImport::NewL(CController* aController) - { - CKeytoolImport* self = CKeytoolImport::NewLC(aController); - CleanupStack::Pop(self); - return self; - } - -CKeytoolImport::~CKeytoolImport() - { - Cancel(); - delete iKeyData; - if (iKeyInfo != NULL) - { - iKeyInfo->Release(); - } - } - -void CKeytoolImport::ConstructL() - { - CActiveScheduler::Add(this); - } - -void CKeytoolImport::Pkcs8PreprocessorL() - { - RFs fs; - CleanupClosePushL(fs); - User::LeaveIfError(fs.Connect()); - - RFile file; - CleanupClosePushL(file); - TInt r = file.Open(fs, *(iParams->iDefault), EFileRead); - if (r != KErrNone) - { - iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_OPENFAIL); - User::Leave(r); - } - - TInt fileSize = 0; - file.Size(fileSize); - - if (fileSize <= 0) - { - iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_EMPTYFILE); - User::Leave(KErrCorrupt); - } - - iKeyData = HBufC8::NewMaxL(fileSize); - TPtr8 data(iKeyData->Des()); - data.FillZ(); - User::LeaveIfError(file.Read(data, fileSize)); - - CleanupStack::PopAndDestroy(&file); - CleanupStack::PopAndDestroy(&fs); - } - - -void CKeytoolImport::DoCommandL(CUnifiedKeyStore& aKeyStore, CKeyToolParameters* aParam) - { - Cancel(); - iParams = aParam; - - TRAPD(err, Pkcs8PreprocessorL()); - if (err != KErrNone) - { - iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_PKCS8); - User::Leave(err); - } - - // keystore index, key data, usage, label, access type, start, end, keyinfo, status - // must get proper keystore - if (aParam->iKeystoreIndex == -1) - { - aParam->iKeystoreIndex = 0; - } - if (aParam->iKeystoreIndex >= aKeyStore.KeyStoreCount()) - { - iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_NOTEXIST); - User::Leave(KErrCorrupt); - } - - if (!iParams->iLabel) - { - iParams->iLabel = (iParams->iDefault)->AllocL(); - } - - aKeyStore.ImportKey(iParams->iKeystoreIndex, *iKeyData, iParams->iUsage, *iParams->iLabel, - iParams->iAccess, TTime(0), iParams->iEndDate, iKeyInfo, iStatus); - - SetActive(); - } - -void CKeytoolImport::RunL() - { - if (iStatus.Int() != KErrNone) - { - // A problem occured. Handle gracefully. - User::Leave(iStatus.Int()); - } - iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_IMPORTSUCCESS); - iController->DisplayKeyL(*iKeyInfo, ETrue, iParams->iPageWise); - - CActiveScheduler::Stop(); - } - -TInt CKeytoolImport::RunError(TInt aError) - { - CActiveScheduler::Stop(); - switch (aError) - { - case KErrBadPassphrase: - { - TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_PASSPHRASE, iStatus.Int())); - } - break; - case KErrKeyNotWeakEnough: - { - TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_WEAK, iStatus.Int())); - } - break; - case KErrKeyUsage: - { - TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_USAGE, iStatus.Int())); - } - break; - default: - { - TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_IMPORT, iStatus.Int())); - } - } - return KErrNone; - } - - -void CKeytoolImport::DoCancel() - { - - } - -CKeytoolImport::CKeytoolImport(CController* aController) : CKeyToolCommand(aController) - { - } +/* +* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include + +#include "keytool_commands.h" +#include "keytool_controller.h" +#include "controller.h" + +#include + +/*static*/ CKeytoolImport* CKeytoolImport::NewLC(CController* aController) + { + CKeytoolImport* self = new (ELeave) CKeytoolImport(aController); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +/*static*/ CKeytoolImport* CKeytoolImport::NewL(CController* aController) + { + CKeytoolImport* self = CKeytoolImport::NewLC(aController); + CleanupStack::Pop(self); + return self; + } + +CKeytoolImport::~CKeytoolImport() + { + Cancel(); + delete iKeyData; + if (iKeyInfo != NULL) + { + iKeyInfo->Release(); + } + } + +void CKeytoolImport::ConstructL() + { + CActiveScheduler::Add(this); + } + +void CKeytoolImport::Pkcs8PreprocessorL() + { + RFs fs; + CleanupClosePushL(fs); + User::LeaveIfError(fs.Connect()); + + RFile file; + CleanupClosePushL(file); + TInt r = file.Open(fs, *(iParams->iDefault), EFileRead); + if (r != KErrNone) + { + iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_OPENFAIL); + User::Leave(r); + } + + TInt fileSize = 0; + file.Size(fileSize); + + if (fileSize <= 0) + { + iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_EMPTYFILE); + User::Leave(KErrCorrupt); + } + + iKeyData = HBufC8::NewMaxL(fileSize); + TPtr8 data(iKeyData->Des()); + data.FillZ(); + User::LeaveIfError(file.Read(data, fileSize)); + + CleanupStack::PopAndDestroy(&file); + CleanupStack::PopAndDestroy(&fs); + } + + +void CKeytoolImport::DoCommandL(CUnifiedKeyStore& aKeyStore, CKeyToolParameters* aParam) + { + Cancel(); + iParams = aParam; + + TRAPD(err, Pkcs8PreprocessorL()); + if (err != KErrNone) + { + iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_PKCS8); + User::Leave(err); + } + + // keystore index, key data, usage, label, access type, start, end, keyinfo, status + // must get proper keystore + if (aParam->iKeystoreIndex == -1) + { + aParam->iKeystoreIndex = 0; + } + if (aParam->iKeystoreIndex >= aKeyStore.KeyStoreCount()) + { + iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_NOTEXIST); + User::Leave(KErrCorrupt); + } + + if (!iParams->iLabel) + { + iParams->iLabel = (iParams->iDefault)->AllocL(); + } + + aKeyStore.ImportKey(iParams->iKeystoreIndex, *iKeyData, iParams->iUsage, *iParams->iLabel, + iParams->iAccess, TTime(0), iParams->iEndDate, iKeyInfo, iStatus); + + SetActive(); + } + +void CKeytoolImport::RunL() + { + if (iStatus.Int() != KErrNone) + { + // A problem occured. Handle gracefully. + User::Leave(iStatus.Int()); + } + iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_IMPORTSUCCESS); + iController->DisplayKeyL(*iKeyInfo, ETrue, iParams->iPageWise); + + CActiveScheduler::Stop(); + } + +TInt CKeytoolImport::RunError(TInt aError) + { + CActiveScheduler::Stop(); + switch (aError) + { + case KErrBadPassphrase: + { + TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_PASSPHRASE, iStatus.Int())); + } + break; + case KErrKeyNotWeakEnough: + { + TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_WEAK, iStatus.Int())); + } + break; + case KErrKeyUsage: + { + TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_USAGE, iStatus.Int())); + } + break; + default: + { + TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_KEYTOOL_ERR_IMPORT, iStatus.Int())); + } + } + return KErrNone; + } + + +void CKeytoolImport::DoCancel() + { + + } + +CKeytoolImport::CKeytoolImport(CController* aController) : CKeyToolCommand(aController) + { + } +