wim/inc/WimClsv.h
changeset 0 164170e6151a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wim/inc/WimClsv.h	Tue Jan 26 15:20:08 2010 +0200
@@ -0,0 +1,209 @@
+/*
+* Copyright (c) 2002 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:  General definitions used in message passing between
+*                client and server
+*
+*/
+
+
+#ifndef __WIMCLSV_H__
+#define __WIMCLSV_H__
+
+//  INCLUDES
+#include <e32base.h>
+#include <securitydefs.h>
+#include "WimOpcode.h" 
+#include "WimConsts.h"
+#include "WimDefs.h"
+#include <secdlg.h>
+
+
+//  CONSTANTS
+_LIT( KWIMServerName, "WIMIServer" );
+
+// Number allocation for our certificates. Includes only WTLS CA
+// certificates.
+const TUid KUidWTLSTrustedCerts = {0x1000AA53}; 
+
+// Number allocation for our certificates. Includes only X509 client
+// certificates.
+const TUid KUidWTLSUserCerts = {0x1000AB5B}; 
+
+// A version must be specifyed when creating a session with the server
+const TUint KWIMServMajorVersionNumber = 1;
+const TUint KWIMServMinorVersionNumber = 0;
+const TUint KWIMServBuildVersionNumber = 1;
+
+// needed for creating server thread.
+const TUint KWIMDefaultHeapSize = 0x100000;
+
+// Maximum count of applications trusting to certificate
+const TInt KMaxApplicationCount = 50;
+
+// Mask for PIN status. Keeping MSBs and masking off LSBs.
+const TUint8 KPINStatusMask = 0xF0;
+const TUint8 KWimAuthObjectBlocked= 0x08;
+
+// Typedefs for the references to wim, pin and certificate 
+typedef TUint32                 TWimAddress;
+typedef TWimAddress*            TWimAddressList;
+typedef TWimAddress             TPinAddress; 
+typedef TWimAddress*            TPinAddressList;
+typedef TUint32                 TCertificateAddress;
+typedef TCertificateAddress*    TCertificateAddressList;
+
+// Server panic reasons
+enum TWimServerPanic
+    {
+    EWimMainSchedulerError,
+    EWimSvrCreateServer,
+    EWimCreateTrapCleanup,
+    EWimSubSessionRefCountInvalid,
+    EWimThreadOpenError,
+    EWimIncorrectPolicy
+    };
+
+// PIN status
+typedef TUint8 TWimPinStatus;
+
+//PIN Type
+enum TWimPin
+    {
+    EWimPinG,
+    EWimPinNR
+    };
+
+// WIM information structure
+struct TWimSecModuleStruct
+    {
+    TBuf<KLabelLen>        iLabel;
+    TBuf<KManufacturerLen> iManufacturer;
+    TBuf<KSerialNumberLen> iSerialNumber;
+    TUint8                 iVersion;
+    TUint8                 iReader;   
+    TPinAddress            iRefPinG;
+    };
+
+// PIN information structure
+struct TWimPinStruct 
+    {
+    TWimPin         iPinType;
+    TBuf<KLabelLen> iLabel;
+    TWimPinStatus   iStatus;
+    TUint8          iPinNumber;
+    };
+
+// Certificate info structure
+struct TWimCertAddParameters
+    {
+    TBuf8<KLabelLen> iLabel;
+    TBuf8<KKeyIdLen> iKeyId;
+    TBuf8<KCertHash> iCaId;
+    TWimCertType     iUsage;
+    TWimCertFormat   iFormat;
+    };
+
+// Certificate details
+struct TWimCertDetails
+    {
+    TPtr8* iCert; //The whole cert
+    };
+
+// Address of a certificate to be removed
+struct TWimCertRemoveAddr
+    {
+    TCertificateAddress iCertAddr;
+    TWimCertLocation    iLocation;
+    };
+
+// Certificate information structure
+struct TWimCertInfo
+    {
+    TBuf8<KLabelLen>   iLabel;
+    TBuf8<KKeyIdLen>   iKeyId;
+    TBuf8<KCertHash>   iCAId;
+    TBuf8<KIssuerHash> iIssuerHash;
+    TUint8             iCDFRefs;
+    TUint              iUsage;
+    TUint              iType;
+    TUint              iCertlen; 
+    TUint              iModifiable;
+    TUint              iTrustedUsageLength;
+    };
+
+// Certificate extra information structure
+struct TCertExtrasInfo
+    {
+    TPtr*  iTrustedUsage;
+    TUint8 iCDFRefs;
+    };
+
+// Key info struct
+struct TKeyInfo
+    {
+    TUint8           iKeyNumber;
+    TUint8           iType; //1 = rsa, 2 = ECC
+    TUint16          iUsage;
+    TBuf8<KLabelLen> iLabel;
+    TBuf8<KKeyIdLen> iKeyId;
+    TUint16          iLength;
+    TUint8           iPinNumber;
+    };
+
+// Digital signature struct
+struct TKeySignParameters
+    {
+    TPtr8*           iSigningData;
+    TBuf8<KKeyIdLen> iKeyId;
+    TPtr8*           iSignature;
+    };
+
+//Public key exportion struct
+struct TExportPublicKey
+    {
+    TPtr8*           iPublicKey;
+    TBuf8<KKeyIdLen> iKeyId;
+    };
+
+// struct for PIN state request
+struct TPINStateRequest
+    {
+    TBool iEnable;
+    TBool iRetry;
+    };
+
+struct TOmaProv
+    {
+    TInt   iSize;
+    TInt   iOmaType;
+    TPtr8* iOmaData;
+    };
+    
+struct TJavaProv
+    {
+    TBuf8<8>* iPath;
+    TInt   iSize;
+    TPtr8* iJavaData;	
+    };    
+
+struct TTrustSettings
+    {
+    TBool    iTrusted;
+    TInt32   iUids[KMaxApplicationCount];
+    TInt     iApplicationCount;
+    };
+
+#endif      // __WIMCLSV_H__
+
+// End of File