wim/WimServer/inc/WimCertHandler.h
branchRCL_3
changeset 5 3b17fc5c9564
parent 0 164170e6151a
equal deleted inserted replaced
1:d5423fbb4f29 5:3b17fc5c9564
     1 /*
     1 /*
     2 * Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
     2 * Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    29 
    29 
    30 // CLASS DECLARATION
    30 // CLASS DECLARATION
    31 
    31 
    32 /**
    32 /**
    33 *  Class for handling certificates in WIM card
    33 *  Class for handling certificates in WIM card
    34 *  
    34 *
    35 *  @since Series60 2.1
    35 *  @since Series60 2.1
    36 */
    36 */
    37 class CWimCertHandler : public CBase
    37 class CWimCertHandler : public CBase
    38     {
    38     {
    39     public:  // Constructors and destructor
    39     public:  // Constructors and destructor
    40         
    40 
    41         /**
    41         /**
    42         * Two-phased constructor.
    42         * Two-phased constructor.
    43         */
    43         */
    44         static CWimCertHandler* NewL();
    44         static CWimCertHandler* NewL();
    45         
    45 
    46         /**
    46         /**
    47         * Destructor.
    47         * Destructor.
    48         */
    48         */
    49         virtual ~CWimCertHandler();
    49         virtual ~CWimCertHandler();
    50 
    50 
    51     public: // New functions
    51     public: // New functions
    52         
    52 
    53         /**
    53         /**
    54         * Fetches certificates from WIM card.
    54         * Fetches certificates from WIM card.
    55         * @param aMessage Encapsulates a client request.
    55         * @param aMessage Encapsulates a client request.
    56         * @param aWimMgmt Pointer to WIM reference management class.
    56         * @param aWimMgmt Pointer to WIM reference management class.
    57         */
    57         */
    58         void GetCertificatesFromWimL( const RMessage2& aMessage, 
    58         void GetCertificatesFromWimL( const RMessage2& aMessage,
    59                                       CWimMemMgmt* aWimMgmt );
    59                                       CWimMemMgmt* aWimMgmt );
    60         
    60 
    61         /**
    61         /**
    62         * Fetches certificate extra information from WIM card.
    62         * Fetches certificate extra information from WIM card.
    63         * Extra information includes trusted usage and CDF referense
    63         * Extra information includes trusted usage and CDF referense
    64         * information.
    64         * information.
    65         * @param aMessage Encapsulates a client request.
    65         * @param aMessage Encapsulates a client request.
    66         * @param aWimMgmt Pointer to WIM reference management class.
    66         * @param aWimMgmt Pointer to WIM reference management class.
    67         */
    67         */
    68         void GetExtrasFromWimL( const RMessage2& aMessage, 
    68         void GetExtrasFromWimL( const RMessage2& aMessage,
    69                                 CWimMemMgmt* aWimMgmt );
    69                                 CWimMemMgmt* aWimMgmt );
    70         
    70 
    71         /**
    71         /**
    72         * Fetches count of certicates in certain WIM card.
    72         * Fetches count of certicates in certain WIM card.
    73         * @param aMessage Encapsulates a client request.
    73         * @param aMessage Encapsulates a client request.
    74         * @param aWimMgmt Pointer to WIM reference management class.
    74         * @param aWimMgmt Pointer to WIM reference management class.
    75         */
    75         */
    76         void GetCerticateCountL( const RMessage2& aMessage, 
    76         void GetCerticateCountL( const RMessage2& aMessage,
    77                                  CWimMemMgmt* aWimMgmt ) const;
    77                                  CWimMemMgmt* aWimMgmt ) const;
    78 
    78 
    79 
    79 
    80         /**
    80         /**
    81         * Stores certificate to the WIM card.
    81         * Stores certificate to the WIM card.
    82         * @since Series60 2.6
    82         * @since Series60 2.6
    83         * @param aRequest Enumerator used in message 
    83         * @param aRequest Enumerator used in message
    84                           passing between client and server.   
    84                           passing between client and server.
    85         * @param aMessage Encapsulates a client request.
    85         * @param aMessage Encapsulates a client request.
    86         */
    86         */
    87         void StoreCertificateL( TWimServRqst aRequest,
    87         void StoreCertificateL( TWimServRqst aRequest,
    88                                 const RMessage2& aMessage ) const;
    88                                 const RMessage2& aMessage ) const;
    89 
    89 
    93         * @param aMessage Encapsulates a client request.
    93         * @param aMessage Encapsulates a client request.
    94         * @param aWimMgmt Pointer to WIM reference management class.
    94         * @param aWimMgmt Pointer to WIM reference management class.
    95         */
    95         */
    96         void RemoveCertificateL( const RMessage2& aMessage,
    96         void RemoveCertificateL( const RMessage2& aMessage,
    97                                  CWimMemMgmt* aWimMgmt ) const;
    97                                  CWimMemMgmt* aWimMgmt ) const;
    98         
    98 
    99         /**
    99         /**
   100         * Fetches certificate details.
   100         * Fetches certificate details.
   101         * @param aOpCode Enumerator used in message 
   101         * @param aOpCode Enumerator used in message
   102                           passing between client and server.   
   102                           passing between client and server.
   103         * @param aMessage Encapsulates a client request.
   103         * @param aMessage Encapsulates a client request.
   104         */
   104         */
   105         void GetCertificateDetailsL( TWimServRqst aOpCode,
   105         void GetCertificateDetailsL( TWimServRqst aOpCode,
   106                                       const RMessage2& aMessage ) ;
   106                                       const RMessage2& aMessage ) ;
   107 
   107 
   109         * Exports Public Key of certificate
   109         * Exports Public Key of certificate
   110         * @since Series60 2.6
   110         * @since Series60 2.6
   111         * @param aMessage Encapsulates a client request.
   111         * @param aMessage Encapsulates a client request.
   112         */
   112         */
   113         void ExportPublicKeyL( const RMessage2& aMessage ) const;
   113         void ExportPublicKeyL( const RMessage2& aMessage ) const;
   114         
   114 
   115         
   115 
   116         TBool SanityCheck( TUint32 aCertRef );
   116         TBool SanityCheck( TUint32 aCertRef );
   117         
   117 
   118         TBool CheckReadCapsForUsage( const RMessage2& aMsg,
   118         TBool CheckReadCapsForUsage( const RMessage2& aMsg,
   119                                        TUint8 aUsage );
   119                                        TUint8 aUsage );
   120         
   120 
   121         
   121 
   122         WIMI_STAT ResolveCertUsage( const RMessage2& aMsg,
   122         WIMI_STAT ResolveCertUsage( const RMessage2& aMsg,
   123                                                 TUint8& aUsage );
   123                                                 TUint8& aUsage );
   124 
   124 
   125         WIMI_STAT GetCertificateInfo( WIMI_Ref_pt aCertRef,
   125         WIMI_STAT GetCertificateInfo( WIMI_Ref_pt aCertRef,
   126                                                   TUint8& aUsage );
   126                                                   TUint8& aUsage );
   141         */
   141         */
   142         WIMI_STAT GetCertificateFromWimRefL( WIMI_Ref_t* aTmpWimRef,
   142         WIMI_STAT GetCertificateFromWimRefL( WIMI_Ref_t* aTmpWimRef,
   143                                              TInt8 aUsage,
   143                                              TInt8 aUsage,
   144                                              TUint8& aCertNum,
   144                                              TUint8& aCertNum,
   145                                              TUint32* aCertRefLst,
   145                                              TUint32* aCertRefLst,
   146                                              TWimCertInfo* aCertInfoLst,  
   146                                              TWimCertInfo* aCertInfoLst,
   147                                              const RMessage2& aMessage );
   147                                              const RMessage2& aMessage );
   148 
   148 
   149         /**
   149         /**
   150         * Copies certificate information to client's allocated memory area.
   150         * Copies certificate information to client's allocated memory area.
   151         * @param aCertInfo  Certificate information to be copied.
   151         * @param aCertInfo  Certificate information to be copied.
   152         * @param aCert      Certificate reference.
   152         * @param aCert      Certificate reference.
   153         * @param aMessage   Encapsulates a client request.
   153         * @param aMessage   Encapsulates a client request.
   154         * @return TInt      KErrNone or KErrArgument
   154         * @return TInt      KErrNone or KErrArgument
   155         */
   155         */
   156         TInt CopyCertificateInfo( TWimCertInfo& aCertInfo,
   156         TInt CopyCertificateInfo( TWimCertInfo& aCertInfo,
   157                                    WIMI_Ref_t* aCert,  
   157                                    WIMI_Ref_t* aCert,
   158                                    const RMessage2& aMessage );
   158                                    const RMessage2& aMessage );
   159 
   159 
   160         /**
   160         /**
   161         * Fetches certificate extra information from the WIM card.
   161         * Fetches certificate extra information from the WIM card.
   162         * @param aTmpWimRef Reference(id) of certain WIM card.
   162         * @param aTmpWimRef Reference(id) of certain WIM card.
   163         * @param aUsage     Certificate usage. Client/CA.
   163         * @param aUsage     Certificate usage. Client/CA.
   164         * @param aKeyHash   Certificate key hash.
   164         * @param aKeyHash   Certificate key hash.
   165         * @param aMessage   Encapsulates a client request.
   165         * @param aMessage   Encapsulates a client request.
   166         * @return Status returned by WIMI. See in WimClsv.h.
   166         * @return Status returned by WIMI. See in WimClsv.h.
   167         */
   167         */
   168         WIMI_STAT GetExtrasFromWimRefL( WIMI_Ref_t* aTmpWimRef,                                  
   168         WIMI_STAT GetExtrasFromWimRefL( WIMI_Ref_t* aTmpWimRef,
   169                                         TInt8 aUsage,
   169                                         TInt8 aUsage,
   170                                         TDesC8& aKeyHash,
   170                                         TDesC8& aKeyHash,
   171                                         const RMessage2& aMessage );
   171                                         const RMessage2& aMessage );
   172 
   172 
   173         /**
   173         /**
   185         * @param aRef       WIM card reference pointer.
   185         * @param aRef       WIM card reference pointer.
   186         * @param aCertCount Count of certificates in WIM card pointed by aRef
   186         * @param aCertCount Count of certificates in WIM card pointed by aRef
   187         * @param aUsage     Certificate usage.
   187         * @param aUsage     Certificate usage.
   188         * @return Status returned by WIMI. See in wimclsv.h.
   188         * @return Status returned by WIMI. See in wimclsv.h.
   189         */
   189         */
   190         WIMI_STAT GetCertificateCountByWIM( WIMI_Ref_t* aRef, 
   190         WIMI_STAT GetCertificateCountByWIM( WIMI_Ref_t* aRef,
   191                                             TUint8& aCertCount, 
   191                                             TUint8& aCertCount,
   192                                             TUint8 aUsage ) const;
   192                                             TUint8 aUsage ) const;
   193 
   193 
   194         /**
   194         /**
   195         * Parse Public Key from certificate.
   195         * Parse Public Key from certificate.
   196         * @since Series60 2.6
   196         * @since Series60 2.6
   200         */
   200         */
   201         void ParseCertPublicKeyL( const TDesC8& aCertData,
   201         void ParseCertPublicKeyL( const TDesC8& aCertData,
   202                                   TDes8& aPublicKey,
   202                                   TDes8& aPublicKey,
   203                                   const TUint8 aCertType ) const;
   203                                   const TUint8 aCertType ) const;
   204 
   204 
       
   205         /**
       
   206          * Returns WIM reference. Returns WIM ref cached in aWimMgmt, or
       
   207          * fetches new using WIMI_GetWIMRef() and caches it in aWimMgmt.
       
   208          * @since Serier60 5.2
       
   209          * @param aWimMgmt  WIM memory manager
       
   210          */
       
   211         WIMI_Ref_t* MainWimRef( CWimMemMgmt& aWimMgmt ) const;
   205 
   212 
   206     private:    // Data
   213     private:    // Data
   207         CWimUtilityFuncs* iWimUtilFuncs;
   214         CWimUtilityFuncs* iWimUtilFuncs;
   208         RArray<TUint32> iCertRefLst;
   215         RArray<TUint32> iCertRefLst;
   209     };
   216     };
   210 
   217 
   211 #endif      // CWIMCERTHANDLER_H
   218 #endif      // CWIMCERTHANDLER_H
   212     
   219 
   213 //End of File
   220 //End of File