diff -r 5cc91383ab1e -r 7333d7932ef7 appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget_symbian.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget_symbian.cpp Tue Aug 31 15:21:33 2010 +0300 @@ -0,0 +1,118 @@ +/* +* Copyright (c) 2010 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: SIF UI dialog title widget (SymbianOS specific part). +* +*/ + +#include "sifuidialogtitlewidget.h" +#include "sifuidialogcertificateinfo.h" // SifUiDialogCertificateInfo +#include // RDesReadStream + + +// ======== LOCAL FUNCTIONS ======== + +// ---------------------------------------------------------------------------- +// readStringFromStreamL() +// ---------------------------------------------------------------------------- +// +QString readStringFromStreamL( RDesReadStream& aReadStream ) +{ + TInt length = aReadStream.ReadInt32L(); + HBufC* buf = HBufC::NewLC( length ); + TPtr ptr( buf->Des() ); + aReadStream.ReadL( ptr, length ); + QString string = QString::fromUtf16( ptr.Ptr(), length ); + CleanupStack::PopAndDestroy( buf ); + return string; +} + +// ---------------------------------------------------------------------------- +// readByteArrayFromStreamL() +// ---------------------------------------------------------------------------- +// +QByteArray readByteArrayFromStreamL( RDesReadStream& aReadStream ) +{ + TInt length = aReadStream.ReadInt32L(); + HBufC8* buf = HBufC8::NewLC( length ); + TPtr8 ptr( buf->Des() ); + aReadStream.ReadL( ptr, length ); + QByteArray byteArray( reinterpret_cast< const char * >( ptr.Ptr() ), length ); + CleanupStack::PopAndDestroy( buf ); + return byteArray; +} + +// ---------------------------------------------------------------------------- +// readDateFromStreamL() +// ---------------------------------------------------------------------------- +// +void readDateFromStreamL( RDesReadStream& aReadStream, QDateTime& aDateTime ) +{ + TDateTime dateTimeSymbian; + TPckg dateTimePckg( dateTimeSymbian ); + aReadStream.ReadL( dateTimePckg ); + QDate date( dateTimeSymbian.Year(), dateTimeSymbian.Month()+1, dateTimeSymbian.Day()+1 ); + aDateTime.setDate( date ); + QTime time( dateTimeSymbian.Hour(), dateTimeSymbian.Minute(), dateTimeSymbian.Second() ); + aDateTime.setTime( time ); +} + +// ---------------------------------------------------------------------------- +// doGetCertificatesL() +// ---------------------------------------------------------------------------- +// +QList *doGetCertificatesL( QByteArray aArray ) +{ + QList *list = new QList; + + const TPtrC8 ptr8( reinterpret_cast< const TText8* >( aArray.constData() ), aArray.size() ); + RDesReadStream readStream; + CleanupClosePushL( readStream ); + readStream.Open( ptr8 ); + + TInt certCount = readStream.ReadInt32L(); + for( TInt index = 0; index < certCount; ++index ) + { + QString subjectName = readStringFromStreamL( readStream ); + QString issuerName = readStringFromStreamL( readStream ); + QByteArray fingerprint = readByteArrayFromStreamL( readStream ); + QByteArray serialNumber = readByteArrayFromStreamL( readStream ); + QDateTime validFrom; + readDateFromStreamL( readStream, validFrom ); + QDateTime validTo; + readDateFromStreamL( readStream, validTo ); + + SifUiDialogCertificateInfo *certInfo = new SifUiDialogCertificateInfo( + subjectName, issuerName, fingerprint, serialNumber, validFrom, validTo ); + list->append( certInfo ); + } + + CleanupStack::PopAndDestroy( &readStream ); + return list; +} + + +// ======== MEMBER FUNCTIONS ======== + +// ---------------------------------------------------------------------------- +// SifUiDialogTitleWidget::SifUiDialogTitleWidget() +// ---------------------------------------------------------------------------- +// +QList *SifUiDialogTitleWidget::getCertificates( + QByteArray array) +{ + QList *list = 0; + QT_TRAP_THROWING(list = doGetCertificatesL(array)); + return list; +} +