aboutsummaryrefslogtreecommitdiff
path: root/android/olm-sdk/src/androidTest/java/org/matrix/olm
diff options
context:
space:
mode:
authorHubert Chathi <hubert@uhoreg.ca>2018-06-27 17:38:14 -0400
committerHubert Chathi <hubert@uhoreg.ca>2018-06-27 18:49:48 -0400
commit307309c69b99087489a5d2d2eccecee7751fead6 (patch)
tree21328bb745b6919bf16dc50e5e3ec779fafd66cd /android/olm-sdk/src/androidTest/java/org/matrix/olm
parent552da6eafecc29f6900854ebe7c55fa8a96002e4 (diff)
add initial version of Android wrapper for public key API
Diffstat (limited to 'android/olm-sdk/src/androidTest/java/org/matrix/olm')
-rw-r--r--android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmPkTest.java94
1 files changed, 94 insertions, 0 deletions
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
new file mode 100644
index 0000000..04b2217
--- /dev/null
+++ b/android/olm-sdk/src/androidTest/java/org/matrix/olm/OlmPkTest.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2018 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.matrix.olm;
+
+import android.support.test.runner.AndroidJUnit4;
+import android.util.Log;
+
+import org.junit.BeforeClass;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(AndroidJUnit4.class)
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class OlmPkTest {
+ private static final String LOG_TAG = "OlmPkEncryptionTest";
+
+ private static OlmPkEncryption mOlmPkEncryption;
+ private static OlmPkDecryption mOlmPkDecryption;
+
+ @Test
+ public void test01EncryptAndDecrypt() {
+ try {
+ mOlmPkEncryption = new OlmPkEncryption();
+ } catch (OlmException e) {
+ e.printStackTrace();
+ assertTrue("OlmPkEncryption failed " + e.getMessage(), false);
+ }
+ try {
+ mOlmPkDecryption = new OlmPkDecryption();
+ } catch (OlmException e) {
+ e.printStackTrace();
+ assertTrue("OlmPkEncryption failed " + e.getMessage(), false);
+ }
+
+ assertNotNull(mOlmPkEncryption);
+ assertNotNull(mOlmPkDecryption);
+
+ String key = null;
+ try {
+ key = mOlmPkDecryption.generateKey();
+ } catch (OlmException e) {
+ assertTrue("Exception in generateKey, Exception code=" + e.getExceptionCode(), false);
+ }
+ Log.d(LOG_TAG, "Ephemeral Key: " + key);
+ try {
+ mOlmPkEncryption.setRecipientKey(key);
+ } catch (OlmException e) {
+ assertTrue("Exception in setRecipientKey, Exception code=" + e.getExceptionCode(), false);
+ }
+
+ String clearMessage = "Public key test";
+ OlmPkMessage message = null;
+ try {
+ message = mOlmPkEncryption.encrypt(clearMessage);
+ } catch (OlmException e) {
+ assertTrue("Exception in encrypt, Exception code=" + e.getExceptionCode(), false);
+ }
+ Log.d(LOG_TAG, "message: " + message.mCipherText + " " + message.mMac + " " + message.mEphemeralKey);
+
+ String decryptedMessage = null;
+ try {
+ decryptedMessage = mOlmPkDecryption.decrypt(message);
+ } catch (OlmException e) {
+ assertTrue("Exception in decrypt, Exception code=" + e.getExceptionCode(), false);
+ }
+ assertTrue(clearMessage.equals(decryptedMessage));
+
+ mOlmPkEncryption.releaseEncryption();
+ mOlmPkDecryption.releaseDecryption();
+ assertTrue(mOlmPkEncryption.isReleased());
+ assertTrue(mOlmPkDecryption.isReleased());
+ }
+}