From 64e12d777473c0f65813cc1c493f1d618694d8a4 Mon Sep 17 00:00:00 2001 From: heck Date: Wed, 8 Jul 2020 04:27:04 +0200 Subject: [PATCH] Java register callback method "Engine.setPassphraseRequired()" done and tested. --- src/foundation/pEp/jniadapter/AbstractEngine.java | 14 +++++++++++++- src/foundation/pEp/jniadapter/Sync.java | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/foundation/pEp/jniadapter/AbstractEngine.java b/src/foundation/pEp/jniadapter/AbstractEngine.java index 4b0fffe..137fee2 100644 --- a/src/foundation/pEp/jniadapter/AbstractEngine.java +++ b/src/foundation/pEp/jniadapter/AbstractEngine.java @@ -16,6 +16,7 @@ abstract class AbstractEngine extends UniquelyIdentifiable implements AutoClosea private Sync.MessageToSendCallback messageToSendCallback; private Sync.NotifyHandshakeCallback notifyHandshakeCallback; private Sync.NeedsFastPollCallback needsFastPollCallback; + private Sync.PassphraseRequiredCallback passphraseRequiredCallback; private final static DefaultCallback defaultCallback = new DefaultCallback(); @@ -164,6 +165,10 @@ abstract class AbstractEngine extends UniquelyIdentifiable implements AutoClosea this.needsFastPollCallback = needsFastPollCallback; } + public void setPassphraseRequiredCallback(Sync.PassphraseRequiredCallback passphraseRequiredCallback) { + this.passphraseRequiredCallback = passphraseRequiredCallback; + } + public int needsFastPollCallFromC(boolean fast_poll_needed) { if (needsFastPollCallback != null) { needsFastPollCallback.needsFastPollCallFromC(fast_poll_needed); @@ -187,7 +192,14 @@ abstract class AbstractEngine extends UniquelyIdentifiable implements AutoClosea } public byte[] passphraseRequiredFromC() { - return toUTF8("passphrase_alice"); + String ret = ""; + if (passphraseRequiredCallback != null) { + ret = passphraseRequiredCallback.passphraseRequired(); + } else { + // should never happen + assert false: "passphraseRequiredFromC called without callback registered"; + } + return toUTF8(ret); } public int messageToSendCallFromC (Message message) { diff --git a/src/foundation/pEp/jniadapter/Sync.java b/src/foundation/pEp/jniadapter/Sync.java index 685ba0d..e83211e 100644 --- a/src/foundation/pEp/jniadapter/Sync.java +++ b/src/foundation/pEp/jniadapter/Sync.java @@ -19,6 +19,9 @@ public interface Sync { void notifyHandshake(Identity myself, Identity partner, SyncHandshakeSignal signal); } + interface PassphraseRequiredCallback { + String passphraseRequired(); + } public class DefaultCallback implements Sync.MessageToSendCallback, Sync.NotifyHandshakeCallback, Sync.NeedsFastPollCallback {