diff -r 000000000000 -r 96612d01cf9f videofeeds/clientapi/inc/ciptvsecureprovisioningparameters.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videofeeds/clientapi/inc/ciptvsecureprovisioningparameters.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,168 @@ +/* +* Copyright (c) 2007-2008 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: Collects various parameters needed in secure provisioning service url.* +*/ + + + + + +#ifndef CIPTVSECUREPROVISIONINGPARAMETERS_H +#define CIPTVSECUREPROVISIONINGPARAMETERS_H + +// INCLUDES +#include +#include + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CRepository; +class C3DESEncryptor; +class C3DESDecryptor; + + +// CLASS DECLARATION + +/** + * Secure provisioning service url parameters getter. + * @lib IptvClientApi.dll + */ +class CIptvSecureProvisioningParameters : public CBase + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @return pointer to new CIptvSecureProvisioningParameters instance. + */ + static CIptvSecureProvisioningParameters* NewL(); + + /** + * Destructor. + */ + virtual ~CIptvSecureProvisioningParameters(); + + public: + /** + * CIptvService::ESecureProvisioningServer type service needs additional dynamic + * parameters after the address url (CIptvService::GetAddress()), this function + * generates the dynamic part. + * + * @return Pointer to dynamic part of the url, caller gets ownership of the pointer. + */ + HBufC* SecureProvisioningUrlParametersL(); + + private: + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * Gets device model (n80, n95,...). + * @param aModel Descriptor where model is written. + */ + void FetchProductModelL( TDes8& aModel ); + + /** + * Writes Home network id and home country code to cenrep. + */ + void FetchHomeNetworkInfoL(); + + /** + * Creates aFormattedMnc. + * + * @param aMcc Country code + * @param aUnformattedMnc Network id + * @param aFormattedMnc Formatted network code + */ + void FormatMncCodeL( + const RMobilePhone::TMobilePhoneNetworkCountryCode aMcc, + const RMobilePhone::TMobilePhoneNetworkIdentity aUnformattedMnc, + RMobilePhone::TMobilePhoneNetworkIdentity& aFormattedMnc ); + + /** + * Returns home country code. + */ + const RMobilePhone::TMobilePhoneNetworkCountryCode HomeMccL(); + + /** + * Returns home network id. + */ + const RMobilePhone::TMobilePhoneNetworkIdentity HomeMncL(); + + /** + * Sets home country code to central repository. + * @param aMcc home country code. + */ + void SetHomeMccL( const RMobilePhone::TMobilePhoneNetworkCountryCode aMcc ); + + /** + * Sets home network id to central repository. + * @param aMnc home network ID. + */ + void SetHomeMncL( const RMobilePhone::TMobilePhoneNetworkIdentity aMnc ); + + /** + * Gets key info from cenrep. + * @param aKeyInfo Descriptor where key info is written. + */ + void GetKeyInfoL( TDes8& aKeyInfo ); + + /** + * Creates nonce and saves it to central repository. + * @param aTimeOut not used. + * @param aNonce new nonce is written here. + */ + void CreateNewNonceL( const TUint /*aTimeOut*/, TDes8& aNonce ); + + /** + * Returns random charachter. + * @param aSeed a number which is used to initialize random generator. + */ + TUint RandomCharacter( TInt64& aSeed ); + + private: + + /** + * Pointer to repository, used for storing dynamic url parameter fields. + * Own. + */ + CRepository* iRepository; + +#ifndef __WINS__ // encryptor is not used in emulator + + /** + * Used for encrypting nounce to central repository. + * Own. + */ + C3DESEncryptor* iEncryptor; +#endif + + RTelServer iServer; + RMobilePhone iPhone; + + }; + +#endif // CIPTVSECUREPROVISIONINGPARAMETERS_H + +// End of File