diff -r 000000000000 -r 164170e6151a gba/inc/gbauicc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gba/inc/gbauicc.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,113 @@ +/* +* Copyright (c) 2007 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: Functionality for accessing uicc +* +*/ + + +#ifndef _GBAUICC_H_ +#define _GBAUICC_H_ + +#include + +_LIT8(KAKAV1, "USIM"); +_LIT8(KSIMV1, "SIM"); +_LIT8(KISIMV1, "ISIM"); +_LIT8(KUICC_DEFAULT, ""); + +#define GBAUICC_INTERFACE 0x2000F86B + +const TUid KGBAUICCInterfaceUID = { GBAUICC_INTERFACE }; + +/** +* An abstract interface for accessing applications on UICC. Use this interface to query identity and authentication parameters from UICC. +*/ +class MUICCInterface + { + public: + + /** + * Fetches identity stored on the UICC + * param stores + * exception if UICC is not accessible call will leave + * result is returned 3GPP TS 23.003: "3rd Generation Partnership Project; Technical Specification Group Core Network; Numbering, addressing and identification". + */ + virtual void QueryIdentityL(TDes8& aIdentity) = 0; + + /** + * Fetches Home network domain name + * exception if UICC is not accessible call will leave + * result is returned + * see 3GPP TS 23.003: "3rd Generation Partnership Project; Technical Specification Group Core Network; Numbering, addressing and identification". + */ + virtual void QueryHomeNetworkDnL(TDes8& aHNDN) = 0; + + /** + * Queries authentication vector from UICC application + * param challenge in + * param calculated response + * return true on success false on failure + * exception if UICC is not accessible call will leave + */ + virtual TBool QueryAuthenticationL(const TDesC8& aNonce, TDes8& aResponse, TDes8& aResync ) = 0; + + /** + * Fetches key material from UICC + * param resulting key material + */ + virtual void QueryKeyMaterialL ( const TDesC8& aKeyMaterial, + const TDesC8& aRand, + const TDesC8& aIMPI, + const TDesC8& aUTF8_NAF_ID, + TDes8& aDerivedKey ) = 0; + + /** + * Fetches the master keys in what ever format they exist + */ + virtual TBool QueryKs(TDes8& aKS) =0; + + + /** + * Check if the 2G interface + * Return ETrue when only 2G interface available + */ + virtual TBool InterfaceIs2G() = 0; + + + /** + * The API used to update B-TID and key lifetime + */ + virtual TInt UpdateGBADataL( const TDesC8& aBTID, const TDesC8& aLifetime ) = 0; + + /** + * API to get the GBA_U availability + * Set aGBAAvail to ETrue if smart card is GBA_U card + */ + virtual void QueryGBAUAvailabilityL( TBool& aGBAAvail ) = 0; + + /** + * delete the objects + */ + virtual void Release() = 0; + + /* + * Notify the smart card is changed + */ + virtual void NotifyCardChangeL() = 0; + }; + +#endif // _GBAUICC_H_ +//EOF + +