Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
matrix-org
Olm
Commits
e63be977
Commit
e63be977
authored
Nov 23, 2016
by
pedroGitt
Browse files
Update with master branch => OLM V2.0.0
parent
7a689764
Changes
6
Hide whitespace changes
Inline
Side-by-side
java/android/OlmLibSdk/olm-sdk/build.gradle
View file @
e63be977
...
...
@@ -11,7 +11,7 @@ android {
targetSdkVersion
21
versionCode
1
versionName
"1.0"
version
"0.
3
.0"
version
"0.
2
.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes
{
...
...
java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmGroupSessionTest.java
View file @
e63be977
...
...
@@ -151,8 +151,10 @@ public class OlmGroupSessionTest {
@Test
public
void
test10InboundDecryptMessage
()
{
// test decrypted message
mBobDecryptedMessage
=
mBobInboundGroupSession
.
decryptMessage
(
mAliceToBobMessage
);
OlmInboundGroupSession
.
DecryptIndex
index
=
new
OlmInboundGroupSession
.
DecryptIndex
();
mBobDecryptedMessage
=
mBobInboundGroupSession
.
decryptMessage
(
mAliceToBobMessage
,
index
);
assertFalse
(
TextUtils
.
isEmpty
(
mBobDecryptedMessage
));
assertTrue
(
0
==
index
.
mIndex
);
}
@Test
...
...
@@ -435,8 +437,10 @@ public class OlmGroupSessionTest {
assertTrue
(
"Exception in test18TestBadCharacterCrashInDecrypt, Exception code="
+
e
.
getExceptionCode
(),
false
);
}
String
decryptedMessage
=
bobInboundGroupSession
.
decryptMessage
(
msgToDecryptWithEmoji
);
OlmInboundGroupSession
.
DecryptIndex
index
=
new
OlmInboundGroupSession
.
DecryptIndex
();
String
decryptedMessage
=
bobInboundGroupSession
.
decryptMessage
(
msgToDecryptWithEmoji
,
index
);
assertNotNull
(
decryptedMessage
);
assertTrue
(
13
==
index
.
mIndex
);
}
}
...
...
java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmInboundGroupSession.java
View file @
e63be977
...
...
@@ -44,6 +44,14 @@ public class OlmInboundGroupSession extends CommonSerializeUtils implements Seri
*/
private
transient
long
mNativeId
;
/**
* Wrapper class to be used in {@link #decryptMessage(String, DecryptIndex)}
*/
static
public
class
DecryptIndex
{
/** decrypt index **/
public
long
mIndex
;
}
/**
* Constructor.<br>
* Create and save a new native session instance ID and start a new inbound group session.
...
...
@@ -136,13 +144,14 @@ public class OlmInboundGroupSession extends CommonSerializeUtils implements Seri
/**
* Decrypt the message passed in parameter.
* @param aEncryptedMsg the message to be decrypted
* @param aDecryptIndex_out decrypted message index
* @return the decrypted message if operation succeed, null otherwise.
*/
public
String
decryptMessage
(
String
aEncryptedMsg
)
{
String
decryptedMessage
=
decryptMessageJni
(
aEncryptedMsg
,
OlmManager
.
ENABLE_STRING_UTF8_SPECIFIC_CONVERSION
);
public
String
decryptMessage
(
String
aEncryptedMsg
,
DecryptIndex
aDecryptIndex_out
)
{
String
decryptedMessage
=
decryptMessageJni
(
aEncryptedMsg
,
aDecryptIndex_out
,
OlmManager
.
ENABLE_STRING_UTF8_SPECIFIC_CONVERSION
);
return
decryptedMessage
;
}
private
native
String
decryptMessageJni
(
String
aEncryptedMsg
,
boolean
aIsUtf8ConversionRequired
);
private
native
String
decryptMessageJni
(
String
aEncryptedMsg
,
DecryptIndex
aDecryptIndex_out
,
boolean
aIsUtf8ConversionRequired
);
/**
...
...
java/android/OlmLibSdk/olm-sdk/src/main/jni/Android.mk
View file @
e63be977
...
...
@@ -2,8 +2,8 @@ LOCAL_PATH := $(call my-dir)
include
$(CLEAR_VARS)
LOCAL_MODULE
:=
olm
MAJOR
:=
1
MINOR
:=
3
MAJOR
:=
2
MINOR
:=
0
PATCH
:=
0
OLM_VERSION
:=
$(MAJOR)
.
$(MINOR)
.
$(PATCH)
SRC_ROOT_DIR
:=
../../../../../../..
...
...
java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.cpp
View file @
e63be977
...
...
@@ -180,13 +180,16 @@ JNIEXPORT jstring OLM_INBOUND_GROUP_SESSION_FUNC_DEF(sessionIdentifierJni)(JNIEn
}
JNIEXPORT
jstring
OLM_INBOUND_GROUP_SESSION_FUNC_DEF
(
decryptMessageJni
)(
JNIEnv
*
env
,
jobject
thiz
,
jstring
aEncryptedMsg
,
jboolean
aIsUtf8ConversionRequired
)
JNIEXPORT
jstring
OLM_INBOUND_GROUP_SESSION_FUNC_DEF
(
decryptMessageJni
)(
JNIEnv
*
env
,
jobject
thiz
,
jstring
aEncryptedMsg
,
jobject
aDecryptIndex
,
jboolean
aIsUtf8ConversionRequired
)
{
jstring
decryptedMsgRetValue
=
0
;
OlmInboundGroupSession
*
sessionPtr
=
NULL
;
const
char
*
encryptedMsgPtr
=
NULL
;
uint8_t
*
plainTextMsgPtr
=
NULL
;
uint8_t
*
tempEncryptedPtr
=
NULL
;
uint32_t
messageIndex
=
0
;
jclass
indexObjJClass
=
0
;
jfieldID
indexMsgFieldId
;
LOGD
(
"## decryptMessageJni(): inbound group session IN"
);
...
...
@@ -198,10 +201,22 @@ JNIEXPORT jstring OLM_INBOUND_GROUP_SESSION_FUNC_DEF(decryptMessageJni)(JNIEnv *
{
LOGE
(
" ## decryptMessageJni(): failure - invalid encrypted message"
);
}
else
if
(
0
==
aDecryptIndex
)
{
LOGE
(
" ## decryptMessageJni(): failure - invalid index object"
);
}
else
if
(
0
==
(
encryptedMsgPtr
=
env
->
GetStringUTFChars
(
aEncryptedMsg
,
0
)))
{
LOGE
(
" ## decryptMessageJni(): failure - encrypted message JNI allocation OOM"
);
}
else
if
(
0
==
(
indexObjJClass
=
env
->
GetObjectClass
(
aDecryptIndex
)))
{
LOGE
(
"## decryptMessageJni(): failure - unable to get index class"
);
}
else
if
(
0
==
(
indexMsgFieldId
=
env
->
GetFieldID
(
indexObjJClass
,
"mIndex"
,
"J"
)))
{
LOGE
(
"## decryptMessageJni(): failure - unable to get index type field"
);
}
else
{
// get encrypted message length
...
...
@@ -238,13 +253,17 @@ JNIEXPORT jstring OLM_INBOUND_GROUP_SESSION_FUNC_DEF(decryptMessageJni)(JNIEnv *
tempEncryptedPtr
,
encryptedMsgLength
,
plainTextMsgPtr
,
maxPlainTextLength
);
maxPlainTextLength
,
&
messageIndex
);
if
(
plaintextLength
==
olm_error
())
{
LOGE
(
" ## decryptMessageJni(): failure - olm_group_decrypt Msg=%s"
,(
const
char
*
)
olm_inbound_group_session_last_error
(
sessionPtr
));
}
else
{
// update index
env
->
SetLongField
(
aDecryptIndex
,
indexMsgFieldId
,
(
jlong
)
messageIndex
);
// UTF-8 conversion workaround for issue on Android versions older than Marshmallow (23)
if
(
aIsUtf8ConversionRequired
)
{
...
...
java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_inbound_group_session.h
View file @
e63be977
...
...
@@ -33,7 +33,7 @@ JNIEXPORT jlong OLM_INBOUND_GROUP_SESSION_FUNC_DEF(createNewSessionJni)(JNIEnv *
JNIEXPORT
jint
OLM_INBOUND_GROUP_SESSION_FUNC_DEF
(
initInboundGroupSessionWithSessionKeyJni
)(
JNIEnv
*
env
,
jobject
thiz
,
jstring
aSessionKey
);
JNIEXPORT
jstring
OLM_INBOUND_GROUP_SESSION_FUNC_DEF
(
sessionIdentifierJni
)(
JNIEnv
*
env
,
jobject
thiz
);
JNIEXPORT
jstring
OLM_INBOUND_GROUP_SESSION_FUNC_DEF
(
decryptMessageJni
)(
JNIEnv
*
env
,
jobject
thiz
,
jstring
aEncryptedMsg
,
jboolean
aIsUtf8ConversionRequired
);
JNIEXPORT
jstring
OLM_INBOUND_GROUP_SESSION_FUNC_DEF
(
decryptMessageJni
)(
JNIEnv
*
env
,
jobject
thiz
,
jstring
aEncryptedMsg
,
jobject
aDecryptIndex
,
jboolean
aIsUtf8ConversionRequired
);
// serialization
JNIEXPORT
jstring
OLM_INBOUND_GROUP_SESSION_FUNC_DEF
(
serializeDataWithKeyJni
)(
JNIEnv
*
env
,
jobject
thiz
,
jstring
aKey
,
jobject
aErrorMsg
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment