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.
118 lines
3.7 KiB
118 lines
3.7 KiB
import foundation.pEp.jniadapter.*;
|
|
|
|
import java.lang.Thread;
|
|
|
|
|
|
/*
|
|
This test is trying to reproduce the problem described in JNI-91
|
|
https://pep.foundation/jira/browse/JNI-81
|
|
|
|
`engine.key_reset_identity` and `engine.setMessageToSendCallback`
|
|
*/
|
|
|
|
|
|
class KeyResetThread extends Thread {
|
|
private String threadName = "Key Reset Thread";
|
|
private Engine engine = null;
|
|
private Identity me = null;
|
|
|
|
KeyResetThread() {
|
|
}
|
|
|
|
private Identity getOwnIdentity(String name) {
|
|
System.out.print(threadName + ": getOwnIdentity: \"" + name + "\"");
|
|
Identity i = new Identity();
|
|
i.me = true;
|
|
i.user_id = name;
|
|
i.username = name;
|
|
i.address = name + "@test.org";
|
|
i = engine.myself(i);
|
|
System.out.println("FPR: \"" + i.fpr + "\"");
|
|
return i;
|
|
}
|
|
|
|
public void run() {
|
|
System.out.println(threadName + ": Starting thread: ");
|
|
|
|
try {
|
|
// load engine
|
|
try {
|
|
engine = new Engine();
|
|
SyncCallbacks callbacks = new SyncCallbacks();
|
|
engine.setMessageToSendCallback(callbacks);
|
|
engine.setNotifyHandshakeCallback(callbacks);
|
|
}
|
|
catch (pEpException ex) {
|
|
System.out.println(threadName + ": cannot load");
|
|
System.exit(0);
|
|
return;
|
|
}
|
|
System.out.println(threadName + ": Engine loaded");
|
|
try {
|
|
Thread.sleep(1000);
|
|
} catch (InterruptedException ex) { }
|
|
|
|
// Get myself
|
|
me = this.getOwnIdentity("BAlice");
|
|
try {
|
|
Thread.sleep(1000);
|
|
} catch (InterruptedException ex) { }
|
|
|
|
// // start sync
|
|
// System.out.println(threadName + ": engine.startSync()");
|
|
// engine.startSync();
|
|
// try {
|
|
// Thread.sleep(2000);
|
|
// } catch (InterruptedException ex) { }
|
|
|
|
// key reset
|
|
System.out.println(threadName + ": key_reset_identity()");
|
|
// engine.key_reset_identity(me,null);
|
|
engine.key_reset_all_own_keys();
|
|
try {
|
|
Thread.sleep(20000);
|
|
} catch (InterruptedException ex) { }
|
|
} catch (Exception e) {
|
|
System.out.println("Exception in Thread " + threadName);
|
|
System.out.println(e.toString());
|
|
System.exit(0);
|
|
}
|
|
System.out.println(threadName + ": DONE");
|
|
}
|
|
}
|
|
|
|
class SyncCallbacks implements Sync.MessageToSendCallback, Sync.NotifyHandshakeCallback {
|
|
public void messageToSend(Message message)
|
|
{
|
|
System.out.println("================================");
|
|
System.out.println("Message to send called");
|
|
System.out.println("From: " + message.getFrom());
|
|
System.out.println("To: " + message.getTo());
|
|
System.out.println("Subject: " + message.getShortmsg());
|
|
System.out.println("Attachement[0]: " + message.getAttachments().get(0).toString());
|
|
System.out.println("================================");
|
|
}
|
|
|
|
public void notifyHandshake(Identity myself, Identity partner, SyncHandshakeSignal signal)
|
|
{
|
|
System.out.println("================================");
|
|
System.out.println("Notify handshake called");
|
|
System.out.println("Myself: " + myself);
|
|
System.out.println("Partner: " + partner);
|
|
System.out.println("Signal: " + signal);
|
|
System.out.println("================================");
|
|
}
|
|
}
|
|
|
|
|
|
class TestMain {
|
|
public static void main(String[] args) {
|
|
Thread kr = new KeyResetThread();
|
|
|
|
try {
|
|
Thread.sleep(2000);
|
|
}
|
|
catch (InterruptedException ex) { }
|
|
kr.start();
|
|
}
|
|
}
|
|
|