diff -r 675a964f4eb5 -r 35751d3474b7 crypto/weakcryptospi/source/spi/cryptokeypairgeneratorapi.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crypto/weakcryptospi/source/spi/cryptokeypairgeneratorapi.cpp Thu Sep 10 14:01:51 2009 +0300 @@ -0,0 +1,130 @@ +/* +* Copyright (c) 2006-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: +* crypto key pair generator API implementation +* crypto key pair generator API implementation +* +*/ + + +/** + @file +*/ + +#include "cryptokeypairgeneratorapi.h" +#include "keypairgeneratorplugin.h" +#include "keypair.h" +#include "legacyselector.h" + +using namespace CryptoSpi; + +// +// Implementation of Key Pair Generator +// +CKeyPairGenerator* CKeyPairGenerator::NewL(MKeyPairGenerator* aKeyPairGenerator, TInt aHandle) + { + CKeyPairGenerator* self=new(ELeave) CKeyPairGenerator(aKeyPairGenerator, aHandle); + return self; + } + +CKeyPairGenerator::CKeyPairGenerator(MKeyPairGenerator* aKeyPairGenerator, TInt aHandle) +: CCryptoBase(aKeyPairGenerator, aHandle) + { + } + +EXPORT_C void CKeyPairGenerator::GenerateKeyPairL(TInt aKeySize, const CCryptoParams& aKeyParameters, CKeyPair*& aKeyPair) + { + MKeyPairGenerator* ptr=static_cast(iPlugin); + ptr->GenerateKeyPairL(aKeySize, aKeyParameters, aKeyPair); + } + +EXPORT_C CKeyPairGenerator::~CKeyPairGenerator() + { + } + +// +// Implementation of Key Pair Generator Factory +// +EXPORT_C void CKeyPairGeneratorFactory::CreateKeyPairGeneratorL(CKeyPairGenerator*& aKeyPairGenerator, + TUid aAlgorithmUid, + const CCryptoParams* aAlgorithmParams) + + { + MPluginSelector* selector=reinterpret_cast(Dll::Tls()); + if (selector) + { + selector->CreateKeyPairGeneratorL(aKeyPairGenerator, aAlgorithmUid, aAlgorithmParams); + } + else + { + CLegacySelector* legacySelector=CLegacySelector::NewLC(); + legacySelector->CreateKeyPairGeneratorL(aKeyPairGenerator, aAlgorithmUid, aAlgorithmParams); + CleanupStack::PopAndDestroy(legacySelector); //legacySelector + } + } + +// +// Implementation of Asynchronous Key Pair Generator +// (async methods not implemented, so no coverage) +// + +#ifdef _BullseyeCoverage +#pragma suppress_warnings on +#pragma BullseyeCoverage off +#pragma suppress_warnings off +#endif + +CAsyncKeyPairGenerator* CAsyncKeyPairGenerator::NewL(MAsyncKeyPairGenerator* aKeyPairGenerator, TInt aHandle) + { + CAsyncKeyPairGenerator* self=new(ELeave) CAsyncKeyPairGenerator(aKeyPairGenerator, aHandle); + return self; + } + +CAsyncKeyPairGenerator::CAsyncKeyPairGenerator(MAsyncKeyPairGenerator* aKeyPairGenerator, TInt aHandle) +: CCryptoBase(aKeyPairGenerator, aHandle) + { + } + +EXPORT_C CAsyncKeyPairGenerator::~CAsyncKeyPairGenerator() + { + } + +EXPORT_C void CAsyncKeyPairGenerator::GenerateKeyPairL(TInt aKeySize, const CCryptoParams& aKeyParameters, CKeyPair*& aKeyPair, TRequestStatus& aRequestStatus) + { + MAsyncKeyPairGenerator* ptr=static_cast(iPlugin); + ptr->GenerateKeyPairL(aKeySize, aKeyParameters, aKeyPair, aRequestStatus); + } + +EXPORT_C void CAsyncKeyPairGenerator::Cancel() + { + } + +EXPORT_C void CKeyPairGeneratorFactory::CreateAsyncKeyPairGeneratorL(CAsyncKeyPairGenerator*& aKeyPairGenerator, + TUid aAlgorithmUid, + const CCryptoParams* aAlgorithmParams) + { + MPluginSelector* selector=reinterpret_cast(Dll::Tls()); + if (selector) + { + selector->CreateAsyncKeyPairGeneratorL(aKeyPairGenerator, aAlgorithmUid, aAlgorithmParams); + } + else + { + CLegacySelector* legacySelector=CLegacySelector::NewLC(); + legacySelector->CreateAsyncKeyPairGeneratorL(aKeyPairGenerator, aAlgorithmUid, aAlgorithmParams); + CleanupStack::PopAndDestroy(legacySelector); //legacySelector + } + } + +