javacommons/security/javaunicertstoreplugin/src.s60/javacertstoreimpl.cpp
branchRCL_3
changeset 83 26b2b12093af
parent 71 d5e927d5853b
equal deleted inserted replaced
77:7cee158cb8cd 83:26b2b12093af
    18 #include <e32std.h>
    18 #include <e32std.h>
    19 #include <memory>
    19 #include <memory>
    20 
    20 
    21 #include <javausermessages.rsg>
    21 #include <javausermessages.rsg>
    22 
    22 
       
    23 #include <avkon.rsg>
       
    24 #include <AknGlobalConfirmationQuery.h>
    23 #include <stringresourcereader.h>
    25 #include <stringresourcereader.h>
    24 #include <StringLoader.h>
    26 #include <StringLoader.h>
    25 #include <data_caging_path_literals.hrh>
    27 #include <data_caging_path_literals.hrh>
    26 
    28 
    27 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
    29 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
    39 #include "javacertstoretoken.h"
    41 #include "javacertstoretoken.h"
    40 #include "javacommonutils.h"
    42 #include "javacommonutils.h"
    41 #include "s60commonutils.h"
    43 #include "s60commonutils.h"
    42 #include "securitycommsmessagedefs.h"
    44 #include "securitycommsmessagedefs.h"
    43 
    45 
    44 #ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
       
    45 #include "confirmquery.h"
       
    46 #else
       
    47 #include <avkon.rsg>
       
    48 #include <AknGlobalConfirmationQuery.h>
       
    49 #endif
       
    50 
    46 
    51 
    47 
    52 //_LIT(KMIDP2TrustRoot, "J2ME MIDP2 Trust Root");
    48 //_LIT(KMIDP2TrustRoot, "J2ME MIDP2 Trust Root");
    53 _LIT(KMIDP2TrustRoot, "Java Trust Root");
    49 _LIT(KMIDP2TrustRoot, "Java Trust Root");
    54 _LIT(KJavaUserMessagesResourceFileName, "javausermessages.rsc");
    50 _LIT(KJavaUserMessagesResourceFileName, "javausermessages.rsc");
    62 
    58 
    63 /**
    59 /**
    64  *
    60  *
    65  */
    61  */
    66 CJavaCertStoreImpl::CJavaCertStoreImpl(CJavaCertStoreToken& aToken)
    62 CJavaCertStoreImpl::CJavaCertStoreImpl(CJavaCertStoreToken& aToken)
    67         : CActive(EPriorityNormal),mToken(aToken),mClientStatus(NULL),mState(EInitial),mTempCertData(0)
    63         : CActive(EPriorityNormal),mToken(aToken),mClientStatus(NULL),mState(EInitial),mQuery(0),mTempCertData(0)
    68 {
    64 {
    69 #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
       
    70     mQuery.reset(0);
       
    71 #endif        
       
    72 }
    65 }
    73 
    66 
    74 /**
    67 /**
    75  *
    68  *
    76  */
    69  */
    80     if (IsActive())
    73     if (IsActive())
    81     {
    74     {
    82         Cancel();
    75         Cancel();
    83     }
    76     }
    84 
    77 
       
    78     mComms.unregisterListener(PLUGIN_ID_JAVA_CERT_STORE_ECOM_C,this);
    85     mComms.unregisterDefaultListener(this);
    79     mComms.unregisterDefaultListener(this);
    86     mComms.disconnect();
    80     mComms.disconnect();
    87     mCertsData.ResetAndDestroy();
    81     mCertsData.ResetAndDestroy();
    88     mUiThread.Close();
    82     mUiThread.Close();
    89 }
    83 }
   180         return;
   174         return;
   181 
   175 
   182     case EPreDeleting:
   176     case EPreDeleting:
   183         SendDeleteMsg(status);
   177         SendDeleteMsg(status);
   184         return;
   178         return;
   185 
   179         
   186     default:
   180     default:
   187         //Do nothing.
   181         //Do nothing.
   188         break;
   182         break;
   189     }
   183     }
   190 
   184 
   255     if (!certData->mCanDelete)
   249     if (!certData->mCanDelete)
   256     {
   250     {
   257         User::RequestComplete(pRequestStatus,KErrArgument);
   251         User::RequestComplete(pRequestStatus,KErrArgument);
   258         return;
   252         return;
   259     }
   253     }
   260 
   254     
   261     mState = EPreDeleting;
   255     mState = EPreDeleting;
   262     mTempCertData = certData;
   256     mTempCertData = certData;
   263     HandleDeleteDisableQuery(aStatus, false /* disableCertQuery */);
   257     HandleDeleteDisableQuery(aStatus, false /* disableCertQuery */);
   264 }
   258 }
   265 
   259 
   392     }
   386     }
   393 
   387 
   394     TBool validRequest = validateCertAttrFilter(aFilter);
   388     TBool validRequest = validateCertAttrFilter(aFilter);
   395     if (!validRequest)
   389     if (!validRequest)
   396     {
   390     {
   397         LOG(EJavaSecurity, EInfo, "No certificates matching the filter supplied");
   391         ELOG(EJavaSecurity,"No certificates matching the filter supplied");
   398         User::RequestComplete(pRequestStatus,KErrNone);
   392         User::RequestComplete(pRequestStatus,KErrNone);
   399         return;
   393         return;
   400     }
   394     }
   401 
   395 
   402     if (0 < mCertsData.Count())
   396     if (0 < mCertsData.Count())
   494     if (!flag)
   488     if (!flag)
   495     {
   489     {
   496         return;
   490         return;
   497     }
   491     }
   498 
   492 
   499     TInt err = KErrNone;
       
   500     if (!certData->mIsDisabled)
   493     if (!certData->mIsDisabled)
   501     {
   494     {
   502         err = aApplications.Append(KMidletInstallApplicabilityUid);
   495         aApplications.Append(KMidletInstallApplicabilityUid);
   503     }
   496     }
   504 
   497 
   505     User::RequestComplete(pRequestStatus, err);
   498     User::RequestComplete(pRequestStatus,KErrNone);
   506 }
   499 }
   507 
   500 
   508 /**
   501 /**
   509  *
   502  *
   510  */
   503  */
   841         errTxt.append(java::util::JavaCommonUtils::intToString(err));
   834         errTxt.append(java::util::JavaCommonUtils::intToString(err));
   842         ELOG1(EJavaSecurity, "ERROR!!! %s",errTxt.c_str());
   835         ELOG1(EJavaSecurity, "ERROR!!! %s",errTxt.c_str());
   843         User::RequestComplete(aRequestStatus,KErrCommsBreak);
   836         User::RequestComplete(aRequestStatus,KErrCommsBreak);
   844         return EFalse;
   837         return EFalse;
   845     }
   838     }
   846 
   839     
   847     return ETrue;
   840     return ETrue;
   848 }
   841 }
   849 
   842 
   850 /**
   843 /**
   851  *
   844  *
   882     {
   875     {
   883         mClientStatus = &aRequestStatus;
   876         mClientStatus = &aRequestStatus;
   884         SetActive();
   877         SetActive();
   885         return;
   878         return;
   886     }
   879     }
   887 #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
       
   888     delete mQuery.release();
   880     delete mQuery.release();
   889 #endif        
       
   890     mState = EInitial;
   881     mState = EInitial;
   891     TRequestStatus* pRequestStatus = &aRequestStatus;
   882     TRequestStatus* pRequestStatus = &aRequestStatus;
   892     User::RequestComplete(pRequestStatus,KErrCancel);
   883     User::RequestComplete(pRequestStatus,KErrCancel);
   893 }
   884 }
   894 
   885 
   901                                      KJavaUserMessagesResourceFileName);
   892                                      KJavaUserMessagesResourceFileName);
   902 
   893 
   903     std::auto_ptr<CStringResourceReader> reader(CStringResourceReader::NewL(resourceFileName));
   894     std::auto_ptr<CStringResourceReader> reader(CStringResourceReader::NewL(resourceFileName));
   904     std::auto_ptr<HBufC> queryPrompt(reader->ReadResourceString(resourceId).AllocL());
   895     std::auto_ptr<HBufC> queryPrompt(reader->ReadResourceString(resourceId).AllocL());
   905 
   896 
   906 #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
       
   907     mQuery.reset(CAknGlobalConfirmationQuery::NewL());
   897     mQuery.reset(CAknGlobalConfirmationQuery::NewL());
   908     mQuery->ShowConfirmationQueryL(iStatus,queryPrompt->Des(),R_AVKON_SOFTKEYS_OK_CANCEL);
   898     mQuery->ShowConfirmationQueryL(iStatus,queryPrompt->Des(),R_AVKON_SOFTKEYS_OK_CANCEL);
   909 #else
       
   910     int completeStatus = KErrCancel;
       
   911     ConfirmQuery* query = new ConfirmQuery();
       
   912     QString queryText = QString::fromStdWString(
       
   913             std::wstring((wchar_t*) queryPrompt->Ptr(), 
       
   914                     queryPrompt->Length())); 
       
   915     if (query->accept(queryText))
       
   916     {
       
   917         completeStatus = KErrNone;
       
   918     }
       
   919     delete query; query = NULL;
       
   920     TRequestStatus* status = &iStatus;
       
   921     User::RequestComplete(status, completeStatus);
       
   922 #endif
       
   923     
       
   924 }
   899 }
   925 
   900 
   926 /**
   901 /**
   927  *
   902  *
   928  */
   903  */
   929 void CJavaCertStoreImpl::SendDisableMsg(TInt aStatus)
   904 void CJavaCertStoreImpl::SendDisableMsg(TInt aStatus)
   930 {
   905 {
   931 
   906 
   932     mState = EInitial;
   907     mState = EInitial;
   933 #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
       
   934     delete mQuery.release();
   908     delete mQuery.release();
   935 #endif        
       
   936     mState = EInitial;
   909     mState = EInitial;
   937 #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
       
   938     if (EAknSoftkeyOk != aStatus)
   910     if (EAknSoftkeyOk != aStatus)
   939 #else
       
   940     if (KErrNone != aStatus)
       
   941 #endif        
       
   942     {
   911     {
   943         User::RequestComplete(mClientStatus,KErrCancel);
   912         User::RequestComplete(mClientStatus,KErrCancel);
   944         return;
   913         return;
   945     }
   914     }
   946     HandleSendingEnableDisableMsg(mClientStatus,EPreDisabling,*mTempCertData);
   915     HandleSendingEnableDisableMsg(mClientStatus,EPreDisabling,*mTempCertData);
   951  */
   920  */
   952 void CJavaCertStoreImpl::SendDeleteMsg(TInt aStatus)
   921 void CJavaCertStoreImpl::SendDeleteMsg(TInt aStatus)
   953 {
   922 {
   954 
   923 
   955     mState = EInitial;
   924     mState = EInitial;
   956 #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
       
   957     delete mQuery.release();
   925     delete mQuery.release();
   958 #endif        
       
   959     mState = EInitial;
   926     mState = EInitial;
   960 #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
       
   961     if (EAknSoftkeyOk != aStatus)
   927     if (EAknSoftkeyOk != aStatus)
   962 #else
       
   963     if (KErrNone != aStatus)
       
   964 #endif        
       
   965     {
   928     {
   966         User::RequestComplete(mClientStatus,KErrCancel);
   929         User::RequestComplete(mClientStatus,KErrCancel);
   967         return;
   930         return;
   968     }
   931     }
   969     HandleSendingDeleteMsg(mClientStatus,*mTempCertData);
   932     HandleSendingDeleteMsg(mClientStatus,*mTempCertData);
  1007     {
   970     {
  1008         //SendDeleteCommsMsg() operation calls RequestComplete()
   971         //SendDeleteCommsMsg() operation calls RequestComplete()
  1009         //operation in the error situation.
   972         //operation in the error situation.
  1010         return;
   973         return;
  1011     }
   974     }
  1012     aCertDataObj.mDeleted = ETrue;
   975     aCertDataObj.mDeleted = ETrue;    
  1013 
   976 
  1014     User::RequestComplete(aRequestStatus,KErrNone);
   977     User::RequestComplete(aRequestStatus,KErrNone);
  1015 }
   978 }
  1016 
   979 
  1017 /////////////////////////////////////////////////////////////////////////////////
   980 /////////////////////////////////////////////////////////////////////////////////