javaextensions/satsa/pki/src.s60/cstssignatureservice.cpp
branchRCL_3
changeset 83 26b2b12093af
parent 60 6c158198356e
--- a/javaextensions/satsa/pki/src.s60/cstssignatureservice.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/satsa/pki/src.s60/cstssignatureservice.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -15,6 +15,8 @@
  *
 */
 
+
+// INCLUDE FILES
 #include "cstssignatureservice.h"
 #include "tstsdistinguishednameconverter.h"
 #include "secdlg.h"
@@ -30,11 +32,7 @@
 #include <CCMSSignerInfo.h>
 #include <CCMSEncapsulatedContentInfo.h>
 #include <CCMSSignedData.h>
-
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
 #include <PKIDlg.h>
-#endif
-
 #include "cstsseprompt.h"
 
 #include <hash.h>
@@ -44,7 +42,7 @@
 #include "logger.h"
 #include "jstringutils.h"
 
-
+// CONSTANTS
 const TInt KDefaultGranularity = 1;
 
 const TInt KOptionIncludeContent = 1;
@@ -82,12 +80,10 @@
     {
         iDialog->Release(); // Release deletes the object
     }
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS	
     if (iPKIDialog)
     {
         iPKIDialog->Release();
     }
-#endif	
     iCertificateArray.Close();
     iCertInfos.Close();
     delete iFilter;
@@ -130,12 +126,14 @@
         TInt aOptions, const CDesCArray& aCaNames,
         const TDesC& asecurityElementPrompt, TBool aShowData)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::AuthenticateL");
     if (iState != EReady)
     {
         ELOG(ESATSA, "CSTSSignatureService::AuthenticateL: Not Ready");
         User::Leave(KErrNotReady);
     }
 
+    LOG(ESATSA, EInfo, "CSTSSignatureService::AuthenticateL:After convertions");
     // First we need to convert the data to unicode, if we have to display it
     HBufC* textToDisplay = NULL;
     if (aShowData)
@@ -157,9 +155,14 @@
     iOptions = aOptions;
 
     iShowNotes = EFalse;
+
+    LOG(ESATSA, EInfo, "CSTSSignatureService::AuthenticateL:Going to call CreateSignatureL");
     // get handles to applicable certificates
     HBufC8* retVal = CreateSignatureL(aCaNames, EX509UsageDigitalSignature,
                                       asecurityElementPrompt);
+    LOG(ESATSA, EInfo, "CSTSSignatureService::AuthenticateL:After call to CreateSignatureL");
+
+    LOG(ESATSA, EInfo, "-- CSTSSignatureService::AuthenticateL");
     return retVal;
 }
 
@@ -168,6 +171,7 @@
         jint aOptions, jobjectArray aCaNames, jstring aSecurityElementPrompt,
         jboolean aShowData, HBufC8** aRetVal)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::StaticAuthenticateL");
     const TInt byteArrayLength = aJniEnv->GetArrayLength(
                                      aByteArrayToAuthenticate);
     jbyte* bytesToAuthenticate = aJniEnv->GetByteArrayElements(
@@ -185,15 +189,20 @@
     CDesCArrayFlat* nativeCaNames = STSCreateNativeStringArrayL(aJniEnv,
                                     aCaNames);
 
+    LOG(ESATSA, EInfo,  "CSTSSignatureService::StaticAuthenticateL: prepare se prompt");
     const JStringUtils securityElementPrompt(*aJniEnv, aSecurityElementPrompt);
 
+    LOG(ESATSA, EInfo,  "CSTSSignatureService::StaticAuthenticateL: start convertions to TInt");
     TBool ShowData = static_cast<TBool>(aShowData);
     const TDesC* sec = static_cast<const TDesC*>(&securityElementPrompt);
 
+    LOG(ESATSA, EInfo, "CSTSSignatureService::StaticAuthenticateL: After convertions,going to call CallMethodL");
     TRAPD(err, CallMethodL(*aRetVal, service,
                            &CSTSSignatureService::AuthenticateL, desToAuthenticate, aOptions,
                            *nativeCaNames, *sec, ShowData, service));
 
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::StaticAuthenticateL:After CallmethodL");
+    LOG(ESATSA, EInfo, "-- return CSTSSignatureService::StaticAuthenticateL");
     return err;
 
 }
@@ -207,12 +216,15 @@
 HBufC8* CSTSSignatureService::SignL(const TDesC8& aBytesToSign, TInt aOptions,
                                     const CDesCArray& aCaNames, const TDesC& aSecurityElementPrompt)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::SignL");
     if (iState != EReady)
     {
         ELOG(ESATSA, "CSTSSignatureService::SignL: Not Ready");
         User::Leave(KErrNotReady);
     }
 
+    LOG(ESATSA, EInfo, "CSTSSignatureService::SignL: start convertions!");
+    LOG(ESATSA, EInfo, "CSTSSignatureService::SignL: After convertions");
     // convert text from UTF8
     HBufC* textToDisplay = ConvertUTF8ToUnicodeL(aBytesToSign);
     delete iTextToDisplay;
@@ -226,10 +238,12 @@
 
     iShowNotes = ETrue;
 
+    LOG(ESATSA, EInfo, "CSTSSignatureService::SignL: Before call to CreateSignatureL");
     // get handles to applicable certificates
     HBufC8* retVal = CreateSignatureL(aCaNames, EX509UsageNonRepudiation,
                                       aSecurityElementPrompt);
 
+    LOG(ESATSA, EInfo, "-- return CSTSSignatureService::SignL");
     return retVal;
 }
 
@@ -242,12 +256,13 @@
                                        CSTSSignatureService* service, jbyteArray aBytesToSign, jint aOptions,
                                        jobjectArray aCaNames, jstring aSecurityElementPrompt, HBufC8** aRetVal)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::StaticSignL");
     const TInt byteArrayLength = aJniEnv->GetArrayLength(aBytesToSign);
     jbyte* bytesToSign = aJniEnv->GetByteArrayElements(aBytesToSign, NULL);
 
     if (!bytesToSign)
     {
-        ELOG(ESATSA, "CSTSSignatureService::StaticSignL: No memory");
+        LOG(ESATSA, EInfo, "CSTSSignatureService::StaticSignL: No memory");
         return NULL;
     }
 
@@ -258,12 +273,15 @@
 
     const JStringUtils securityElementPrompt(*aJniEnv, aSecurityElementPrompt);
 
-    
+    LOG(ESATSA, EInfo, "CSTSSignatureService::StaticSignL: Start convertions");
+    LOG(ESATSA, EInfo, "CSTSSignatureService::StaticSignL: Before callmethodl");
+
     const TDesC* sec = static_cast<const TDesC*>(&securityElementPrompt);
 
     TRAPD(err, CallMethodL(*aRetVal, service, &CSTSSignatureService::SignL,
                            desToSign, aOptions, *nativeCaNames, *sec, service));
 
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::StaticSignL");
     return err;
 }
 
@@ -274,25 +292,28 @@
 //
 void CSTSSignatureService::RunL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::RunL");
     if (iStatus == KErrCancel)
     {
+        LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: KErrCancel");
         if (iShowNotes)
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: ShowNote");
             iState = EFinalNote;
             iStatus = KErrNone;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS			
             iPKIDialog->Note(MPKIDialog::ESigningCancelled, iStatus);
-#endif			
             SetActive();
-         }
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: Done ShowNote");
+        }
         else
         {
-             Complete(KErrNone);
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: Complete");
+            Complete(KErrNone);
         }
     }
     else if (iStatus != KErrNone)
     {
-        ELOG(ESATSA, "CSTSSignatureService::RunL: Error occured");
+        LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: Error occured");
         // Error has occured; inform java
         Complete(iStatus.Int());
     }
@@ -302,23 +323,29 @@
         {
         case EInitialising:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EInitialising");
             iState = EKeyStoreInit;
             iKeyStore->Initialize(iStatus);
             SetActive();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EInitialising");
             break;
         }
         case EKeyStoreInit:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EKeyStoreInit");
             Complete(KErrNone);
             break;
         }
         case EListing:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EListing");
             HandlesFromCertInfosL();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EListing");
             break;
         }
         case EDialog:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EDialog");
             iState = EGetCert;
             if (iCertificate)
             {
@@ -333,10 +360,12 @@
 
             iCertStore->GetCert(iCertificate, iCertificateHandle, iStatus);
             SetActive();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EDialog");
             break;
         }
         case EGetCert:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EGetCert");
             if (iX509Certificate)
             {
                 delete iX509Certificate;
@@ -345,35 +374,44 @@
             iState = ERetrieveCert;
             iCertStore->Retrieve(*iCertificate, iX509Certificate, iStatus);
             SetActive();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EGetCert");
             break;
         }
         case ERetrieveCert:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case ERetrieveCert");
             FindKeyL();
             break;
         }
         case EFindKey:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EFindKey");
             OpenSignerL();
             break;
         }
         case EOpenSigner:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EOpenSigner");
             SignL();
             break;
         }
         case ESign:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case ESign");
             CreateSignedDataL();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case ESign");
             break;
         }
         case EFinalNote:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EFinalNote");
             Complete(KErrNone);
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EFinalNote");
             break;
         }
         default:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case default");
             Complete(KErrGeneral);
         }
         }
@@ -387,6 +425,7 @@
 //
 TInt CSTSSignatureService::RunError(TInt aError)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::RunError");
     Complete(aError);
     return KErrNone;
 }
@@ -485,9 +524,8 @@
 {
     User::LeaveIfError(iFileServer.Connect());
     iDialog = SecurityDialogFactory::CreateL();
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS	
     iPKIDialog = PKIDialogFactory::CreateNoteL();
-#endif
+
     iFilter = CCertAttributeFilter::NewL();
 
     iWait = new(ELeave) CActiveSchedulerWait;
@@ -504,6 +542,7 @@
 //
 void CSTSSignatureService::Complete(TInt aError)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::Complete");
     if (KErrNone == aError)
     {
         iState = EReady;
@@ -514,7 +553,7 @@
         iError = aError;
     }
     iWait->AsyncStop();
-    
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::Complete");
 }
 
 // -----------------------------------------------------------------------------
@@ -524,14 +563,17 @@
 //
 void CSTSSignatureService::WaitForCompletionL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::WaitForCompletionL");
     SetActive();
     iWait->Start();
     if (iState != EReady)
     {
         // we need to be ready for the next request
         iState = EReady;
+
         User::Leave(iError);
     }
+    LOG(ESATSA, EInfo, "- ret CSTSSignatureService::WaitForCompletionL");
 }
 
 // -----------------------------------------------------------------------------
@@ -542,6 +584,7 @@
 HBufC8* CSTSSignatureService::CreateSignatureL(const CDesCArray& aCaNames,
         const TKeyUsageX509 aUsage, const TDesC& aSecurityElementPrompt)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::CreateSignatureL");
     HBufC* sePrompt = NULL;
     if (aSecurityElementPrompt != KNullDesC())
     {
@@ -549,10 +592,14 @@
     }
     delete iSecurityElementPrompt;
     iSecurityElementPrompt = sePrompt;
+    LOG(ESATSA, EInfo, "CSTSSignatureService::CreateSignatureL: call findcertificates");
     FindCertificatesL(aCaNames, aUsage);
+    LOG(ESATSA, EInfo, "CSTSSignatureService::CreateSignatureL: After call to findcertificates");
     WaitForCompletionL();
+    LOG(ESATSA, EInfo, "CSTSSignatureService::CreateSignatureL: call WaitForCompletion");
     HBufC8* retVal = iSignature;
     iSignature = NULL;
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::CreateSignatureL");
     return retVal;
 }
 // -----------------------------------------------------------------------------
@@ -564,6 +611,7 @@
         const TKeyUsageX509 aUsage)
 {
 
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::FindCertificatesL");
     iFilter->SetKeyUsage(aUsage);
     iFilter->SetOwnerType(EUserCertificate);
     iFilter->SetFormat(EX509Certificate);
@@ -606,7 +654,7 @@
         iState = EListing;
         iCertStore->List(iCertInfos, *iFilter, iDERNames, iStatus);
     }
-    
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::FindCertificatesL");
 }
 
 // -----------------------------------------------------------------------------
@@ -616,6 +664,7 @@
 //
 void CSTSSignatureService::HandlesFromCertInfosL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::HandlesFromCertInfosL");
     TInt certificateCount = iCertInfos.Count();
     if (certificateCount == 0)
     {
@@ -626,6 +675,7 @@
     iCertificateArray.Reset();
     for (TInt i = 0; i < certificateCount; i++)
     {
+        LOG(ESATSA, EInfo, "+ CSTSSignatureService::HandlesFromCertInfosL: No Certificates");
         User::LeaveIfError(iCertificateArray.Append(iCertInfos[i]->Handle()));
     }
 
@@ -634,18 +684,18 @@
     {
     case EAuthWithoutText:
     {
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS        
+        LOG(ESATSA, EInfo, "CSTSSignatureService::HandlesFromCertInfosL: case EAuthWithoutText");
         iPKIDialog->UserAuthentication(iCertificateArray, iCertificateHandle,
                                        iStatus);
-#endif 
+        LOG(ESATSA, EInfo, "CSTSSignatureService::HandlesFromCertInfosL: over case EAuthWithoutText");
         break;
     }
     case EAuthWithText:
     {
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
+        LOG(ESATSA, EInfo, "CSTSSignatureService::HandlesFromCertInfosL: case EAuthWithText");
         iPKIDialog->UserAuthenticationText(*iTextToDisplay, iCertificateArray,
                                            iCertificateHandle, iStatus);
-#endif
+        LOG(ESATSA, EInfo, "CSTSSignatureService::HandlesFromCertInfosL: over case EAuthWithText");
         break;
     }
     case ESignWithText:
@@ -671,6 +721,7 @@
 //
 void CSTSSignatureService::FindKeyL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::FindKeyL");
     iKeyFilter.iKeyAlgorithm = CKeyInfoBase::EInvalidAlgorithm;
     iKeyFilter.iKeyId = iCertificate->SubjectKeyId();
 
@@ -689,6 +740,7 @@
 //
 void CSTSSignatureService::OpenSignerL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::OpenSignerL");
     // if key is not found, display security element prompt and search again
     if (iKeys.Count() == 0)
     {
@@ -751,6 +803,8 @@
 //
 void CSTSSignatureService::SignL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::SignL");
+
     // first we create a digest of the message
 
     CSHA1* sha = CSHA1::NewL();
@@ -838,6 +892,7 @@
 //
 void CSTSSignatureService::CreateSignedDataL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::CreateSignedDataL");
     CCTKeyInfo* keyInfo = iKeys[0];
 
     HBufC8* signature = NULL;
@@ -932,16 +987,14 @@
     if (iShowNotes)
     {
         iState = EFinalNote;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS		
         iPKIDialog->Note(MPKIDialog::ESignatureDone, iStatus);
-#endif		
         SetActive();
     }
     else
     {
         Complete(KErrNone);
     }
-
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::CreateSignedDataL");
 }
 
 // -----------------------------------------------------------------------------