diff --git a/androidTests/app/src/main/java/com/pep/k9/MainActivity.java b/androidTests/app/src/main/java/com/pep/k9/MainActivity.java index 4051beb..754be8a 100644 --- a/androidTests/app/src/main/java/com/pep/k9/MainActivity.java +++ b/androidTests/app/src/main/java/com/pep/k9/MainActivity.java @@ -501,9 +501,17 @@ public class MainActivity extends AppCompatActivity { Engine.decrypt_message_Return result = null; result = e.decrypt_message(enc); + if(!(result.dst.getShortmsg().equals("hello, world"))) throw new AssertionError(); if(!(result.dst.getLongmsg().equals("this is a test"))) throw new AssertionError(); + /* TODO + if(!(result.color.equals(Color.pEpRatingReliable))) throw new AssertionError(); + e.trustPersonalKey(john); + e.keyResetTrust(john); + e.keyCompromized(john); + */ + ArrayList> _pairs = result.dst.getOptFields(); /* FIXME ? { diff --git a/src/basic_api.cc b/src/basic_api.cc index 0199d80..d2f30f2 100644 --- a/src/basic_api.cc +++ b/src/basic_api.cc @@ -96,6 +96,54 @@ JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_keyCompromized( ::key_compromized(session, _ident); } +JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_keyResetTrust( + JNIEnv *env, + jobject obj, + jobject ident + ) +{ + PEP_SESSION session = (PEP_SESSION) callLongMethod(env, obj, "getHandle"); + pEp_identity *_ident = to_identity(env, ident); + + if (_ident->fpr == NULL || _ident->fpr[0] == 0) { + if (_ident->me) + ::myself(session, _ident); + else + ::update_identity(session, _ident); + } + + if (_ident->fpr == NULL || _ident->fpr[0] == 0) { + throw_pEp_Exception(env, PEP_CANNOT_FIND_IDENTITY); + return; + } + + ::key_reset_trust(session, _ident); +} + +JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_trustPersonalKey( + JNIEnv *env, + jobject obj, + jobject ident + ) +{ + PEP_SESSION session = (PEP_SESSION) callLongMethod(env, obj, "getHandle"); + pEp_identity *_ident = to_identity(env, ident); + + if (_ident->fpr == NULL || _ident->fpr[0] == 0) { + if (_ident->me) + ::myself(session, _ident); + else + ::update_identity(session, _ident); + } + + if (_ident->fpr == NULL || _ident->fpr[0] == 0) { + throw_pEp_Exception(env, PEP_CANNOT_FIND_IDENTITY); + return; + } + + ::trust_personal_key(session, _ident); +} + JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_importKey( JNIEnv *env, jobject obj, diff --git a/src/pEp.yml2 b/src/pEp.yml2 index de0fd13..4e11df3 100644 --- a/src/pEp.yml2 +++ b/src/pEp.yml2 @@ -92,6 +92,8 @@ namespace pEp { basic identity myself(identity ident); basic identity updateIdentity(identity ident); basic void keyCompromized(identity ident); + basic void keyResetTrust(identity ident); + basic void trustPersonalKey(identity ident); basic void importKey(string key); };