diff -r f5050f1da672 -r 04becd199f91 javaextensions/satsa/crypto/src/signatureimpljni.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaextensions/satsa/crypto/src/signatureimpljni.cpp Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,124 @@ +/* +* 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: JNI Layer corresponding to Signature.java + * +*/ + + +#include "com_nokia_mj_impl_security_SignatureImpl.h" + +#include "stssignature.h" +#include "stssignaturefactory.h" +#include "stsconstants.h" + +using namespace java::satsa; + + +// JNI function. +JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_security_SignatureImpl__1verify +(JNIEnv* aJni, jclass, jint aHandle, + jbyteArray aSignature) +{ + int retVal = 0; + STSSignature* signature = reinterpret_cast< STSSignature* >(aHandle); + + // Call Verify. + retVal = signature->Verify(aJni,aSignature); + + return retVal; +} + +// JNI function. +JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_security_SignatureImpl__1update +(JNIEnv* aJni, jclass, jint aHandle, jbyteArray aData, jint aOffset, + jint aLength) +{ + STSSignature* signature = reinterpret_cast< STSSignature* >(aHandle); + int err = 0; + + // Call Update + err = signature->Update(aJni,aData, aOffset,aLength); + + return err; +} + +// JNI function. +JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_security_SignatureImpl__1initVerify +(JNIEnv* aJni, jclass, jint aHandle, jstring aKeyAlgorithm, jstring aKeyFormat, + jbyteArray aKeyEncoded) +{ + STSSignature* signature = reinterpret_cast< STSSignature* >(aHandle); + int err = 0; + + // Call InitVerify + err = signature->InitVerify(aJni, + aKeyAlgorithm, + aKeyFormat, + aKeyEncoded); + + return err; +} + +// JNI function. +JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_security_SignatureImpl__1create +(JNIEnv* aJni, + jclass, + jstring aAlgorithm) +{ + + int handle = KSTSErrNoMemory; + int errCode = 0; + + STSSignature* aSignature = NULL; + + // Call CreateSignature. + aSignature = STSSignatureFactory::CreateSignature(aJni, aAlgorithm, &errCode); + + if (aSignature == NULL) + { + // CreateSignature returned error. + // Set error code to handle variable which is returned to Java + handle = errCode; + } + else + { + // signature created successfully, return handle to new signature object + handle = reinterpret_cast(aSignature); + } + + return handle; +} + +// JNI function dispose. +JNIEXPORT void +JNICALL Java_com_nokia_mj_impl_security_SignatureImpl__1dispose +(JNIEnv* /*aJni*/, + jclass, + jint aHandle) +{ + + //Get the signature object from aHandle + STSSignature* signature = reinterpret_cast< STSSignature* >(aHandle); + + if (signature != NULL) + { + // Cleanup the native handle. + delete signature; + signature = 0; + } + +}//end dispose + + +