diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java
index e5c35bf9551ab0cceb28a01a205210d60aa4c254..e2494e8307017224b8550705c88ee29123b6a4a5 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java
@@ -76,6 +76,7 @@ import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_ONLY_WHE
 import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_PORT;
 import static org.briarproject.bramble.api.plugin.TorConstants.PROP_ONION_V2;
 import static org.briarproject.bramble.api.plugin.TorConstants.PROP_ONION_V3;
+import static org.briarproject.bramble.plugin.tor.TorRendezvousCrypto.SEED_BYTES;
 import static org.briarproject.bramble.util.IoUtils.copyAndClose;
 import static org.briarproject.bramble.util.IoUtils.tryToClose;
 import static org.briarproject.bramble.util.LogUtils.logException;
@@ -613,15 +614,15 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener {
 	@Override
 	public RendezvousEndpoint createRendezvousEndpoint(KeyMaterialSource k,
 			boolean alice, ConnectionHandler incoming) {
-		byte[] aliceSeed = k.getKeyMaterial(32);
-		byte[] bobSeed = k.getKeyMaterial(32);
+		byte[] aliceSeed = k.getKeyMaterial(SEED_BYTES);
+		byte[] bobSeed = k.getKeyMaterial(SEED_BYTES);
 		byte[] localSeed = alice ? aliceSeed : bobSeed;
 		byte[] remoteSeed = alice ? bobSeed : aliceSeed;
 		String blob = torRendezvousCrypto.getPrivateKeyBlob(localSeed);
 		String localOnion = torRendezvousCrypto.getOnionAddress(localSeed);
 		String remoteOnion = torRendezvousCrypto.getOnionAddress(remoteSeed);
-		TransportProperties remote = new TransportProperties();
-		remote.put(PROP_ONION_V3, remoteOnion);
+		TransportProperties remoteProperties = new TransportProperties();
+		remoteProperties.put(PROP_ONION_V3, remoteOnion);
 		try {
 			ServerSocket ss = new ServerSocket();
 			ss.bind(new InetSocketAddress("127.0.0.1", 0));
@@ -646,7 +647,7 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener {
 
 				@Override
 				public TransportProperties getRemoteTransportProperties() {
-					return remote;
+					return remoteProperties;
 				}
 
 				@Override
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCrypto.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCrypto.java
index a7c2fe9f01e3a8fa62ebbeeb7d18d95e9cf723a0..a5b32630e804701fcca2ca7c58f9a00ebee734cf 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCrypto.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCrypto.java
@@ -2,6 +2,8 @@ package org.briarproject.bramble.plugin.tor;
 
 interface TorRendezvousCrypto {
 
+	static final int SEED_BYTES = 32;
+
 	String getOnionAddress(byte[] seed);
 
 	String getPrivateKeyBlob(byte[] seed);
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCryptoImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCryptoImpl.java
index aea31d84dc1b9f391424119c906ba0fd1a4c40fb..1545bcfba5c6f67c20eb365b85cf37065081cac4 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCryptoImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCryptoImpl.java
@@ -18,6 +18,9 @@ public class TorRendezvousCryptoImpl implements TorRendezvousCrypto {
 	private static final EdDSANamedCurveSpec CURVE_SPEC =
 			EdDSANamedCurveTable.getByName("Ed25519");
 
+	private static final byte HS_PROTOCOL_VERSION = 3;
+	private static final int CHECKSUM_BYTES = 2;
+
 	@Override
 	public String getOnionAddress(byte[] seed) {
 		EdDSAPrivateKeySpec spec = new EdDSAPrivateKeySpec(seed, CURVE_SPEC);
@@ -26,13 +29,13 @@ public class TorRendezvousCryptoImpl implements TorRendezvousCrypto {
 		byte[] label = ".onion checksum".getBytes(Charset.forName("US-ASCII"));
 		digest.update(label, 0, label.length);
 		digest.update(publicKey, 0, publicKey.length);
-		digest.update((byte) 3);
+		digest.update(HS_PROTOCOL_VERSION);
 		byte[] checksum = new byte[digest.getDigestSize()];
 		digest.doFinal(checksum, 0);
-		byte[] address = new byte[publicKey.length + 3];
+		byte[] address = new byte[publicKey.length + CHECKSUM_BYTES + 1];
 		arraycopy(publicKey, 0, address, 0, publicKey.length);
-		arraycopy(checksum, 0, address, publicKey.length, 2);
-		address[address.length - 1] = 3;
+		arraycopy(checksum, 0, address, publicKey.length, CHECKSUM_BYTES);
+		address[address.length - 1] = HS_PROTOCOL_VERSION;
 		return Base32.encode(address).toLowerCase();
 	}