diff -r 000000000000 -r 164170e6151a boottimeintegritycheck/inc/IntegrityCheck.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/boottimeintegritycheck/inc/IntegrityCheck.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,211 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: Header file for integrity check program. +* +*/ + + +#ifndef INTEGRITYCHECK_H +#define INTEGRITYCHECK_H + +// INCLUDES +#include +#include // TStreamId +#include // TCertLabel +#include // TKeyIdentifier + +// CONSTANTS + +// MACROS + +// Enable C:\sys\bin binaries check. +//#define __BTIC_BINARIES_CHECK_ENABLED + +// Enable sis controller verify. +#define __BTIC_VERIFY_CONTROLLER + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +class CCTCertInfo; // TCapabilitySet + +// LOCAL FUNCTION PROTOTYPES + +// CLASS DECLARATION + +/** +* Class CRootCertificateEntry +* +* Class for reading root certificates from certificate store file. +*/ +NONSHARABLE_CLASS( CRootCertificateEntry ) : public CBase + { + public: + + /** + * Symbian constructor + * + * @since + * @param aStream Certificate stream + */ + static CRootCertificateEntry* NewLC( RReadStream& aStream ); + + /** + * Destructor + * + * @since + */ + virtual ~CRootCertificateEntry(); + + /** + * Returns certificates data stream. This is actual + * x509 certificate. + * + * @since + * @return TStreamId + */ + TStreamId DataStreamId() const; + + /** + * Returns certificates capability set. + * + * @since + * @return TCapabilitySet + */ + const TCapabilitySet& Capabilities() const; + + /** + * Returns certificate's size. This is actual size of + * x509 certificate. + * + * @since + * @return TInt Size of certificate in bytes. + */ + TInt Size() const; + + /** + * Returns certificate's store ID number. + * + * @since + * @return TInt Store ID number. + */ + TInt CertID() const; + + private: + + /** + * C++ default constructor. + * + * @since + */ + CRootCertificateEntry(); + + /** + * Reads data from stream. + * + * @since + * @param aStream Certificate stream + */ + void InternalizeL( RReadStream& aStream ); + + private: + + TUint8 iX509CertificateType; // Defines type eg. X509 + TInt iSize; // Size of certificate data + TCertLabel iLabel; + TInt iCertId; // Certificate's store id + TUint8 iCACertificateType; + TKeyIdentifier iSubjectKeyId; + TKeyIdentifier iIssuerKeyId; + RArray iApplications; + TBool iTrusted; // Certs are always trusted + TStreamId iDataStreamId; // Certificate data stream + TCapabilitySet iCapabilities; // Certificates capability set + TBool iMandatory; + }; + + +/** +* Class +* +* Class for . +*/ +NONSHARABLE_CLASS( CActiveFileObserver ) : public CActive + { + public: + + /** + * Destructor. + */ + virtual ~CActiveFileObserver(); + + /** + * Two-phased constructor. + */ + static CActiveFileObserver* NewL( + RFs& aFs, + const TDesC& aPath, + TInt& aResult ); + + /** + * Function íssues request to + */ + void IssueRequest(); + + protected: + + /** + * Function + */ + void RunL(); + + /** + * Cancel request. + */ + void DoCancel(); + + /** + * Handles a leave occurring in the request completion + * event handler RunL. + */ + TInt RunError( TInt aError ); + + private: + + /** + * C++ default constructor. + */ + CActiveFileObserver( RFs& aFs, TInt& aResult ); + + /** + * 2nd phase constructor. + */ + void ConstructL( const TDesC& aPath ); + + private: + + RFs& iFs; + TInt& iResult; + TInt iRunCount; + RTimer iRTimer; + HBufC* iPath; + }; + + +#endif //INTEGRITYCHECK_H + +//EOF