--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/satsa/pki/src.s60/cmsmessagesignatureservice.cpp Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,144 @@
+/*
+* Copyright (c) 2008 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:
+ *
+*/
+
+
+// INCLUDE FILES
+#include <stdlib.h>
+#include <string.h>
+
+#include "javax_microedition_securityservice_CMSMessageSignatureService.h"
+#include "cstssignatureservice.h"
+#include "satsajnitools.h"
+#include "logger.h"
+#include "javajniutils.h"
+#include "jniarrayutils.h"
+#include "s60commonutils.h"
+
+
+
+JNIEXPORT jint JNICALL
+Java_javax_microedition_securityservice_CMSMessageSignatureService__1createSignatureService(
+ JNIEnv* /* aJniEnv */,
+ jobject /* aPeer */)
+{
+ LOG(ESATSA, EInfo, "+ Entering JNI function __1createSignatureService");
+ CSTSSignatureService* service = NULL;
+ TInt serviceHandle = KErrGeneral;
+ TRAPD(error, service = CSTSSignatureService::NewL());
+ if (service == NULL || KErrNone != error)
+ {
+ return error;
+ }
+ serviceHandle = reinterpret_cast<TInt>(service);
+ LOG(ESATSA, EInfo, "-- __1createSignatureService");
+ return serviceHandle;
+
+}
+
+JNIEXPORT jbyteArray
+JNICALL Java_javax_microedition_securityservice_CMSMessageSignatureService__1authenticate(
+ JNIEnv* aJniEnv,
+ jobject /* aPeer */,
+ jint aServiceHandle,
+ jbyteArray aByteArrayToAuthenticate, jint aOptions, jobjectArray aCaNames,
+ jstring aSecurityElementPrompt, jboolean aShowData, jintArray aError)
+{
+ LOG(ESATSA, EInfo, "+ Entering JNI function __1authenticate");
+ CSTSSignatureService* service =
+ reinterpret_cast<CSTSSignatureService *>(aServiceHandle);
+
+ HBufC8* retVal = NULL;
+ int ret=0;
+
+ TRAPD(err, ret = CSTSSignatureService::StaticAuthenticateL(aJniEnv,
+ service, aByteArrayToAuthenticate, aOptions, aCaNames,
+ aSecurityElementPrompt, aShowData, &retVal));
+ LOG(ESATSA, EInfo, "__1authenticate:After the call to StaticAuthenticateL");
+
+ STSSetJavaErrorCode(aJniEnv, aError, ret);
+ if ((ret != KErrNone) || (!retVal) || (KErrNone != err))
+ {
+ LOG(ESATSA, EInfo, "__1authenticate:Error !! ");
+ return NULL;
+ }
+
+ const TInt numElems = retVal->Length();
+ jbyteArray javaValue = aJniEnv->NewByteArray(numElems);
+
+ if (!javaValue)
+ {
+ LOG(ESATSA, EInfo, "__1authenticate:No Memory !! ");
+ STSSetJavaErrorCode(aJniEnv, aError, KErrNoMemory);
+ delete retVal;
+ }
+
+ if (numElems> 0)
+ {
+ LOG(ESATSA, EInfo, "__1authenticate:COpy to Java");
+ aJniEnv->SetByteArrayRegion(
+ javaValue, 0, numElems,
+ JAVA_PTR(retVal->Ptr()));
+ }
+
+ delete retVal;
+ LOG(ESATSA, EInfo, "-- __1authenticate");
+ return javaValue;
+}
+
+JNIEXPORT jbyteArray
+JNICALL Java_javax_microedition_securityservice_CMSMessageSignatureService__1sign(
+ JNIEnv* aJniEnv,
+ jobject /* aPeer */,
+ jint aServiceHandle,
+ jbyteArray aByteArrayToSign, jint aOptions, jobjectArray aCaNames,
+ jstring aSecurityElementPrompt, jintArray aError)
+{
+ LOG(ESATSA, EInfo, "+ Entering JNI function __1sign");
+
+ CSTSSignatureService* service =
+ reinterpret_cast<CSTSSignatureService *>(aServiceHandle);
+
+ HBufC8* retVal = NULL;
+ int ret=0;
+ TRAPD(err, ret = CSTSSignatureService::StaticSignL(aJniEnv, service, aByteArrayToSign, aOptions,
+ aCaNames, aSecurityElementPrompt, &retVal));
+ LOG(ESATSA, EInfo, "__1sign:After the call to StaticSignL");
+
+ STSSetJavaErrorCode(aJniEnv, aError, ret);
+ if ((KErrNone != ret) || (!retVal) || (KErrNone != err))
+ {
+ return NULL;
+ }
+ const TInt numElems = retVal->Length();
+ jbyteArray javaValue = aJniEnv->NewByteArray(numElems);
+
+ if (!javaValue)
+ {
+ STSSetJavaErrorCode(aJniEnv, aError, KErrNoMemory);
+ delete retVal;
+ }
+
+ if (numElems> 0)
+ {
+ aJniEnv->SetByteArrayRegion(
+ javaValue, 0, numElems,
+ JAVA_PTR(retVal->Ptr()));
+ }
+ delete retVal;
+ LOG(ESATSA, EInfo, "--returning __1sign");
+ return javaValue;
+}