os/security/cryptoservices/certificateandkeymgmt/swicertstore/CSWICertStoreEntry.h
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of the License "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description: 
sl@0
    15
* CSWICertStoreEntry class implementation
sl@0
    16
*
sl@0
    17
*/
sl@0
    18
sl@0
    19
sl@0
    20
/**
sl@0
    21
 @file 
sl@0
    22
 @internalTechnology
sl@0
    23
*/
sl@0
    24
 
sl@0
    25
#ifndef __CSWICERTSTOREENTRY_H__
sl@0
    26
#define __CSWICERTSTOREENTRY_H__
sl@0
    27
sl@0
    28
#include <e32base.h>
sl@0
    29
#include <s32std.h>
sl@0
    30
#include <swicertstore.h>
sl@0
    31
sl@0
    32
class MCTToken;
sl@0
    33
class CCTCertInfo;
sl@0
    34
sl@0
    35
/**
sl@0
    36
 * This class is used to associate an entry with the TStreamId of the stream
sl@0
    37
 * where the data of the certificate is stored.
sl@0
    38
 */
sl@0
    39
NONSHARABLE_CLASS(CSWICertStoreEntry) : public CBase
sl@0
    40
	{
sl@0
    41
public:
sl@0
    42
	static CSWICertStoreEntry* NewL(const CCTCertInfo& aCertInfo,const RArray<TUid>& aCertificateApps,TBool aTrusted,TStreamId aDataStreamId,const TCertMetaInfo& aCertMetaInfo,TInt aStoreIndex);
sl@0
    43
sl@0
    44
	/// Read a CSWICertStoreEntry from a stream.
sl@0
    45
	static CSWICertStoreEntry* NewLC(RReadStream& aStream, MCTToken& aToken, TInt aCertIndex, TInt aStoreIndex = 0);
sl@0
    46
sl@0
    47
	virtual ~CSWICertStoreEntry();
sl@0
    48
sl@0
    49
	// Accessors
sl@0
    50
	const CCTCertInfo& CertInfo() const;
sl@0
    51
	TStreamId DataStreamId() const;
sl@0
    52
	const RArray<TUid>& CertificateApps() const;
sl@0
    53
	TBool IsApplicable(const TUid& aApplication) const;
sl@0
    54
	TBool Trusted() const;
sl@0
    55
	const TCertMetaInfo& CertMetaInfo() const;
sl@0
    56
	//returns the store index to which the entry belongs
sl@0
    57
	TInt StoreIndex() const;
sl@0
    58
	
sl@0
    59
private:
sl@0
    60
	CSWICertStoreEntry(TInt aStoreIndex = 0);
sl@0
    61
	void ConstructL(const CCTCertInfo& aCertInfo,const RArray<TUid>& aCertificateApps,TBool aTrusted,TStreamId aDataStreamId,const TCertMetaInfo& aCertMetaInfo);
sl@0
    62
	void InternalizeL(RReadStream& aStream, MCTToken& aToken, TInt aCertIndex);
sl@0
    63
sl@0
    64
private:
sl@0
    65
	CCTCertInfo* iCertInfo;
sl@0
    66
	RArray<TUid> iCertificateApps;
sl@0
    67
	TBool iTrusted;
sl@0
    68
	TStreamId iDataStreamId;
sl@0
    69
	TCertMetaInfo iCertMetaInfo;
sl@0
    70
	//represents the store in which the certificate entry resides
sl@0
    71
	TInt iStoreIndex;
sl@0
    72
	};
sl@0
    73
sl@0
    74
#endif