aboutsummaryrefslogtreecommitdiff
path: root/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.cpp
diff options
context:
space:
mode:
authorpedroGitt <pedro.contreiras@amdocs.com>2016-10-14 15:27:20 +0200
committerpedroGitt <pedro.contreiras@amdocs.com>2016-10-14 15:27:20 +0200
commit102809955026d92a3f5cf29e05998d91a992de9c (patch)
treeca8dae7dada59e283d0ccc85f2b299b49d53f4a3 /java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.cpp
parent57ec6fff885e25b32e749d3e63788ff010b1fdfd (diff)
- Add inbound and outbound group sessions
- Modify constructors for inbound and outbound group sessions - Add new Ecxception class
Diffstat (limited to 'java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.cpp')
-rw-r--r--java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.cpp44
1 files changed, 26 insertions, 18 deletions
diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.cpp b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.cpp
index 43e9e20..16e5a0b 100644
--- a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.cpp
+++ b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.cpp
@@ -15,7 +15,6 @@
*/
#include "olm_inbound_group_session.h"
-#include "olm_utility.h"
/**
@@ -123,45 +122,54 @@ JNIEXPORT jint OLM_INBOUND_GROUP_SESSION_FUNC_DEF(initInboundGroupSessionWithSes
}
+/**
+* Get a base64-encoded identifier for this inbound group session.
+*/
JNIEXPORT jstring OLM_INBOUND_GROUP_SESSION_FUNC_DEF(sessionIdentifierJni)(JNIEnv *env, jobject thiz)
{
OlmInboundGroupSession *sessionPtr = NULL;
uint8_t *sessionIdPtr = NULL;
jstring returnValueStr=0;
- // get the size to alloc to contain the id
- size_t lengthSessionId = olm_inbound_group_session_id_length(sessionPtr);
+ LOGD("## sessionIdentifierJni(): inbound group session IN");
if(NULL == (sessionPtr = (OlmInboundGroupSession*)getInboundGroupSessionInstanceId(env,thiz)))
{
LOGE("## sessionIdentifierJni(): failure - invalid inbound group session instance");
}
- else if(NULL == (sessionIdPtr = (uint8_t*)malloc(lengthSessionId*sizeof(uint8_t))))
- {
- LOGE("## sessionIdentifierJni(): failure - identifier allocation OOM");
- }
else
{
- size_t result = olm_inbound_group_session_id(sessionPtr, sessionIdPtr, lengthSessionId);
- if (result == olm_error())
+ // get the size to alloc
+ size_t lengthSessionId = olm_inbound_group_session_id_length(sessionPtr);
+ LOGD("## sessionIdentifierJni(): inbound group session lengthSessionId=%lu",lengthSessionId);
+
+ if(NULL == (sessionIdPtr = (uint8_t*)malloc(lengthSessionId*sizeof(uint8_t))))
{
- const char *errorMsgPtr = olm_inbound_group_session_last_error(sessionPtr);
- LOGE("## sessionIdentifierJni(): failure - get session identifier failure Msg=%s",errorMsgPtr);
+ LOGE("## sessionIdentifierJni(): failure - inbound group session identifier allocation OOM");
}
else
{
- // update length
- sessionIdPtr[result] = static_cast<char>('\0');
-
- LOGD("## sessionIdentifierJni(): success - result=%lu sessionId=%s",result, (char*)sessionIdPtr);
- returnValueStr = env->NewStringUTF((const char*)sessionIdPtr);
+ size_t result = olm_inbound_group_session_id(sessionPtr, sessionIdPtr, lengthSessionId);
+ if (result == olm_error())
+ {
+ const char *errorMsgPtr = olm_inbound_group_session_last_error(sessionPtr);
+ LOGE("## sessionIdentifierJni(): failure - get inbound group session identifier failure Msg=%s",errorMsgPtr);
+ }
+ else
+ {
+ // update length
+ sessionIdPtr[result] = static_cast<char>('\0');
+ LOGD("## sessionIdentifierJni(): success - inbound group session result=%lu sessionId=%s",result, (char*)sessionIdPtr);
+ returnValueStr = env->NewStringUTF((const char*)sessionIdPtr);
+ }
+ free(sessionIdPtr);
}
- free(sessionIdPtr);
}
return returnValueStr;
}
+
JNIEXPORT jstring OLM_INBOUND_GROUP_SESSION_FUNC_DEF(decryptMessageJni)(JNIEnv *env, jobject thiz, jstring aEncryptedMsg)
{
jstring decryptedMsgRetValue = 0;
@@ -178,7 +186,7 @@ JNIEXPORT jstring OLM_INBOUND_GROUP_SESSION_FUNC_DEF(decryptMessageJni)(JNIEnv *
}
else if(0 == aEncryptedMsg)
{
- LOGE("## decryptMessageJni(): failure - invalid clear message");
+ LOGE("## decryptMessageJni(): failure - invalid encrypted message");
}
else if(0 == (encryptedMsgPtr = env->GetStringUTFChars(aEncryptedMsg, 0)))
{