From eb7347bb524b830c1458d64411cd56fc58ad5b91 Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 10 Apr 2019 11:26:58 +0200 Subject: Return string instead of byte array for b64 encoded data --- .../java/org/matrix/olm/OlmSasTest.java | 24 +++++++++------------- .../src/main/java/org/matrix/olm/OlmSAS.java | 15 ++++++++------ android/olm-sdk/src/main/jni/olm_sas.cpp | 6 +++--- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmSasTest.java b/android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmSasTest.java index 39127cd..bbb50ae 100644 --- a/android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmSasTest.java +++ b/android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmSasTest.java @@ -72,26 +72,22 @@ public class OlmSasTest { assertEquals(codeLength, bob_sas.length); assertArrayEquals(alice_sas, bob_sas); - byte[] aliceMac = aliceSas.calculateMac("Hello world!", "SAS"); - byte[] bobMac = bobSas.calculateMac("Hello world!", "SAS"); + String aliceMac = aliceSas.calculateMac("Hello world!", "SAS"); + String bobMac = bobSas.calculateMac("Hello world!", "SAS"); - assertTrue(aliceMac.length > 0 && bobMac.length > 0); - assertEquals(aliceMac.length, bobMac.length); - assertArrayEquals(aliceMac, bobMac); + assertEquals(aliceMac, bobMac); - Log.e(OlmSasTest.class.getSimpleName(), "#### Alice Mac is " + new String(aliceMac, "UTF-8")); - Log.e(OlmSasTest.class.getSimpleName(), "#### Bob Mac is " + new String(bobMac, "UTF-8")); + Log.e(OlmSasTest.class.getSimpleName(), "#### Alice Mac is " + aliceMac); + Log.e(OlmSasTest.class.getSimpleName(), "#### Bob Mac is " + bobMac); - byte[] aliceLongKdfMac = aliceSas.calculateMacLongKdf("Hello world!", "SAS"); - byte[] bobLongKdfMac = bobSas.calculateMacLongKdf("Hello world!", "SAS"); + String aliceLongKdfMac = aliceSas.calculateMacLongKdf("Hello world!", "SAS"); + String bobLongKdfMac = bobSas.calculateMacLongKdf("Hello world!", "SAS"); - assertTrue(aliceLongKdfMac.length > 0 && bobLongKdfMac.length > 0); - assertEquals(aliceLongKdfMac.length, bobLongKdfMac.length); - assertArrayEquals(aliceLongKdfMac, bobLongKdfMac); + assertEquals("Mac should be the same", aliceLongKdfMac, bobLongKdfMac); - Log.e(OlmSasTest.class.getSimpleName(), "#### Alice lkdf Mac is " + new String(aliceLongKdfMac, "UTF-8")); - Log.e(OlmSasTest.class.getSimpleName(), "#### Bob lkdf Mac is " + new String(bobLongKdfMac, "UTF-8")); + Log.e(OlmSasTest.class.getSimpleName(), "#### Alice lkdf Mac is " + aliceLongKdfMac); + Log.e(OlmSasTest.class.getSimpleName(), "#### Bob lkdf Mac is " + bobLongKdfMac); } catch (Exception e) { diff --git a/android/olm-sdk/src/main/java/org/matrix/olm/OlmSAS.java b/android/olm-sdk/src/main/java/org/matrix/olm/OlmSAS.java index 70cfb8c..4bd1579 100644 --- a/android/olm-sdk/src/main/java/org/matrix/olm/OlmSAS.java +++ b/android/olm-sdk/src/main/java/org/matrix/olm/OlmSAS.java @@ -86,8 +86,7 @@ public class OlmSAS { throw new OlmException(OlmException.EXCEPTION_CODE_SAS_MISSING_THEIR_PKEY, "call setTheirPublicKey first"); } try { - byte[] shortBuffer = generateShortCodeJni(info.getBytes("UTF-8"), byteNumber); - return shortBuffer; + return generateShortCodeJni(info.getBytes("UTF-8"), byteNumber); } catch (Exception e) { Log.e(LOG_TAG, "## sessionIdentifier(): " + e.getMessage()); throw new OlmException(OlmException.EXCEPTION_CODE_SAS_GENERATE_SHORT_CODE, e.getMessage()); @@ -95,20 +94,24 @@ public class OlmSAS { } - public byte[] calculateMac(String message, String info) throws OlmException { + public String calculateMac(String message, String info) throws OlmException { try { - return calculateMacJni(message.getBytes("UTF-8"), info.getBytes("UTF-8")); + byte[] bytes = calculateMacJni(message.getBytes("UTF-8"), info.getBytes("UTF-8")); + if (bytes != null) return new String(bytes, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new OlmException(OlmException.EXCEPTION_CODE_SAS_ERROR, e.getMessage()); } + return null; } - public byte[] calculateMacLongKdf(String message, String info) throws OlmException { + public String calculateMacLongKdf(String message, String info) throws OlmException { try { - return calculateMacLongKdfJni(message.getBytes("UTF-8"), info.getBytes("UTF-8")); + byte[] bytes = calculateMacLongKdfJni(message.getBytes("UTF-8"), info.getBytes("UTF-8")); + if (bytes != null) return new String(bytes, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new OlmException(OlmException.EXCEPTION_CODE_SAS_ERROR, e.getMessage()); } + return null; } /** diff --git a/android/olm-sdk/src/main/jni/olm_sas.cpp b/android/olm-sdk/src/main/jni/olm_sas.cpp index 40b9183..400934f 100644 --- a/android/olm-sdk/src/main/jni/olm_sas.cpp +++ b/android/olm-sdk/src/main/jni/olm_sas.cpp @@ -148,7 +148,7 @@ JNIEXPORT void OLM_SAS_FUNC_DEF(setTheirPubKey)(JNIEnv *env, jobject thiz,jbyteA } else if (!(pubKeyPtr = env->GetByteArrayElements(pubKeyBuffer, &pubKeyWasCopied))) { - LOGE(" ## generateShortCodeJni(): failure - info JNI allocation OOM"); + LOGE(" ## setTheirPubKey(): failure - info JNI allocation OOM"); errorMessage = "info JNI allocation OOM"; } else @@ -230,7 +230,7 @@ JNIEXPORT jbyteArray OLM_SAS_FUNC_DEF(generateShortCodeJni)(JNIEnv *env, jobject JNIEXPORT jbyteArray OLM_SAS_FUNC_DEF(calculateMacJni)(JNIEnv *env, jobject thiz,jbyteArray messageBuffer,jbyteArray infoBuffer) { - LOGD("## calculateMacJni(): IN"); + LOGD("## calculateMacJni(): IN"); const char* errorMessage = NULL; jbyteArray returnValue = 0; OlmSAS* sasPtr = getOlmSasInstanceId(env, thiz); @@ -310,7 +310,7 @@ JNIEXPORT jbyteArray OLM_SAS_FUNC_DEF(calculateMacJni)(JNIEnv *env, jobject thiz } JNIEXPORT jbyteArray OLM_SAS_FUNC_DEF(calculateMacLongKdfJni)(JNIEnv *env, jobject thiz,jbyteArray messageBuffer,jbyteArray infoBuffer) { - LOGD("## calculateMacLongKdfJni(): IN"); + LOGD("## calculateMacLongKdfJni(): IN"); const char* errorMessage = NULL; jbyteArray returnValue = 0; OlmSAS* sasPtr = getOlmSasInstanceId(env, thiz); -- cgit v1.2.3