sl@0: /* sl@0: * Copyright (c) 2007-2009 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: #ifndef __TTESTTOOLENGINE_H_ sl@0: #define __TTESTTOOLENGINE_H_ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: class CTestToolEngine : public CActive sl@0: { sl@0: public: sl@0: static CTestToolEngine* NewLC(); sl@0: ~CTestToolEngine(); sl@0: void ConstructL(); sl@0: sl@0: public: sl@0: TVerdict ListCerts(const TDesC& aLabel, const TInt aExpectedNumLabel); sl@0: TVerdict ListCerts(const TDesC& aLabel1, const TDesC& aLabel2, const TInt aExpectedNumLabel); sl@0: TVerdict ListCerts(RPointerArray& aCerts); sl@0: TVerdict ListCerts(RPointerArray& aCerts, const TDesC& aLabel); sl@0: TVerdict ListCerts(RPointerArray& aCerts, TInt aStore); sl@0: TVerdict ListStore(RPointerArray& aCerts); sl@0: TVerdict ListKeys(const TDesC& aLabel, const TInt aExpectedNumLabel); sl@0: TVerdict ListKeys(const TDesC& aLabel1, const TDesC& aLabel2, const TInt aExpectedNumLabel); sl@0: TVerdict ListKeys(RPointerArray& aKeys); sl@0: TVerdict ListKeys(RPointerArray& aKeys, TInt aStore); sl@0: TVerdict CheckApps(RPointerArray& aApps, const TDesC& aLabel1); sl@0: TVerdict CheckTrust(const TDesC& aLabel,TBool aTrust); sl@0: TVerdict GetPolicy(const TDesC& aLabel1, const TDesC& aLabel2, TInt aUser); sl@0: TVerdict ListStoreKey(RPointerArray& aKeys); sl@0: void Initilize(); sl@0: void KeyInitilize(); sl@0: TBool VerifyApps(RPointerArray& aApps); sl@0: TBool VerifyTrust(TBool aTrust); sl@0: TBool VerifyPolicy(TInt aUser); sl@0: TBool CheckAppForUid(const TDesC& aAppName, RPointerArray& aApps); sl@0: TBool CompareWithExpectedCertificates(RPointerArray& aCerts); sl@0: TBool CompareWithExpectedStore(RPointerArray& aCerts); sl@0: TBool CompareWithExpectedStoreKey(RPointerArray& aKeys); sl@0: TBool CompareWithExpectedKeys(RPointerArray& aKeys); sl@0: void FilterCerts(RMPointerArray& aCertList, TCertificateOwnerType& aOwnerType); sl@0: TInt FilterCerts(RMPointerArray& aCertList, TDesC& aLabel, TInt& aIndex, TBool aFilterOnly = EFalse); sl@0: TInt FilterKeys(RMPointerArray& aKeyList, TDesC& aLabel, TInt& aIndex); sl@0: public: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: CTestToolEngine(); sl@0: sl@0: private: sl@0: enum sl@0: { sl@0: EInitialiseKeyStore, sl@0: EFilterKey, sl@0: EInitialise, sl@0: EGetApps, sl@0: EGetTrust, sl@0: EGetPolicy, sl@0: EFilter, sl@0: EDone sl@0: } iState; sl@0: sl@0: RFs iFs; sl@0: CUnifiedCertStore* iCertStore; sl@0: TPtrC iLabel1; sl@0: TPtrC iLabel2; sl@0: TInt iNumCert1; sl@0: TInt iNumCert2; sl@0: RFs iFsKeyStore; sl@0: CUnifiedKeyStore* iKeyStore; sl@0: RMPointerArray iCertInfos; sl@0: RMPointerArray iKeys; sl@0: TInt iAppsCount; sl@0: TInt iCertsCount; sl@0: TInt iKeysListCount; sl@0: RArray iUids; sl@0: TInt iStore; sl@0: CCertAttributeFilter* iFilter; sl@0: TCTKeyAttributeFilter iKeyFilter; sl@0: TBool iPolicy; sl@0: TInt iIndex; sl@0: TInt iGetTrust; sl@0: TBool iActualTrust; sl@0: }; sl@0: sl@0: sl@0: /** sl@0: TCompiledSecurityPolicy is a test class used for accessing private data members sl@0: of TSecurityPolicy class. It uses the fact that TSecurityPolicy class has a friend class, sl@0: which name is TCompiledSecurityPolicy. sl@0: @internalComponent sl@0: */ sl@0: class TCompiledSecurityPolicy sl@0: { sl@0: public: sl@0: TCompiledSecurityPolicy(const TSecurityPolicy& aSecurityPolicy) : sl@0: iSecurityPolicy(aSecurityPolicy) sl@0: { sl@0: } sl@0: TSecurityPolicy::TType Type() const sl@0: { sl@0: return static_cast (iSecurityPolicy.iType); sl@0: } sl@0: TUint32 SecureId() const sl@0: { sl@0: return iSecurityPolicy.iSecureId; sl@0: } sl@0: TUint32 VendorId() const sl@0: { sl@0: return iSecurityPolicy.iVendorId; sl@0: } sl@0: TCapability Capability(TInt aIndex) const sl@0: { sl@0: if(aIndex < 3) sl@0: { sl@0: return static_cast (iSecurityPolicy.iCaps[aIndex]); sl@0: } sl@0: else if(aIndex < 7) sl@0: { sl@0: return static_cast (iSecurityPolicy.iExtraCaps[aIndex - 3]); sl@0: } sl@0: User::Invariant(); sl@0: return ECapability_None; sl@0: } sl@0: sl@0: private: sl@0: const TSecurityPolicy& iSecurityPolicy; sl@0: }; sl@0: sl@0: sl@0: inline TBool operator==(const TCompiledSecurityPolicy& aLeft, const TCompiledSecurityPolicy& aRight) sl@0: { sl@0: return aLeft.Type() == aRight.Type() && sl@0: aLeft.SecureId() == aRight.SecureId() && sl@0: aLeft.VendorId() == aRight.VendorId() && sl@0: aLeft.Capability(0) == aRight.Capability(0) && sl@0: aLeft.Capability(1) == aRight.Capability(1) && sl@0: aLeft.Capability(2) == aRight.Capability(2) && sl@0: aLeft.Capability(3) == aRight.Capability(3) && sl@0: aLeft.Capability(4) == aRight.Capability(4) && sl@0: aLeft.Capability(5) == aRight.Capability(5) && sl@0: aLeft.Capability(6) == aRight.Capability(6); sl@0: } sl@0: sl@0: #endif //__TTESTTOOLENGINE_H_ sl@0: sl@0: