--- /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 <e32base.h>
+
+_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
+
+