You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
296 lines
11 KiB
296 lines
11 KiB
package foundation.pEp.jniadapter.test.regression;
|
|
import foundation.pEp.pitytest.*;
|
|
import foundation.pEp.jniadapter.test.utils.*;
|
|
import foundation.pEp.jniadapter.*;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Vector;
|
|
|
|
import static foundation.pEp.pitytest.TestLogger.log;
|
|
|
|
class CTXAlice extends CTXBase {
|
|
@Override
|
|
public CTXAlice init() throws Throwable {
|
|
super.init();
|
|
alice = engine.myself(alice);
|
|
return this;
|
|
}
|
|
}
|
|
|
|
class CTXAlice2 extends CTXAlice {
|
|
@Override
|
|
public CTXAlice2 init() throws Throwable {
|
|
super.init();
|
|
engine.importKey(keyBobSec);
|
|
bob = engine.updateIdentity(bob);
|
|
return this;
|
|
}
|
|
}
|
|
|
|
// Almost exact copy of JNI1118Context, we need a shared context hierarchy
|
|
class CTXReEvaluateMessageRating extends CTXBase {
|
|
public Message msgToBobEncrypted;
|
|
public Message msgToBobDecrypted;
|
|
public decrypt_message_Return msgToBobDecryptResult;
|
|
|
|
@Override
|
|
public CTXReEvaluateMessageRating init() throws Throwable {
|
|
super.init();
|
|
alice = engine.myself(alice);
|
|
engine.importKey(keyBobPub);
|
|
|
|
Vector<Identity> msgToBobRcpts = new Vector<>();
|
|
msgToBobRcpts.add(bob);
|
|
msgAliceToBob.setTo(msgToBobRcpts);
|
|
|
|
msgToBobEncrypted = engine.encrypt_message(msgAliceToBob, null, Message.EncFormat.PEP);
|
|
msgToBobDecrypted = msgToBobEncrypted;
|
|
msgToBobDecryptResult = engine.decrypt_message(msgToBobDecrypted, new Vector<String>(), 0);
|
|
if (msgToBobEncrypted == null) {
|
|
throw new RuntimeException("Context failure, error decrypting message");
|
|
}
|
|
|
|
addRatingToOptFields(msgToBobDecrypted, msgToBobDecryptResult.rating.getInternalStringValue());
|
|
addRcptsToOptFields(msgToBobDecrypted, Identity.toXKeyList(msgToBobDecrypted.getTo()));
|
|
return this;
|
|
}
|
|
|
|
public void addRatingToOptFields(Message msg, String ratingStr) {
|
|
ArrayList<Pair<String, String>> opts = msg.getOptFields();
|
|
opts.add(new Pair<String, String>("X-EncStatus",ratingStr));
|
|
msg.setOptFields(opts);
|
|
}
|
|
|
|
public void addRcptsToOptFields(Message msg, String fprs) {
|
|
ArrayList<Pair<String, String>> opts = msg.getOptFields();
|
|
opts.add(new Pair<String, String>("X-KeyList", fprs));
|
|
msg.setOptFields(opts);
|
|
}
|
|
|
|
}
|
|
|
|
class TestMain {
|
|
public static void main(String[] args) {
|
|
TestSuite.getDefault().setVerbose(false);
|
|
|
|
new TestUnit<CTXBase>("Engine.myself", new CTXBase(), ctx -> {
|
|
ctx.alice = ctx.engine.myself(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.encrypt_message", new CTXBase(), ctx -> {
|
|
ctx.engine.encrypt_message(ctx.msgAliceToBob, null, Message.EncFormat.PEP);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.encrypt_message_and_add_priv_key", new CTXAlice(), ctx -> {
|
|
ctx.engine.encrypt_message_and_add_priv_key(ctx.msgAliceToAlice, ctx.alice.fpr);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.encrypt_message_for_self", new CTXAlice(), ctx -> {
|
|
ctx.engine.encrypt_message_for_self(ctx.alice, ctx.msgAliceToAlice, null);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.decrypt_message", new CTXBase(), ctx -> {
|
|
ctx.engine.decrypt_message(ctx.msgAliceToAlice, new Vector<String>(), 0);
|
|
});
|
|
|
|
new TestUnit<CTXReEvaluateMessageRating>("Engine.re_evaluate_message_rating", new CTXReEvaluateMessageRating(), ctx -> {
|
|
ctx.engine.re_evaluate_message_rating(ctx.msgToBobDecrypted);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.outgoing_message_rating", new CTXBase(), ctx -> {
|
|
ctx.engine.outgoing_message_rating(ctx.msgAliceToBob);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.outgoing_message_rating_preview", new CTXBase(), ctx -> {
|
|
ctx.engine.outgoing_message_rating_preview(ctx.msgAliceToBob);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.get_identity", new CTXAlice(), ctx -> {
|
|
ctx.engine.get_identity(ctx.alice.address, ctx.alice.user_id);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.identity_rating", new CTXAlice(), ctx -> {
|
|
ctx.engine.identity_rating(ctx.alice);
|
|
});
|
|
|
|
// TODO: FAILS
|
|
// new TestUnit<CTXAlice2>("Engine.own_message_private_key_details", new CTXAlice2(), ctx -> {
|
|
// ctx.engine.own_message_private_key_details(ctx.msgToSelf);
|
|
// });
|
|
|
|
new TestUnit<CTXBase>("Engine.OpenPGP_list_keyinfo", new CTXBase(), ctx -> {
|
|
ctx.engine.OpenPGP_list_keyinfo("");
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.set_identity_flags", new CTXAlice(), ctx -> {
|
|
ctx.engine.set_identity_flags(ctx.alice, 0);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.unset_identity_flags", new CTXAlice(), ctx -> {
|
|
ctx.engine.unset_identity_flags(ctx.alice, 0);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.own_identities_retrieve", new CTXBase(), ctx -> {
|
|
ctx.engine.own_identities_retrieve();
|
|
});
|
|
|
|
new TestUnit<CTXAlice2>("Engine.get_trustwords", new CTXAlice2(), ctx -> {
|
|
ctx.engine.get_trustwords(ctx.alice, ctx.bob, "en", false);
|
|
});
|
|
|
|
new TestUnit<CTXAlice2>("Engine.get_trustwords_for_fprs", new CTXAlice2(), ctx -> {
|
|
ctx.engine.get_trustwords_for_fprs(ctx.alice.fpr, ctx.bob.fpr, "en", false);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.get_message_trustwords", new CTXBase(), ctx -> {
|
|
ctx.engine.get_message_trustwords(ctx.msgAliceToBob, null, ctx.bob, "en", false);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.get_languagelist", new CTXBase(), ctx -> {
|
|
ctx.engine.get_languagelist();
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.key_reset_trust", new CTXAlice(), ctx -> {
|
|
ctx.engine.key_reset_trust(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.key_reset_identity", new CTXAlice(), ctx -> {
|
|
ctx.engine.key_reset_identity(ctx.alice, "");
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.key_reset_user", new CTXAlice(), ctx -> {
|
|
ctx.engine.key_reset_user("fsdjugsh", ctx.alice.fpr);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.key_reset_all_own_keys", new CTXBase(), ctx -> {
|
|
ctx.engine.key_reset_all_own_keys();
|
|
});
|
|
|
|
// TODO: FAILS
|
|
// new TestUnit<CTXBase>("Engine.deliverHandshakeResult", new CTXBase(), ctx -> {
|
|
// ctx.engine.deliverHandshakeResult(SyncHandshakeResult.SyncHandshakeCancel, ctx.vID);
|
|
// });
|
|
|
|
|
|
// TODO: FAILS
|
|
// [17:51] < heck> | this one fails since: 4665:f067c9e95455
|
|
// [17:52] < heck> | i confirmed it still works in the parent revision 4662:71147c43e31b
|
|
// [17:52] < heck> | the error i get is:
|
|
// [17:53] < heck> | *** send message KeySync Beacon service KeySync_fsm.c:234
|
|
// [17:53] < heck> | Assertion failed: (msg->from && msg->from->fpr), function attach_own_key, file message_api.c, line 1581.
|
|
// new TestUnit<CTXBase>("Engine.leave_device_group", new CTXBase(), ctx -> {
|
|
// ctx.engine.startSync();
|
|
// ctx.engine.leave_device_group();
|
|
// });
|
|
|
|
new TestUnit<CTXAlice>("Engine.enable_identity_for_sync", new CTXAlice(), ctx -> {
|
|
ctx.engine.enable_identity_for_sync(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.disable_identity_for_sync", new CTXAlice(), ctx -> {
|
|
ctx.engine.disable_identity_for_sync(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.config_cipher_suite", new CTXBase(), ctx -> {
|
|
ctx.engine.config_cipher_suite(CipherSuite.pEpCipherSuiteDefault);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.trustwords", new CTXAlice(), ctx -> {
|
|
ctx.engine.trustwords(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.updateIdentity", new CTXBase(), ctx -> {
|
|
ctx.engine.updateIdentity(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.setOwnKey", new CTXAlice(), ctx -> {
|
|
ctx.engine.setOwnKey(ctx.alice, ctx.alice.fpr);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.keyMistrusted", new CTXAlice(), ctx -> {
|
|
ctx.engine.keyMistrusted(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.keyResetTrust", new CTXAlice(), ctx -> {
|
|
ctx.engine.keyResetTrust(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.trustPersonalKey", new CTXAlice(), ctx -> {
|
|
ctx.engine.trustPersonalKey(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXAlice>("Engine.trustOwnKey", new CTXAlice(), ctx -> {
|
|
ctx.engine.trustOwnKey(ctx.alice);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.importKey", new CTXBase(), ctx -> {
|
|
ctx.engine.importKey(ctx.keyBobPub);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.config_passive_mode", new CTXBase(), ctx -> {
|
|
ctx.engine.config_passive_mode(false);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.config_unencrypted_subject", new CTXBase(), ctx -> {
|
|
ctx.engine.config_unencrypted_subject(false);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.getCrashdumpLog", new CTXBase(), ctx -> {
|
|
ctx.engine.getCrashdumpLog(0);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.getUserDirectory", new CTXBase(), ctx -> {
|
|
ctx.engine.getUserDirectory();
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.getMachineDirectory", new CTXBase(), ctx -> {
|
|
ctx.engine.getMachineDirectory();
|
|
});
|
|
|
|
// AbstractEngine.java
|
|
new TestUnit<CTXBase>("Engine.close", new CTXBase(), ctx -> {
|
|
ctx.engine.close();
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.getVersion", new CTXBase(), ctx -> {
|
|
ctx.engine.getVersion();
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.getProtocolVersion", new CTXBase(), ctx -> {
|
|
ctx.engine.getProtocolVersion();
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.startSync", new CTXBase(), ctx -> {
|
|
ctx.engine.startSync();
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.stopSync", new CTXBase(), ctx -> {
|
|
ctx.engine.stopSync();
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.isSyncRunning", new CTXBase(), ctx -> {
|
|
ctx.engine.isSyncRunning();
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.config_passphrase",new CTXBase() , ctx -> {
|
|
ctx.engine.config_passphrase("SUPERCOMPLICATEDPASSPHRASE");
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.config_passphrase_for_new_keys",new CTXBase() , ctx -> {
|
|
ctx.engine.config_passphrase_for_new_keys(true, "SUPERCOMPLICATEDPASSPHRASE");
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.setDebugLogEnabled", new CTXBase(), ctx -> {
|
|
Engine.setDebugLogEnabled(true);
|
|
});
|
|
|
|
new TestUnit<CTXBase>("Engine.setDebugLogEnabled", new CTXBase(), ctx -> {
|
|
Engine.getDebugLogEnabled();
|
|
});
|
|
|
|
|
|
TestSuite.getDefault().run();
|
|
}
|
|
}
|
|
|
|
|
|
|