sl@0: /*
sl@0: * Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
sl@0: * All rights reserved.
sl@0: * This component and the accompanying materials are made available
sl@0: * under the terms of the License "Eclipse Public License v1.0"
sl@0: * which accompanies this distribution, and is available
sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: *
sl@0: * Initial Contributors:
sl@0: * Nokia Corporation - initial contribution.
sl@0: *
sl@0: * Contributors:
sl@0: *
sl@0: * Description: 
sl@0: *
sl@0: */
sl@0: 
sl@0: 
sl@0: #include <e32def.h>
sl@0: #include <e32cmn.h>
sl@0: #include <cryptospi/keys.h>
sl@0: 
sl@0: #include "verifierimpl.h"
sl@0: 
sl@0: #include <cryptospi/cryptospidef.h>
sl@0: #include "pluginconfig.h"
sl@0: 
sl@0: using namespace SoftwareCrypto;
sl@0: 
sl@0: CVerifierImpl::CVerifierImpl()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: CVerifierImpl::~CVerifierImpl()
sl@0: 	{
sl@0: 	delete iKey;	
sl@0: 	}
sl@0: 
sl@0: void CVerifierImpl::Close()
sl@0: 	{
sl@0: 	delete this;
sl@0: 	}
sl@0: 	
sl@0: void CVerifierImpl::Reset()
sl@0: 	{
sl@0: 	}
sl@0: 	
sl@0: TAny* CVerifierImpl::GetExtension(TUid /*aExtendsionId*/)
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 	
sl@0: void CVerifierImpl::GetCharacteristicsL(const TAny*& aPluginCharacteristics)
sl@0: 	{
sl@0: 	TInt numCiphers = sizeof(KVerifierCharacteristics)/sizeof(TAsymmetricSignatureCharacteristics*);
sl@0: 	TInt32 implUid = ImplementationUid().iUid;
sl@0: 	for (TInt i = 0; i < numCiphers; ++i)
sl@0: 		{
sl@0: 		if (KVerifierCharacteristics[i]->cmn.iImplementationUID == implUid)
sl@0: 			{
sl@0: 			aPluginCharacteristics = KVerifierCharacteristics[i];
sl@0: 			break;
sl@0: 			}
sl@0: 		}
sl@0: 	}
sl@0: 
sl@0: void CVerifierImpl::SetPaddingModeL(TUid /*aPaddingMode*/) 
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: void CVerifierImpl::SetKeyL(const CKey& /*aPublicKey*/)
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: TInt CVerifierImpl::GetMaximumInputLengthL() const
sl@0: 	{
sl@0: 	// Override in subclass
sl@0: 	User::Leave(KErrNotSupported);
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: TInt CVerifierImpl::GetMaximumOutputLengthL() const
sl@0: 	{
sl@0: 	// Override in subclass
sl@0: 	User::Leave(KErrNotSupported);
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: void CVerifierImpl::DoSetKeyL(const CKey& aKey)
sl@0: 	{
sl@0: 	delete iKey;
sl@0: 	iKey = CKey::NewL(aKey);
sl@0: 	}
sl@0: 
sl@0: void CVerifierImpl::ConstructL(const CKey& aPrivateKey)
sl@0: 	{
sl@0: 	SetKeyL(aPrivateKey);	
sl@0: 	}