diff -r b5d63d5fc252 -r a469c0e6e7fb smf/smfcredentialmgr/smfcredmgrcommon/src/smfcredmgrclientdatastruct.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/smfcredentialmgr/smfcredmgrcommon/src/smfcredmgrclientdatastruct.cpp Wed Jun 23 19:51:49 2010 +0530 @@ -0,0 +1,404 @@ +/** + * Copyright (c) 2010 Sasken Communication Technologies Ltd. + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of the "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: + * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution + * + * Description: + * This source file gives different data classes to be used + * by Credential Manager Client and Server for data transfer. + * + */ + +#include "smfcredmgrclientdatastruct.h" +#include "smfutils.h" +#include + +void TSmfAuthToken::ExternalizeL(RWriteStream& aStream) + { + + TPtr firstArgPtr(iKey->Des()); + SmfUtils::ExternalizeDesL(firstArgPtr, aStream); + + TPtr secondArgPtr(iSecret->Des()); + SmfUtils::ExternalizeDesL(secondArgPtr, aStream); + } + +void TSmfAuthToken::InternalizeL(RReadStream& aStream) + { + + // Delete the current values + delete iKey; + iKey = SmfUtils::InternalizeDesL(aStream); + + delete iSecret; + iSecret = SmfUtils::InternalizeDesL(aStream); + } + +void CSmfFetchAuthTokenSet::ExternalizeL(RWriteStream& aStream) + { + aStream.WriteUint32L(iValidity); + + TPtr tokenPtr(iRegistrationToken->Des()); + SmfUtils::ExternalizeDesL(tokenPtr, aStream); + + TInt32 countTokenSet = iAuthTokenArray.Count(); + aStream.WriteInt32L(countTokenSet); + + for (int i = 0; i < countTokenSet; i++) + { + iAuthTokenArray[i].ExternalizeL(aStream); + } + + } + +void CSmfFetchAuthTokenSet::InternalizeL(const RBuf8& aSource) + { + // Create stream to read from the given buffer + RDesReadStream stream(aSource); + CleanupClosePushL(stream); + + iValidity = stream.ReadUint32L(); + + // Delete the current values + delete iRegistrationToken; + iRegistrationToken = SmfUtils::InternalizeDesL(stream); + + TInt32 countTokenSet = stream.ReadInt32L(); + iAuthTokenArray.Reset(); + for (int i = 0; i < countTokenSet; i++) + { + TSmfAuthToken set; + set.InternalizeL(stream); + iAuthTokenArray.Insert(set, i); + } + CleanupStack::PopAndDestroy(&stream); + } + +void CSmfURLListParams::ExternalizeL(RWriteStream& aStream) + { + TInt32 countPlugin = iURLList.Count(); + aStream.WriteInt32L(countPlugin); + for (int i = 0; i < countPlugin; i++) + { + TPtr pluginBufPtr(iURLList[i]->Des()); + SmfUtils::ExternalizeDesL(pluginBufPtr, aStream); + } + + TPtr tokenPtr(iPluginID->Des()); + SmfUtils::ExternalizeDesL(tokenPtr, aStream); + } + +void CSmfURLListParams::InternalizeL(const TDesC8& aSource) + { + // Create stream to read from the given buffer + RDesReadStream stream(aSource); + CleanupClosePushL(stream); + + //internalize plugin ids + TInt32 countPlugin = stream.ReadInt32L(); + iURLList.Reset(); + for (int i = 0; i < countPlugin; i++) + { + HBufC* bufPlugin(SmfUtils::InternalizeDesL(stream)); + iURLList.Insert(bufPlugin, i); + } + iPluginID = SmfUtils::InternalizeDesL(stream); + + CleanupStack::PopAndDestroy(&stream); + } + +void CSmfPluginIDListParams::ExternalizeL(RWriteStream& aStream) + { + TPtr tokenPtr(iRegistrationToken->Des()); + SmfUtils::ExternalizeDesL(tokenPtr, aStream); + + TInt32 countPlugin = iPluginList.Count(); + aStream.WriteInt32L(countPlugin); + for (int i = 0; i < countPlugin; i++) + { + TPtr pluginBufPtr(iPluginList[i]->Des()); + SmfUtils::ExternalizeDesL(pluginBufPtr, aStream); + } + } + +void CSmfPluginIDListParams::InternalizeL(const RBuf8& aSource) + { + // Create stream to use given buffer. + RDesReadStream stream(aSource); + CleanupClosePushL(stream); + + // Delete the current values + delete iRegistrationToken; + iRegistrationToken = SmfUtils::InternalizeDesL(stream); + + //internalize plugin ids + TInt32 countPlugin = stream.ReadInt32L(); + iPluginList.Reset(); + for (int i = 0; i < countPlugin; i++) + { + HBufC* bufPlugin(SmfUtils::InternalizeDesL(stream)); + iPluginList.Insert(bufPlugin, i); + } + CleanupStack::PopAndDestroy(&stream); + } + +void CSmfStoreAuthParams::ExternalizeL(RWriteStream& aStream) + { + aStream.WriteInt32L(pluginIDEnabled); + + aStream.WriteUint32L(iValidity); + + TPtr tokenPtr(iRegistrationToken->Des()); + SmfUtils::ExternalizeDesL(tokenPtr, aStream); + + TPtr AuthAppIdPtr(iAuthAppID->Des()); + SmfUtils::ExternalizeDesL(AuthAppIdPtr, aStream); + + TInt32 countTokenSet = iAuthTokenArray.Count(); + aStream.WriteInt32L(countTokenSet); + + for (int i = 0; i < countTokenSet; i++) + { + iAuthTokenArray[i].ExternalizeL(aStream); + } + + TInt32 countPlugin = iPluginIDList.Count(); + + aStream.WriteInt32L(countPlugin); + + for (int i = 0; i < countPlugin; i++) + { + + TPtr pluginBufPtr(iPluginIDList[i]->Des()); + SmfUtils::ExternalizeDesL(pluginBufPtr, aStream); + } + + TInt32 countUrl = iURLList.Count(); + aStream.WriteInt32L(countUrl); + + for (int i = 0; i < countUrl; i++) + { + TPtr urlBufPtr(iURLList[i]->Des()); + SmfUtils::ExternalizeDesL(urlBufPtr, aStream); + } + } + +void CSmfStoreAuthParams::InternalizeL(const RBuf8& aSource) + { + // Create stream to read from the given buffer + RDesReadStream stream(aSource); + CleanupClosePushL(stream); + + pluginIDEnabled = stream.ReadInt32L(); + + iValidity = stream.ReadUint32L(); + + // Delete the current values + delete iRegistrationToken; + iRegistrationToken = SmfUtils::InternalizeDesL(stream); + + delete iAuthAppID; + iAuthAppID = SmfUtils::InternalizeDesL(stream); + + TInt32 countTokenSet = stream.ReadInt32L(); + iAuthTokenArray.Reset(); + for (int i = 0; i < countTokenSet; i++) + { + TSmfAuthToken set; + set.InternalizeL(stream); + iAuthTokenArray.Insert(set, i); + } + + //internalize plugin ids + TInt32 countPlugin = stream.ReadInt32L(); + iPluginIDList.Reset(); + for (int i = 0; i < countPlugin; i++) + { + HBufC* bufPlugin = SmfUtils::InternalizeDesL(stream); + iPluginIDList.Insert(bufPlugin, i); + } + + //internalize URLs + TInt32 countURL = stream.ReadInt32L(); + iURLList.Reset(); + for (int i = 0; i < countURL; i++) + { + HBufC* bufURL = SmfUtils::InternalizeDesL(stream); + iURLList.Insert(bufURL, i); + } + CleanupStack::PopAndDestroy(&stream); + } + +void CSmfPluginIDUpdate::ExternalizeL(RWriteStream& aStream) + { + aStream.WriteInt32L(pluginIDEnabled); + + TPtr newPtr(iNewPluginID->Des()); + SmfUtils::ExternalizeDesL(newPtr, aStream); + + TPtr oldPtr(iOldPluginID->Des()); + SmfUtils::ExternalizeDesL(oldPtr, aStream); + } + +void CSmfPluginIDUpdate::InternalizeL(const RBuf8& aSource) + { + // Create stream to read from the given buffer + RDesReadStream stream(aSource); + CleanupClosePushL(stream); + + pluginIDEnabled = stream.ReadInt32L(); + + // Delete the current values + delete iNewPluginID; + iNewPluginID = SmfUtils::InternalizeDesL(stream); + + delete iOldPluginID; + iOldPluginID = SmfUtils::InternalizeDesL(stream); + + CleanupStack::PopAndDestroy(&stream); + } + +CSmfSignParameters* CSmfSignParameters::NewL( + const TDesC8& aMessage, const TDesC8& aKey ) + { + CSmfSignParameters* self = new( ELeave ) CSmfSignParameters(); + CleanupStack::PushL( self ); + self->ConstructL( aMessage, aKey ); + CleanupStack::Pop( self ); + return self; + } + +CSmfSignParameters* CSmfSignParameters::NewL( const TDesC8& aData ) + { + CSmfSignParameters* self = new( ELeave ) CSmfSignParameters(); + CleanupStack::PushL( self ); + self->ConstructL( aData ); + CleanupStack::Pop( self ); + return self; + } + +CSmfSignParameters::~CSmfSignParameters() + { + iMessage.Close(); + iKey.Close(); + } + +void CSmfSignParameters::ExternalizeL( RWriteStream& aStream ) const + { + SmfUtils::ExternalizeDesL( iMessage, aStream ); + SmfUtils::ExternalizeDesL( iKey, aStream ); + } + +const TDesC8& CSmfSignParameters::Key() const + { + return iKey; + } + +const TDesC8& CSmfSignParameters::Message() const + { + return iMessage; + } + +CSmfSignParameters::CSmfSignParameters() + { + } + +void CSmfSignParameters::ConstructL( const TDesC8& aMessage, const TDesC8& aKey ) + { + iMessage.CreateL( aMessage ); + iKey.CreateL( aKey ); + } + +void CSmfSignParameters::ConstructL( const TDesC8& aData ) + { + RDesReadStream stream( aData ); + CleanupClosePushL( stream ); + SmfUtils::InternalizeDesL( iMessage, stream ); + SmfUtils::InternalizeDesL( iKey, stream ); + CleanupStack::PopAndDestroy( &stream ); + } + +CSmfRsaKeyParameters* CSmfRsaKeyParameters::NewL( + const TDesC& aKeyName, const TTime& startDate, + const TTime& endDate, const TDesC8& aKeyData ) + { + CSmfRsaKeyParameters* self = new( ELeave ) CSmfRsaKeyParameters; + CleanupStack::PushL( self ); + self->ConstructL( aKeyName, startDate, endDate, aKeyData ); + CleanupStack::Pop( self ); + return self; + } + +CSmfRsaKeyParameters* CSmfRsaKeyParameters::NewL( const TDesC8& aData ) + { + CSmfRsaKeyParameters* self = new( ELeave ) CSmfRsaKeyParameters; + CleanupStack::PushL( self ); + self->ConstructL( aData ); + CleanupStack::Pop( self ); + return self; + } + +CSmfRsaKeyParameters::~CSmfRsaKeyParameters() + { + iKeyName.Close(); + iKeyData.Close(); + } + +void CSmfRsaKeyParameters::ExternalizeL( RWriteStream& aStream ) const + { + SmfUtils::ExternalizeDesL( iKeyName, aStream ); + SmfUtils::ExternalizeDesL( iKeyData, aStream ); + SmfUtils::ExternalizeInt64L( iStartDate.Int64(), aStream ); + SmfUtils::ExternalizeInt64L( iEndDate.Int64(), aStream ); + } + +const TDesC& CSmfRsaKeyParameters::KeyName() const + { + return iKeyName; + } + +const TDesC8& CSmfRsaKeyParameters::KeyData() const + { + return iKeyData; + } + +const TTime& CSmfRsaKeyParameters::StartDate() const + { + return iStartDate; + } + +const TTime& CSmfRsaKeyParameters::EndDate() const + { + return iEndDate; + } + +void CSmfRsaKeyParameters::ConstructL( + const TDesC& aKeyName, const TTime& startDate, + const TTime& endDate, const TDesC8& aKeyData ) + { + iKeyName.CreateL( aKeyName ); + iKeyData.CreateL( aKeyData ); + iStartDate = startDate; + iEndDate = endDate; + } + +void CSmfRsaKeyParameters::ConstructL( const TDesC8& aData ) + { + RDesReadStream stream( aData ); + CleanupClosePushL( stream ); + SmfUtils::InternalizeDesL( iKeyName, stream ); + SmfUtils::InternalizeDesL( iKeyData, stream ); + TInt64 startDate; + TInt64 endDate; + SmfUtils::InternalizeInt64L( startDate, stream ); + SmfUtils::InternalizeInt64L( endDate, stream ); + iStartDate = TTime( startDate ); + iEndDate = TTime( endDate ); + CleanupStack::PopAndDestroy( &stream ); + }