From 9acfd1791edc3ab7750dcb53ae277c8a33296532 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Tue, 23 Oct 2018 12:15:14 -0400 Subject: expose the private key length in the Android sdk --- android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmPkTest.java | 2 ++ android/olm-sdk/src/main/java/org/matrix/olm/OlmPkDecryption.java | 2 ++ android/olm-sdk/src/main/jni/olm_pk.cpp | 5 +++++ android/olm-sdk/src/main/jni/olm_pk.h | 1 + 4 files changed, 10 insertions(+) (limited to 'android/olm-sdk/src') diff --git a/android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmPkTest.java b/android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmPkTest.java index 1577f3b..29f6946 100644 --- a/android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmPkTest.java +++ b/android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmPkTest.java @@ -116,6 +116,8 @@ public class OlmPkTest { (byte)0x1D, (byte)0xB9, (byte)0x2C, (byte)0x2A }; + assertTrue(privateKey.length == OlmPkDecryption.privateKeyLength()); + try { mOlmPkDecryption.setPrivateKey(privateKey); } catch (OlmException e) { diff --git a/android/olm-sdk/src/main/java/org/matrix/olm/OlmPkDecryption.java b/android/olm-sdk/src/main/java/org/matrix/olm/OlmPkDecryption.java index 6522f70..6a6a22b 100644 --- a/android/olm-sdk/src/main/java/org/matrix/olm/OlmPkDecryption.java +++ b/android/olm-sdk/src/main/java/org/matrix/olm/OlmPkDecryption.java @@ -51,6 +51,8 @@ public class OlmPkDecryption { return (0 == mNativeId); } + public static native int privateKeyLength(); + public String setPrivateKey(byte[] privateKey) throws OlmException { try { byte[] key = setPrivateKeyJni(privateKey); diff --git a/android/olm-sdk/src/main/jni/olm_pk.cpp b/android/olm-sdk/src/main/jni/olm_pk.cpp index eff57a5..cb1422a 100644 --- a/android/olm-sdk/src/main/jni/olm_pk.cpp +++ b/android/olm-sdk/src/main/jni/olm_pk.cpp @@ -364,6 +364,11 @@ JNIEXPORT void OLM_PK_DECRYPTION_FUNC_DEF(releasePkDecryptionJni)(JNIEnv *env, j } } +JNIEXPORT jint OLM_PK_DECRYPTION_FUNC_DEF(privateKeyLength)(JNIEnv *env, jobject thiz) +{ + return (jint) olm_pk_private_key_length(); +} + JNIEXPORT jbyteArray OLM_PK_DECRYPTION_FUNC_DEF(setPrivateKeyJni)(JNIEnv *env, jobject thiz, jbyteArray key) { jbyteArray publicKeyRet = 0; diff --git a/android/olm-sdk/src/main/jni/olm_pk.h b/android/olm-sdk/src/main/jni/olm_pk.h index 5f45462..a17d0f2 100644 --- a/android/olm-sdk/src/main/jni/olm_pk.h +++ b/android/olm-sdk/src/main/jni/olm_pk.h @@ -35,6 +35,7 @@ JNIEXPORT jbyteArray OLM_PK_ENCRYPTION_FUNC_DEF(encryptJni)(JNIEnv *env, jobject JNIEXPORT jlong OLM_PK_DECRYPTION_FUNC_DEF(createNewPkDecryptionJni)(JNIEnv *env, jobject thiz); JNIEXPORT void OLM_PK_DECRYPTION_FUNC_DEF(releasePkDecryptionJni)(JNIEnv *env, jobject thiz); +JNIEXPORT jint OLM_PK_DECRYPTION_FUNC_DEF(privateKeyLength)(JNIEnv *env, jobject thiz); JNIEXPORT jbyteArray OLM_PK_DECRYPTION_FUNC_DEF(setPrivateKeyJni)(JNIEnv *env, jobject thiz, jbyteArray key); JNIEXPORT jbyteArray OLM_PK_DECRYPTION_FUNC_DEF(generateKeyJni)(JNIEnv *env, jobject thiz); JNIEXPORT jbyteArray OLM_PK_DECRYPTION_FUNC_DEF(privateKeyJni)(JNIEnv *env, jobject thiz); -- cgit v1.2.3