--- a/cryptomgmtlibs/cryptotokenfw/source/ctframework/Cctcertinfo.cpp Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptomgmtlibs/cryptotokenfw/source/ctframework/Cctcertinfo.cpp Thu Sep 10 14:01:51 2009 +0300
@@ -1,392 +1,404 @@
-/*
-* Copyright (c) 2001-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:
-*
-*/
-
-
-#include "cctcertinfo.h"
-
-// MCertInfo ///////////////////////////////////////////////////////////////////
-
-EXPORT_C MCertInfo::MCertInfo() :
- iDeletable(ETrue)
- {
- }
-
-EXPORT_C MCertInfo::MCertInfo(const TDesC& aLabel,
- TCertificateFormat aFormat,
- TCertificateOwnerType aCertificateOwnerType,
- TInt aSize,
- const TKeyIdentifier* aSubjectKeyId,
- const TKeyIdentifier* aIssuerKeyId,
- TInt aCertificateId,
- TBool aDeletable) :
- iLabel(aLabel), iCertificateId(aCertificateId),
- iFormat(aFormat), iCertificateOwnerType(aCertificateOwnerType),
- iSize(aSize), iDeletable(aDeletable)
- {
- if (aSubjectKeyId)
- {
- iSubjectKeyId = *aSubjectKeyId;
- }
- else
- {
- iSubjectKeyId = KNullDesC8;
- }
- if (aIssuerKeyId)
- {
- iIssuerKeyId = *aIssuerKeyId;
- }
- else
- {
- iIssuerKeyId = KNullDesC8;
- }
- }
-
-EXPORT_C MCertInfo::MCertInfo(const MCertInfo& aOther) :
- iLabel(aOther.iLabel),
- iCertificateId(aOther.iCertificateId),
- iFormat(aOther.iFormat),
- iCertificateOwnerType(aOther.iCertificateOwnerType),
- iSize(aOther.iSize),
- iSubjectKeyId(aOther.iSubjectKeyId),
- iIssuerKeyId(aOther.iIssuerKeyId),
- iDeletable(aOther.iDeletable)
- {
- }
-
-EXPORT_C MCertInfo::~MCertInfo()
- {
- delete iIssuerHash;
- }
-
-const TDesC8* MCertInfo::IssuerHash() const
- {
- return iIssuerHash;
- }
-
-EXPORT_C void MCertInfo::ConstructL(const TDesC8* aIssuerHash)
- {
- delete iIssuerHash;
- iIssuerHash = NULL;
- if (aIssuerHash)
- {
- iIssuerHash = aIssuerHash->AllocL();
- }
-
- if (!Valid())
- {
- User::Leave(KErrArgument);
- }
- }
-
-TBool MCertInfo::Valid() const
- {
- if (iLabel.Length() == 0)
- {
- return EFalse;
- }
-
- if (iCertificateId < 0)
- {
- return EFalse;
- }
-
- if (iFormat != EX509Certificate && iFormat != EWTLSCertificate &&
- iFormat != EX968Certificate && iFormat != EX509CertificateUrl &&
- iFormat != EWTLSCertificateUrl && iFormat != EX968CertificateUrl)
- {
- return EFalse;
- }
-
- if (iCertificateOwnerType != ECACertificate &&
- iCertificateOwnerType != EUserCertificate &&
- iCertificateOwnerType != EPeerCertificate)
- {
- return EFalse;
- }
-
- if (iSize <= 0)
- {
- return EFalse;
- }
-
- if (iIssuerHash && *iIssuerHash == KNullDesC8)
- {
- return EFalse;
- }
-
- return ETrue;
- }
-
-/**
- EXPORT_C void MCertInfo::ExternalizeL(RWriteStream& aStream) const
-
- This method externalizes the MCertInfo object to the given stream.
- The iDeletable boolean attribute is combined with the iFormat attribute
- for certstore backward compatibility
-*/
-EXPORT_C void MCertInfo::ExternalizeL(RWriteStream& aStream) const
- {
- // insert iDeletable flag as most significant digit of iFormat in order
- // store the flag without changing the externalized record format
- // The value is OPPOSITE for backward compatibility
- TUint8 tmpValue = static_cast <TUint8>(iFormat | (iDeletable ? 0 : KReadOnlyFlagMask));
-
- aStream.WriteUint8L(tmpValue);
- aStream.WriteInt32L(iSize);
- aStream << iLabel;
- aStream.WriteInt32L(iCertificateId);
- aStream.WriteUint8L(iCertificateOwnerType);
- aStream << iSubjectKeyId;
- aStream << iIssuerKeyId;
- }
-
-/**
- EXPORT_C void MCertInfo::InternalizeL(RReadStream& aStream)
-
- This method internalizes a MCertInfo object from the given stream.
- The iDeletable boolean and iFormat attributes are both extracted
- from the stored iFormat value using for certstore backward compatibility
-*/
-EXPORT_C void MCertInfo::InternalizeL(RReadStream& aStream)
- {
- // get first byte from stream containing iDeletable flag and iFormat value
- TUint8 tmpValue = aStream.ReadUint8L();
-
- // extract iDeletable flag from most significant digit of iFormat
- // set iDeletable to the OPPOSITE of the 8th bit value
- iDeletable = !(tmpValue & KReadOnlyFlagMask);
-
- // extract iFormat = the value of the 7 least significant bits
- iFormat = static_cast <TCertificateFormat>(tmpValue & KFormatMask);
-
- iSize = aStream.ReadInt32L();
- aStream >> iLabel;
- iCertificateId = aStream.ReadInt32L();
- iCertificateOwnerType = static_cast<TCertificateOwnerType>(aStream.ReadUint8L());
- aStream >> iSubjectKeyId;
- aStream >> iIssuerKeyId;
-
- if (!Valid())
- {
- User::Leave(KErrCorrupt);
- }
- }
-
-// CCTCertInfo /////////////////////////////////////////////////////////////////
-
-EXPORT_C CCTCertInfo* CCTCertInfo::NewL(RReadStream& aStream, MCTToken& aToken)
- {
- CCTCertInfo* self = CCTCertInfo::NewLC(aStream, aToken);
- CleanupStack::Pop(self);
- return self;
- }
-
-EXPORT_C CCTCertInfo* CCTCertInfo::NewLC(RReadStream& aStream, MCTToken& aToken)
- {
- CCTCertInfo* self = new(ELeave) CCTCertInfo(aToken);
- CleanupReleasePushL(*self);
- self->ConstructL(aStream);
- return self;
- }
-
-EXPORT_C CCTCertInfo* CCTCertInfo::NewL(const TDesC& aLabel,
- TCertificateFormat aFormat,
- TCertificateOwnerType aCertificateOwnerType,
- TInt aSize,
- const TKeyIdentifier* aSubjectKeyId,
- const TKeyIdentifier* aIssuerKeyId,
- MCTToken& aToken,
- TInt aCertificateId)
- {
- CCTCertInfo* self = CCTCertInfo::NewLC(aLabel,
- aFormat, aCertificateOwnerType, aSize, aSubjectKeyId, aIssuerKeyId, aToken,
- aCertificateId, ETrue);
- CleanupStack::Pop(self);
- return self;
- }
-
-EXPORT_C CCTCertInfo* CCTCertInfo::NewL(const TDesC& aLabel,
- TCertificateFormat aFormat,
- TCertificateOwnerType aCertificateOwnerType,
- TInt aSize,
- const TKeyIdentifier* aSubjectKeyId,
- const TKeyIdentifier* aIssuerKeyId,
- MCTToken& aToken,
- TInt aCertificateId,
- TBool aIsDeletable,
- const TDesC8* aIssuerHash)
- {
- CCTCertInfo* self = CCTCertInfo::NewLC(aLabel,
- aFormat, aCertificateOwnerType, aSize, aSubjectKeyId, aIssuerKeyId, aToken,
- aCertificateId, aIsDeletable, aIssuerHash);
- CleanupStack::Pop(self);
- return self;
- }
-
-EXPORT_C CCTCertInfo* CCTCertInfo::NewLC(const TDesC& aLabel,
- TCertificateFormat aFormat,
- TCertificateOwnerType aCertificateOwnerType,
- TInt aSize,
- const TKeyIdentifier* aSubjectKeyId,
- const TKeyIdentifier* aIssuerKeyId,
- MCTToken& aToken,
- TInt aCertificateId)
- {
- return CCTCertInfo::NewLC(aLabel,
- aFormat, aCertificateOwnerType, aSize, aSubjectKeyId, aIssuerKeyId,
- aToken, aCertificateId, ETrue);
- }
-
-EXPORT_C CCTCertInfo* CCTCertInfo::NewLC(const TDesC& aLabel,
- TCertificateFormat aFormat,
- TCertificateOwnerType aCertificateOwnerType,
- TInt aSize,
- const TKeyIdentifier* aSubjectKeyId,
- const TKeyIdentifier* aIssuerKeyId,
- MCTToken& aToken,
- TInt aCertificateId,
- TBool aIsDeletable,
- const TDesC8* aIssuerHash)
- {
- CCTCertInfo* self = new(ELeave) CCTCertInfo(aLabel,
- aFormat, aCertificateOwnerType, aSize, aSubjectKeyId,
- aIssuerKeyId, aToken, aCertificateId, aIsDeletable);
- CleanupReleasePushL(*self);
- self->ConstructL(aIssuerHash);
- return self;
- }
-
-EXPORT_C CCTCertInfo* CCTCertInfo::NewL(const CCTCertInfo& aCertInfo)
- {
- CCTCertInfo* self = CCTCertInfo::NewLC(aCertInfo);
- CleanupStack::Pop(self);
- return self;
- }
-
-EXPORT_C CCTCertInfo* CCTCertInfo::NewLC(const CCTCertInfo& aCertInfo)
- {
- CCTCertInfo* self = new(ELeave) CCTCertInfo(aCertInfo);
- CleanupReleasePushL(*self);
- self->ConstructL(aCertInfo.IssuerHash());
- return self;
- }
-
-CCTCertInfo::CCTCertInfo(MCTToken& aToken)
- : MCTTokenObject(aToken), iToken(aToken)
- {
- }
-
-CCTCertInfo::CCTCertInfo(const TDesC& aLabel,
- TCertificateFormat aFormat,
- TCertificateOwnerType aCertificateOwnerType,
- TInt aSize,
- const TKeyIdentifier* aSubjectKeyId,
- const TKeyIdentifier* aIssuerKeyId,
- MCTToken& aToken,
- TInt aCertificateId,
- TBool aIsDeletable)
- : MCTTokenObject(aToken),
- MCertInfo(aLabel, aFormat, aCertificateOwnerType, aSize, aSubjectKeyId,
- aIssuerKeyId, aCertificateId, aIsDeletable),
- iToken(aToken)
- {
- }
-
-CCTCertInfo::CCTCertInfo(const CCTCertInfo& aOther)
- : MCTTokenObject(aOther.iToken), MCertInfo(aOther), iToken(aOther.iToken)
- {
- }
-
-void CCTCertInfo::ConstructL(RReadStream& aStream)
- {
- InternalizeL(aStream);
- }
-
-void CCTCertInfo::ConstructL(const TDesC8* aIssuerHash)
- {
- MCertInfo::ConstructL(aIssuerHash);
- }
-
-EXPORT_C CCTCertInfo::~CCTCertInfo()
- {
- }
-
-const TDesC& CCTCertInfo::Label() const
- {
- return iLabel;
- }
-
-TUid CCTCertInfo::Type() const
- {
- TUid uid = { KCTObjectCertInfo };
- return uid;
- }
-
-EXPORT_C const TKeyIdentifier& CCTCertInfo::SubjectKeyId() const
- {
- return iSubjectKeyId;
- }
-
-EXPORT_C const TKeyIdentifier& CCTCertInfo::IssuerKeyId() const
- {
- return iIssuerKeyId;
- }
-
-EXPORT_C TCertificateFormat CCTCertInfo::CertificateFormat() const
- {
- return iFormat;
- }
-
-EXPORT_C TCertificateOwnerType CCTCertInfo::CertificateOwnerType() const
- {
- return iCertificateOwnerType;
- }
-
-EXPORT_C TInt CCTCertInfo::Size() const
- {
- return iSize;
- }
-
-MCTToken& CCTCertInfo::Token() const
- {
- return iToken;
- }
-
-EXPORT_C TCTTokenObjectHandle CCTCertInfo::Handle() const
- {
- return TCTTokenObjectHandle(iToken.Handle(), iCertificateId);
- }
-
-EXPORT_C TBool CCTCertInfo::IsDeletable() const
- {
- return iDeletable;
- }
-
-EXPORT_C const TDesC8* CCTCertInfo::IssuerHash() const
- {
- return MCertInfo::IssuerHash();
- }
-
-EXPORT_C TBool CCTCertInfo::operator==(const CCTCertInfo& aCertInfo) const
- {
- return aCertInfo.iLabel == iLabel;
- }
-
-EXPORT_C void CCTCertInfo::SetCertificateId(TInt aCertId)
-{
- iCertificateId = aCertId;
-}
+/*
+* Copyright (c) 2001-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:
+*
+*/
+
+
+#include "cctcertinfo.h"
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+
+/** Mask constants used for serializing iDeletable and iFormat attributes
+*/
+const TUint KReadOnlyFlagMask = 128;
+const TUint KFormatMask = 127;
+
+/** The UID of a CertInfo MCTTokenObject. */
+const TInt KCTObjectCertInfo = 0x101F50E6;
+
+#endif
+
+// MCertInfo ///////////////////////////////////////////////////////////////////
+
+EXPORT_C MCertInfo::MCertInfo() :
+ iDeletable(ETrue)
+ {
+ }
+
+EXPORT_C MCertInfo::MCertInfo(const TDesC& aLabel,
+ TCertificateFormat aFormat,
+ TCertificateOwnerType aCertificateOwnerType,
+ TInt aSize,
+ const TKeyIdentifier* aSubjectKeyId,
+ const TKeyIdentifier* aIssuerKeyId,
+ TInt aCertificateId,
+ TBool aDeletable) :
+ iLabel(aLabel), iCertificateId(aCertificateId),
+ iFormat(aFormat), iCertificateOwnerType(aCertificateOwnerType),
+ iSize(aSize), iDeletable(aDeletable)
+ {
+ if (aSubjectKeyId)
+ {
+ iSubjectKeyId = *aSubjectKeyId;
+ }
+ else
+ {
+ iSubjectKeyId = KNullDesC8;
+ }
+ if (aIssuerKeyId)
+ {
+ iIssuerKeyId = *aIssuerKeyId;
+ }
+ else
+ {
+ iIssuerKeyId = KNullDesC8;
+ }
+ }
+
+EXPORT_C MCertInfo::MCertInfo(const MCertInfo& aOther) :
+ iLabel(aOther.iLabel),
+ iCertificateId(aOther.iCertificateId),
+ iFormat(aOther.iFormat),
+ iCertificateOwnerType(aOther.iCertificateOwnerType),
+ iSize(aOther.iSize),
+ iSubjectKeyId(aOther.iSubjectKeyId),
+ iIssuerKeyId(aOther.iIssuerKeyId),
+ iDeletable(aOther.iDeletable)
+ {
+ }
+
+EXPORT_C MCertInfo::~MCertInfo()
+ {
+ delete iIssuerHash;
+ }
+
+const TDesC8* MCertInfo::IssuerHash() const
+ {
+ return iIssuerHash;
+ }
+
+EXPORT_C void MCertInfo::ConstructL(const TDesC8* aIssuerHash)
+ {
+ delete iIssuerHash;
+ iIssuerHash = NULL;
+ if (aIssuerHash)
+ {
+ iIssuerHash = aIssuerHash->AllocL();
+ }
+
+ if (!Valid())
+ {
+ User::Leave(KErrArgument);
+ }
+ }
+
+TBool MCertInfo::Valid() const
+ {
+ if (iLabel.Length() == 0)
+ {
+ return EFalse;
+ }
+
+ if (iCertificateId < 0)
+ {
+ return EFalse;
+ }
+
+ if (iFormat != EX509Certificate && iFormat != EWTLSCertificate &&
+ iFormat != EX968Certificate && iFormat != EX509CertificateUrl &&
+ iFormat != EWTLSCertificateUrl && iFormat != EX968CertificateUrl)
+ {
+ return EFalse;
+ }
+
+ if (iCertificateOwnerType != ECACertificate &&
+ iCertificateOwnerType != EUserCertificate &&
+ iCertificateOwnerType != EPeerCertificate)
+ {
+ return EFalse;
+ }
+
+ if (iSize <= 0)
+ {
+ return EFalse;
+ }
+
+ if (iIssuerHash && *iIssuerHash == KNullDesC8)
+ {
+ return EFalse;
+ }
+
+ return ETrue;
+ }
+
+/**
+ EXPORT_C void MCertInfo::ExternalizeL(RWriteStream& aStream) const
+
+ This method externalizes the MCertInfo object to the given stream.
+ The iDeletable boolean attribute is combined with the iFormat attribute
+ for certstore backward compatibility
+*/
+EXPORT_C void MCertInfo::ExternalizeL(RWriteStream& aStream) const
+ {
+ // insert iDeletable flag as most significant digit of iFormat in order
+ // store the flag without changing the externalized record format
+ // The value is OPPOSITE for backward compatibility
+ TUint8 tmpValue = static_cast <TUint8>(iFormat | (iDeletable ? 0 : KReadOnlyFlagMask));
+
+ aStream.WriteUint8L(tmpValue);
+ aStream.WriteInt32L(iSize);
+ aStream << iLabel;
+ aStream.WriteInt32L(iCertificateId);
+ aStream.WriteUint8L(iCertificateOwnerType);
+ aStream << iSubjectKeyId;
+ aStream << iIssuerKeyId;
+ }
+
+/**
+ EXPORT_C void MCertInfo::InternalizeL(RReadStream& aStream)
+
+ This method internalizes a MCertInfo object from the given stream.
+ The iDeletable boolean and iFormat attributes are both extracted
+ from the stored iFormat value using for certstore backward compatibility
+*/
+EXPORT_C void MCertInfo::InternalizeL(RReadStream& aStream)
+ {
+ // get first byte from stream containing iDeletable flag and iFormat value
+ TUint8 tmpValue = aStream.ReadUint8L();
+
+ // extract iDeletable flag from most significant digit of iFormat
+ // set iDeletable to the OPPOSITE of the 8th bit value
+ iDeletable = !(tmpValue & KReadOnlyFlagMask);
+
+ // extract iFormat = the value of the 7 least significant bits
+ iFormat = static_cast <TCertificateFormat>(tmpValue & KFormatMask);
+
+ iSize = aStream.ReadInt32L();
+ aStream >> iLabel;
+ iCertificateId = aStream.ReadInt32L();
+ iCertificateOwnerType = static_cast<TCertificateOwnerType>(aStream.ReadUint8L());
+ aStream >> iSubjectKeyId;
+ aStream >> iIssuerKeyId;
+
+ if (!Valid())
+ {
+ User::Leave(KErrCorrupt);
+ }
+ }
+
+// CCTCertInfo /////////////////////////////////////////////////////////////////
+
+EXPORT_C CCTCertInfo* CCTCertInfo::NewL(RReadStream& aStream, MCTToken& aToken)
+ {
+ CCTCertInfo* self = CCTCertInfo::NewLC(aStream, aToken);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+EXPORT_C CCTCertInfo* CCTCertInfo::NewLC(RReadStream& aStream, MCTToken& aToken)
+ {
+ CCTCertInfo* self = new(ELeave) CCTCertInfo(aToken);
+ CleanupReleasePushL(*self);
+ self->ConstructL(aStream);
+ return self;
+ }
+
+EXPORT_C CCTCertInfo* CCTCertInfo::NewL(const TDesC& aLabel,
+ TCertificateFormat aFormat,
+ TCertificateOwnerType aCertificateOwnerType,
+ TInt aSize,
+ const TKeyIdentifier* aSubjectKeyId,
+ const TKeyIdentifier* aIssuerKeyId,
+ MCTToken& aToken,
+ TInt aCertificateId)
+ {
+ CCTCertInfo* self = CCTCertInfo::NewLC(aLabel,
+ aFormat, aCertificateOwnerType, aSize, aSubjectKeyId, aIssuerKeyId, aToken,
+ aCertificateId, ETrue);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+EXPORT_C CCTCertInfo* CCTCertInfo::NewL(const TDesC& aLabel,
+ TCertificateFormat aFormat,
+ TCertificateOwnerType aCertificateOwnerType,
+ TInt aSize,
+ const TKeyIdentifier* aSubjectKeyId,
+ const TKeyIdentifier* aIssuerKeyId,
+ MCTToken& aToken,
+ TInt aCertificateId,
+ TBool aIsDeletable,
+ const TDesC8* aIssuerHash)
+ {
+ CCTCertInfo* self = CCTCertInfo::NewLC(aLabel,
+ aFormat, aCertificateOwnerType, aSize, aSubjectKeyId, aIssuerKeyId, aToken,
+ aCertificateId, aIsDeletable, aIssuerHash);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+EXPORT_C CCTCertInfo* CCTCertInfo::NewLC(const TDesC& aLabel,
+ TCertificateFormat aFormat,
+ TCertificateOwnerType aCertificateOwnerType,
+ TInt aSize,
+ const TKeyIdentifier* aSubjectKeyId,
+ const TKeyIdentifier* aIssuerKeyId,
+ MCTToken& aToken,
+ TInt aCertificateId)
+ {
+ return CCTCertInfo::NewLC(aLabel,
+ aFormat, aCertificateOwnerType, aSize, aSubjectKeyId, aIssuerKeyId,
+ aToken, aCertificateId, ETrue);
+ }
+
+EXPORT_C CCTCertInfo* CCTCertInfo::NewLC(const TDesC& aLabel,
+ TCertificateFormat aFormat,
+ TCertificateOwnerType aCertificateOwnerType,
+ TInt aSize,
+ const TKeyIdentifier* aSubjectKeyId,
+ const TKeyIdentifier* aIssuerKeyId,
+ MCTToken& aToken,
+ TInt aCertificateId,
+ TBool aIsDeletable,
+ const TDesC8* aIssuerHash)
+ {
+ CCTCertInfo* self = new(ELeave) CCTCertInfo(aLabel,
+ aFormat, aCertificateOwnerType, aSize, aSubjectKeyId,
+ aIssuerKeyId, aToken, aCertificateId, aIsDeletable);
+ CleanupReleasePushL(*self);
+ self->ConstructL(aIssuerHash);
+ return self;
+ }
+
+EXPORT_C CCTCertInfo* CCTCertInfo::NewL(const CCTCertInfo& aCertInfo)
+ {
+ CCTCertInfo* self = CCTCertInfo::NewLC(aCertInfo);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+EXPORT_C CCTCertInfo* CCTCertInfo::NewLC(const CCTCertInfo& aCertInfo)
+ {
+ CCTCertInfo* self = new(ELeave) CCTCertInfo(aCertInfo);
+ CleanupReleasePushL(*self);
+ self->ConstructL(aCertInfo.IssuerHash());
+ return self;
+ }
+
+CCTCertInfo::CCTCertInfo(MCTToken& aToken)
+ : MCTTokenObject(aToken), iToken(aToken)
+ {
+ }
+
+CCTCertInfo::CCTCertInfo(const TDesC& aLabel,
+ TCertificateFormat aFormat,
+ TCertificateOwnerType aCertificateOwnerType,
+ TInt aSize,
+ const TKeyIdentifier* aSubjectKeyId,
+ const TKeyIdentifier* aIssuerKeyId,
+ MCTToken& aToken,
+ TInt aCertificateId,
+ TBool aIsDeletable)
+ : MCTTokenObject(aToken),
+ MCertInfo(aLabel, aFormat, aCertificateOwnerType, aSize, aSubjectKeyId,
+ aIssuerKeyId, aCertificateId, aIsDeletable),
+ iToken(aToken)
+ {
+ }
+
+CCTCertInfo::CCTCertInfo(const CCTCertInfo& aOther)
+ : MCTTokenObject(aOther.iToken), MCertInfo(aOther), iToken(aOther.iToken)
+ {
+ }
+
+void CCTCertInfo::ConstructL(RReadStream& aStream)
+ {
+ InternalizeL(aStream);
+ }
+
+void CCTCertInfo::ConstructL(const TDesC8* aIssuerHash)
+ {
+ MCertInfo::ConstructL(aIssuerHash);
+ }
+
+EXPORT_C CCTCertInfo::~CCTCertInfo()
+ {
+ }
+
+const TDesC& CCTCertInfo::Label() const
+ {
+ return iLabel;
+ }
+
+TUid CCTCertInfo::Type() const
+ {
+ TUid uid = { KCTObjectCertInfo };
+ return uid;
+ }
+
+EXPORT_C const TKeyIdentifier& CCTCertInfo::SubjectKeyId() const
+ {
+ return iSubjectKeyId;
+ }
+
+EXPORT_C const TKeyIdentifier& CCTCertInfo::IssuerKeyId() const
+ {
+ return iIssuerKeyId;
+ }
+
+EXPORT_C TCertificateFormat CCTCertInfo::CertificateFormat() const
+ {
+ return iFormat;
+ }
+
+EXPORT_C TCertificateOwnerType CCTCertInfo::CertificateOwnerType() const
+ {
+ return iCertificateOwnerType;
+ }
+
+EXPORT_C TInt CCTCertInfo::Size() const
+ {
+ return iSize;
+ }
+
+MCTToken& CCTCertInfo::Token() const
+ {
+ return iToken;
+ }
+
+EXPORT_C TCTTokenObjectHandle CCTCertInfo::Handle() const
+ {
+ return TCTTokenObjectHandle(iToken.Handle(), iCertificateId);
+ }
+
+EXPORT_C TBool CCTCertInfo::IsDeletable() const
+ {
+ return iDeletable;
+ }
+
+EXPORT_C const TDesC8* CCTCertInfo::IssuerHash() const
+ {
+ return MCertInfo::IssuerHash();
+ }
+
+EXPORT_C TBool CCTCertInfo::operator==(const CCTCertInfo& aCertInfo) const
+ {
+ return aCertInfo.iLabel == iLabel;
+ }
+
+EXPORT_C void CCTCertInfo::SetCertificateId(TInt aCertId)
+{
+ iCertificateId = aCertId;
+}