From 3d6109e6d9e0deb8aa2e1069e7c2b5fc2fcfe6fa Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Thu, 24 Aug 2017 02:00:53 -0500 Subject: [PATCH] Peer: Add a field for the optional pre-shared key Signed-off-by: Jason A. Donenfeld --- .../java/com/wireguard/config/Attribute.java | 1 + .../main/java/com/wireguard/config/Peer.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/app/src/main/java/com/wireguard/config/Attribute.java b/app/src/main/java/com/wireguard/config/Attribute.java index e00ebb4c..4ee4e9f5 100644 --- a/app/src/main/java/com/wireguard/config/Attribute.java +++ b/app/src/main/java/com/wireguard/config/Attribute.java @@ -17,6 +17,7 @@ enum Attribute { LISTEN_PORT("ListenPort"), MTU("MTU"), PERSISTENT_KEEPALIVE("PersistentKeepalive"), + PRE_SHARED_KEY("PresharedKey"), PRIVATE_KEY("PrivateKey"), PUBLIC_KEY("PublicKey"); diff --git a/app/src/main/java/com/wireguard/config/Peer.java b/app/src/main/java/com/wireguard/config/Peer.java index 4f6d88b2..718a5c3c 100644 --- a/app/src/main/java/com/wireguard/config/Peer.java +++ b/app/src/main/java/com/wireguard/config/Peer.java @@ -29,6 +29,7 @@ public class Peer extends BaseObservable implements Copyable, Observable, private final Config config; private String endpoint; private String persistentKeepalive; + private String preSharedKey; private String publicKey; public Peer(final Config config) { @@ -40,6 +41,7 @@ public class Peer extends BaseObservable implements Copyable, Observable, config = null; endpoint = in.readString(); persistentKeepalive = in.readString(); + preSharedKey = in.readString(); publicKey = in.readString(); } @@ -59,6 +61,7 @@ public class Peer extends BaseObservable implements Copyable, Observable, allowedIPs = source.allowedIPs; endpoint = source.endpoint; persistentKeepalive = source.persistentKeepalive; + preSharedKey = source.preSharedKey; publicKey = source.publicKey; notifyChange(); } @@ -83,6 +86,11 @@ public class Peer extends BaseObservable implements Copyable, Observable, return persistentKeepalive; } + @Bindable + public String getPreSharedKey() { + return preSharedKey; + } + @Bindable public String getPublicKey() { return publicKey; @@ -96,6 +104,8 @@ public class Peer extends BaseObservable implements Copyable, Observable, setEndpoint(key.parseFrom(line)); else if (key == Attribute.PERSISTENT_KEEPALIVE) setPersistentKeepalive(key.parseFrom(line)); + else if (key == Attribute.PRE_SHARED_KEY) + setPreSharedKey(key.parseFrom(line)); else if (key == Attribute.PUBLIC_KEY) setPublicKey(key.parseFrom(line)); else @@ -128,6 +138,13 @@ public class Peer extends BaseObservable implements Copyable, Observable, notifyPropertyChanged(BR.persistentKeepalive); } + public void setPreSharedKey(String preSharedKey) { + if (preSharedKey != null && preSharedKey.isEmpty()) + preSharedKey = null; + this.preSharedKey = preSharedKey; + notifyPropertyChanged(BR.preSharedKey); + } + public void setPublicKey(String publicKey) { if (publicKey != null && publicKey.isEmpty()) publicKey = null; @@ -143,6 +160,8 @@ public class Peer extends BaseObservable implements Copyable, Observable, sb.append(Attribute.ENDPOINT.composeWith(endpoint)); if (persistentKeepalive != null) sb.append(Attribute.PERSISTENT_KEEPALIVE.composeWith(persistentKeepalive)); + if (preSharedKey != null) + sb.append(Attribute.PRE_SHARED_KEY.composeWith(preSharedKey)); if (publicKey != null) sb.append(Attribute.PUBLIC_KEY.composeWith(publicKey)); return sb.toString(); @@ -153,6 +172,7 @@ public class Peer extends BaseObservable implements Copyable, Observable, dest.writeString(allowedIPs); dest.writeString(endpoint); dest.writeString(persistentKeepalive); + dest.writeString(preSharedKey); dest.writeString(publicKey); } }