# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1278422516 -10800 # Node ID b4bf7a662141866b8ca819c729f789f3abda6009 # Parent dd83586b62d6c502415fc4abb1125f19043f7e77 Revision: 201027 Kit: 2010127 diff -r dd83586b62d6 -r b4bf7a662141 contentmgmt/contentaccessfwfordrm/group/bld.inf --- a/contentmgmt/contentaccessfwfordrm/group/bld.inf Fri Jun 11 15:32:35 2010 +0300 +++ b/contentmgmt/contentaccessfwfordrm/group/bld.inf Tue Jul 06 16:21:56 2010 +0300 @@ -21,6 +21,10 @@ @file */ +#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT +#include "../../referencedrmagent/refcafhelper/group/bld.inf" +#endif + PRJ_PLATFORMS DEFAULT diff -r dd83586b62d6 -r b4bf7a662141 crypto/weakcryptospi/source/bigint/bigint.cpp --- a/crypto/weakcryptospi/source/bigint/bigint.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/crypto/weakcryptospi/source/bigint/bigint.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2003-2010 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" @@ -1084,16 +1084,13 @@ // For i from 1 to (2^(k-1) -1) do g2i+1 <- g2i-1 * g2 TUint count = (1 << (slider.WindowSize()-1)) - 1; //2^(k-1) -1 RRArray powerArray(count+1); //+1 because we append g1 - User::LeaveIfError(powerArray.Append(g1)); + powerArray.AppendL(g1); CleanupStack::Pop(); //g1 CleanupClosePushL(powerArray); for(TUint k=1; k <= count; k++) { RInteger g2iplus1 = g2.TimesL(powerArray[k-1]); - //This append can't fail as the granularity is set high enough - //plus we've already called Append once which will alloc to the - //set granularity - powerArray.Append(g2iplus1); + powerArray.AppendL(g2iplus1); } // 2 A <- 1, i <- t diff -r dd83586b62d6 -r b4bf7a662141 cryptomgmtlibs/securityutils/group/bld.inf --- a/cryptomgmtlibs/securityutils/group/bld.inf Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptomgmtlibs/securityutils/group/bld.inf Tue Jul 06 16:21:56 2010 +0300 @@ -28,7 +28,7 @@ ../inc/euserext.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(euserext.h) ../inc/miscutil.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(miscutil.h) ../inc/callbacktimer.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(callbacktimer.h) -../inc/SecSettingsclient.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(SecSettings/SecSettingsclient.h) +../inc/secsettingsclient.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(secsettings/secsettingsclient.h) ../inc/securityerr.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(securityerr.h) // ROMKIT includes diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/asn1/asn1libdec.cpp --- a/cryptoservices/certificateandkeymgmt/asn1/asn1libdec.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/asn1/asn1libdec.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -18,3 +18,8 @@ #include + +// Dummy definition, just to satisfy SDK creation check +EXPORT_C TASN1DecEnumerated::TASN1DecEnumerated() +{ +} diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/bwins/ASN1u.def --- a/cryptoservices/certificateandkeymgmt/bwins/ASN1u.def Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/bwins/ASN1u.def Tue Jul 06 16:21:56 2010 +0300 @@ -130,4 +130,5 @@ ??1CASN1EncPrintableString@@UAE@XZ @ 129 NONAME ; CASN1EncPrintableString::~CASN1EncPrintableString(void) ?NewL@CASN1EncPrintableString@@SAPAV1@ABVTDesC8@@@Z @ 130 NONAME ; class CASN1EncPrintableString * CASN1EncPrintableString::NewL(class TDesC8 const &) ?NewLC@CASN1EncPrintableString@@SAPAV1@ABVTDesC8@@@Z @ 131 NONAME ; class CASN1EncPrintableString * CASN1EncPrintableString::NewLC(class TDesC8 const &) + ??0TASN1DecEnumerated@@QAE@XZ @ 132 NONAME ; TASN1DecEnumerated::TASN1DecEnumerated(void) diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/bwins/X509_v2u.def --- a/cryptoservices/certificateandkeymgmt/bwins/X509_v2u.def Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/bwins/X509_v2u.def Tue Jul 06 16:21:56 2010 +0300 @@ -279,5 +279,5 @@ ?NewL@CCertificateValidationWarnings@@SAPAV1@H@Z @ 278 NONAME ; class CCertificateValidationWarnings * CCertificateValidationWarnings::NewL(int) ?NewLC@CCertificateValidationWarnings@@SAPAV1@H@Z @ 279 NONAME ; class CCertificateValidationWarnings * CCertificateValidationWarnings::NewLC(int) ?Warnings@CCertificateValidationWarnings@@QBEABV?$RArray@VTValidationStatus@@@@XZ @ 280 NONAME ; class RArray const & CCertificateValidationWarnings::Warnings(void) const - ?SubjectKeyIdL@CX509Certificate@@QAE?AV?$TBuf8@$0BE@@@XZ @ 281 NONAME ; class TBuf8<20> CX509Certificate::SubjectKeyIdL(void) + ?SubjectKeyIdL@CX509Certificate@@QBE?AV?$TBuf8@$0BE@@@XZ @ 281 NONAME ; class TBuf8<20> CX509Certificate::SubjectKeyIdL(void) const diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/certstore/certclients.dat Binary file cryptoservices/certificateandkeymgmt/certstore/certclients.dat has changed diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/eabi/asn1U.def --- a/cryptoservices/certificateandkeymgmt/eabi/asn1U.def Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/eabi/asn1U.def Tue Jul 06 16:21:56 2010 +0300 @@ -204,4 +204,6 @@ _ZTV23CASN1EncPrintableString @ 203 NONAME ; ## _ZN17CASN1EncPrimitiveC2Ej @ 204 NONAME _ZN17TASN1DecBMPString10CheckValidERK6TDesC8 @ 205 NONAME + _ZN18TASN1DecEnumeratedC1Ev @ 206 NONAME + _ZN18TASN1DecEnumeratedC2Ev @ 207 NONAME diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/eabi/x509_v2u.def --- a/cryptoservices/certificateandkeymgmt/eabi/x509_v2u.def Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/eabi/x509_v2u.def Tue Jul 06 16:21:56 2010 +0300 @@ -397,5 +397,5 @@ _ZNK30CCertificateValidationWarnings9CertIndexEv @ 396 NONAME _ZTI30CCertificateValidationWarnings @ 397 NONAME _ZTV30CCertificateValidationWarnings @ 398 NONAME - _ZN16CX509Certificate13SubjectKeyIdLEv @ 399 NONAME + _ZNK16CX509Certificate13SubjectKeyIdLEv @ 399 NONAME diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/inc/x509cert.h --- a/cryptoservices/certificateandkeymgmt/inc/x509cert.h Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/inc/x509cert.h Tue Jul 06 16:21:56 2010 +0300 @@ -621,7 +621,7 @@ * as an extension in the certificate, any other certificate it returns the keyidentifier as * calculated by Symbian's proprietary logic. * @return The subject key identifier for the certificate. */ - IMPORT_C TKeyIdentifier SubjectKeyIdL(); + IMPORT_C TKeyIdentifier SubjectKeyIdL() const; /** Destructor. diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/tcertstore/T_ccttokentypeinfoattributes.cpp --- a/cryptoservices/certificateandkeymgmt/tcertstore/T_ccttokentypeinfoattributes.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/tcertstore/T_ccttokentypeinfoattributes.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2010 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" @@ -70,8 +70,8 @@ RArray uidArray; CleanupClosePushL(uidArray); TUid uid1 = { KInterfaceCertStore }; - - uidArray.Append(uid1); + + uidArray.AppendL(uid1); TCTFindTokenTypesByInterface filter(uidArray.Array()); CCTTokenTypeInfo::ListL(iTokenTypes, filter); diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/tpkixcert/Taction_build.cpp --- a/cryptoservices/certificateandkeymgmt/tpkixcert/Taction_build.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/tpkixcert/Taction_build.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1998-2010 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" @@ -161,7 +161,7 @@ { } - while(AddAddCalls(*aBody, pos)) + while(AddAddCallsL(*aBody, pos)) { } @@ -354,13 +354,14 @@ return EFalse; } -TBool CTestActionBuild::AddAddCalls(const TDesC& aBuf, TInt& aPos) +TBool CTestActionBuild::AddAddCallsL(const TDesC& aBuf, TInt& aPos) { TPtrC addCallsBuf = Input::ParseElement(aBuf, KAddCallStart, KAddCallEnd, aPos); if (addCallsBuf != KNullDesC) { - CAddCall* addCall = CAddCall::NewL(addCallsBuf); - iAddCalls.Append(addCall); + CAddCall* addCall = CAddCall::NewLC(addCallsBuf); + iAddCalls.AppendL(addCall); + CleanupStack::Pop(addCall); return ETrue; } return EFalse; diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/tpkixcert/taction_build.h --- a/cryptoservices/certificateandkeymgmt/tpkixcert/taction_build.h Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/tpkixcert/taction_build.h Tue Jul 06 16:21:56 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1998-2010 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" @@ -69,7 +69,7 @@ TBool AddCert(const TDesC& aBuf, const TDesC& aStart, const TDesC& aEnd, TInt& aPos, CDesCArray& aCertsFileName, CDesCArray& aCertsLabel); - TBool AddAddCalls(const TDesC& aBuf, TInt& aPos); + TBool AddAddCallsL(const TDesC& aBuf, TInt& aPos); TBool CompareChainsL(const CPKIXCertChain& aChain); TBool CompareCertL(const CX509Certificate& aCert, const TDesC& aFilename); diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/tpkixcert_tef/src/validateteststep.cpp --- a/cryptoservices/certificateandkeymgmt/tpkixcert_tef/src/validateteststep.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/tpkixcert_tef/src/validateteststep.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008-2010 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" @@ -123,7 +123,7 @@ if (policyIndex > 0) { TValidationError error = (TValidationError) qualifierWarning; - processedPolicyQualifiers.Append(TValidationStatus(error, policyIndex)); + processedPolicyQualifiers.AppendL(TValidationStatus(error, policyIndex)); } CleanupStack::PopAndDestroy(key); @@ -157,7 +157,7 @@ for (TInt i=0; i < configOldWarnings.Count(); ++i) { TValidationError error = (TValidationError) configOldWarnings[i]; - processedConfigOldWarnings.Append(TValidationStatus(error, cert_index)); + processedConfigOldWarnings.AppendL(TValidationStatus(error, cert_index)); } TransferToNewWarningsL(configOldWarnings, configNewWarnings, cert_index); @@ -198,7 +198,7 @@ if (policyIndex > 0) { TValidationError error = (TValidationError) qualifierWarning; - configNewWarnings.Append(TValidationStatus(error, policyIndex)); + configNewWarnings.AppendL(TValidationStatus(error, policyIndex)); } CleanupStack::PopAndDestroy(key); diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/tx509/extensiontest.cpp --- a/cryptoservices/certificateandkeymgmt/tx509/extensiontest.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/tx509/extensiontest.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2010 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" @@ -135,8 +135,10 @@ // if it exists. TPtrC str = Input::ParseElement(aBuf, aTag, pos, err); if (err >= 0) - { - aStrings.Append(str.AllocL()); + { + HBufC* string = str.AllocLC(); + aStrings.AppendL(string); + CleanupStack::Pop(string); } } while (err >= 0); @@ -153,7 +155,9 @@ TInt n = Input::ParseIntElement(aBuf, aTag, pos, err); if (err >= 0) { - aInts.Append(n); + // This append should not fail as the parsing went fine. + // So, ignoring the leave just to satisfy non leaving method convention. + TRAP_IGNORE(aInts.AppendL(n)); } } while (err >= 0); diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/certificateandkeymgmt/x509/x509cert.cpp --- a/cryptoservices/certificateandkeymgmt/x509/x509cert.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/certificateandkeymgmt/x509/x509cert.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -1339,10 +1339,10 @@ } -EXPORT_C TKeyIdentifier CX509Certificate::SubjectKeyIdL() +EXPORT_C TKeyIdentifier CX509Certificate::SubjectKeyIdL() const { // if it is a v1 or v2 type then there is no way of knowing which is a CA, treat all certs as CA as done in the certificate recognizer. - if (Version() != 3 ) + if (Version() < 3 ) { return SubjectKeyIdentifierL(); } diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/filebasedcertificateandkeystores/source/certapps/server/CFSCertAppsServer.cpp --- a/cryptoservices/filebasedcertificateandkeystores/source/certapps/server/CFSCertAppsServer.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/filebasedcertificateandkeystores/source/certapps/server/CFSCertAppsServer.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2010 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" @@ -123,7 +123,7 @@ for (TInt i = 0; i < count; ++i) { - aAppArray.Append(iClients[i]); + aAppArray.AppendL(iClients[i]); } } diff -r dd83586b62d6 -r b4bf7a662141 cryptoservices/filebasedcertificateandkeystores/source/keystore/Server/CKeyDataManager.cpp --- a/cryptoservices/filebasedcertificateandkeystores/source/keystore/Server/CKeyDataManager.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/cryptoservices/filebasedcertificateandkeystores/source/keystore/Server/CKeyDataManager.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2010 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" @@ -92,12 +92,14 @@ TInt count = lookupStream.ReadInt32L(); for (TInt index = 0; index < count; index++) { - const CFileKeyData* keyData = CFileKeyData::NewL(lookupStream); + CFileKeyData* keyData = CFileKeyData::NewL(lookupStream); + CleanupStack::PushL(keyData); if (keyData->Handle() > iKeyIdentifier) iKeyIdentifier = keyData->Handle(); - iKeys.Append(keyData); + iKeys.AppendL(keyData); + CleanupStack::Pop(keyData); } CleanupStack::PopAndDestroy(&lookupStream); diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securityconfig/conf/ci_securityconfig.confml Binary file securityanddataprivacytools/securityconfig/conf/ci_securityconfig.confml has changed diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securityconfig/conf/securityconfig.confml Binary file securityanddataprivacytools/securityconfig/conf/securityconfig.confml has changed diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securityconfig/conf/securityconfig_2001ea7f.crml Binary file securityanddataprivacytools/securityconfig/conf/securityconfig_2001ea7f.crml has changed diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securityconfig/conf/securityconfig_2002b28b.crml Binary file securityanddataprivacytools/securityconfig/conf/securityconfig_2002b28b.crml has changed diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securityconfig/group/bld.inf --- a/securityanddataprivacytools/securityconfig/group/bld.inf Fri Jun 11 15:32:35 2010 +0300 +++ b/securityanddataprivacytools/securityconfig/group/bld.inf Tue Jul 06 16:21:56 2010 +0300 @@ -42,8 +42,9 @@ #endif // SYMBIAN_AUTH_SERVER // ConfML Files +../conf/ci_securityconfig.confml OS_LAYER_EXPORTS_CONFML(ci_securityconfig.confml) ../conf/securityconfig.confml OS_LAYER_EXPORTS_CONFML(securityconfig.confml) -../conf/securityconfig_2001ea7f.crml OS_LAYER_EXPORTS_CRML(securityconfig_2001ea7f.crml) +../conf/securityconfig_2002b28b.crml OS_LAYER_EXPORTS_CRML(securityconfig_2002b28b.crml) PRJ_TESTEXPORTS diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securitytools/certapp/encdec/certinfo.cpp --- a/securityanddataprivacytools/securitytools/certapp/encdec/certinfo.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/securityanddataprivacytools/securitytools/certapp/encdec/certinfo.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -197,6 +197,11 @@ return (TCertificateFormat)iFormat.Value(); } +TCertificateOwnerType CertInfo::CertificateOwnerType() const +{ + return (TCertificateOwnerType)iCertificateOwnerType.Value(); +} + KeyIdentifierObject &CertInfo::SubjectKeyId() { diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securitytools/certapp/encdec/certinfo.h --- a/securityanddataprivacytools/securitytools/certapp/encdec/certinfo.h Fri Jun 11 15:32:35 2010 +0300 +++ b/securityanddataprivacytools/securitytools/certapp/encdec/certinfo.h Tue Jul 06 16:21:56 2010 +0300 @@ -64,6 +64,8 @@ TUint32 OutputCertificateId() const; void SetOutputCertificateId(TUint32 aId); + + TCertificateOwnerType CertificateOwnerType() const; private: EncDecObject iTmpCombinedDeletableAndFormat; diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securitytools/certapp/encdec/filecertstore.cpp --- a/securityanddataprivacytools/securitytools/certapp/encdec/filecertstore.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/securityanddataprivacytools/securitytools/certapp/encdec/filecertstore.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -286,10 +286,11 @@ if(iCertInfo.CertificateFormat() == EX509Certificate) { TKeyIdentifier subjectKeyId; - + bool isCA = ( iCertInfo.CertificateOwnerType() != EUserCertificate ); + // nb. If processing a swicertstore we ignore any SubjectKeyId in the extension. if(X509SubjectKeyId((iSwiMode)?(KIgnoreCertificateExtension) : (KUseCertificateExtension), - false, + false, isCA, iCertData, iCertSubject, subjectKeyId)) { diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securitytools/certapp/encdec/x509utils.cpp --- a/securityanddataprivacytools/securitytools/certapp/encdec/x509utils.cpp Fri Jun 11 15:32:35 2010 +0300 +++ b/securityanddataprivacytools/securitytools/certapp/encdec/x509utils.cpp Tue Jul 06 16:21:56 2010 +0300 @@ -191,7 +191,7 @@ #endif bool X509SubjectKeyId(EUseCertificateExtension aUseExtension, bool aUseRfc3280Algorithm, - const std::string &aCert, + bool aIsCa, const std::string &aCert, std::string &aSubject, TKeyIdentifier &aSubjectKeyId) { bool done = false; @@ -210,8 +210,17 @@ // Return the Subject Name prog << Log::Indent() << "Cert subject is '" << x509->name << "'" << Log::Endl(); aSubject = std::string(x509->name); - - if(aUseExtension) + TUint32 ver = X509_get_version(x509); + prog << Log::Indent() << "Cert version is '" << ver << "'" << Log::Endl(); + + // if the ver is a v1 or v2 type then there is no way of knowing which is a CA, treat all certs as CA as done in the certificate recognizer. + bool treatAsCa = false; + if ( ver < 3 || aIsCa ) + { + treatAsCa = true; + } + + if(treatAsCa && aUseExtension) { // Attempt to read Subject Key Id extension ASN1_OCTET_STRING *subKeyId = (ASN1_OCTET_STRING *) X509_get_ext_d2i(x509, NID_subject_key_identifier, NULL, NULL); diff -r dd83586b62d6 -r b4bf7a662141 securityanddataprivacytools/securitytools/certapp/encdec/x509utils.h --- a/securityanddataprivacytools/securitytools/certapp/encdec/x509utils.h Fri Jun 11 15:32:35 2010 +0300 +++ b/securityanddataprivacytools/securitytools/certapp/encdec/x509utils.h Tue Jul 06 16:21:56 2010 +0300 @@ -71,7 +71,7 @@ If the certificate is invalid then exit the program with an error message! */ bool X509SubjectKeyId(EUseCertificateExtension aUseExtension, bool aUseRfc3280Algorithm, - const std::string &aCert, + bool aIsCa, const std::string &aCert, std::string &aSubject, TKeyIdentifier &aSubjectKeyId); /**