From a35e9af1de99499570f52c244fa508f2c3a07b52 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Tue, 21 Dec 2021 16:58:33 +0000 Subject: [PATCH] Add method for generating a unique ID, remove equals() methods. --- .../java/org/briarproject/bramble/api/UniqueId.java | 4 ++-- .../bramble/api/contact/PendingContactId.java | 6 ------ .../bramble/api/crypto/CryptoComponent.java | 3 +++ .../briarproject/bramble/api/identity/AuthorId.java | 5 ----- .../org/briarproject/bramble/api/sync/GroupId.java | 5 ----- .../org/briarproject/bramble/api/sync/MessageId.java | 5 ----- .../bramble/crypto/CryptoComponentImpl.java | 11 ++++++++++- .../org/briarproject/briar/api/client/SessionId.java | 5 ----- 8 files changed, 15 insertions(+), 29 deletions(-) diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/UniqueId.java b/bramble-api/src/main/java/org/briarproject/bramble/api/UniqueId.java index efa69358f..352f4ac8a 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/UniqueId.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/UniqueId.java @@ -6,14 +6,14 @@ import javax.annotation.concurrent.ThreadSafe; @ThreadSafe @NotNullByDefault -public abstract class UniqueId extends Bytes { +public class UniqueId extends Bytes { /** * The length of a unique identifier in bytes. */ public static final int LENGTH = 32; - protected UniqueId(byte[] id) { + public UniqueId(byte[] id) { super(id); if (id.length != LENGTH) throw new IllegalArgumentException(); } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/contact/PendingContactId.java b/bramble-api/src/main/java/org/briarproject/bramble/api/contact/PendingContactId.java index 535f8f531..6a601fbc7 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/contact/PendingContactId.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/contact/PendingContactId.java @@ -3,7 +3,6 @@ package org.briarproject.bramble.api.contact; import org.briarproject.bramble.api.UniqueId; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import javax.annotation.Nullable; import javax.annotation.concurrent.ThreadSafe; /** @@ -17,9 +16,4 @@ public class PendingContactId extends UniqueId { public PendingContactId(byte[] id) { super(id); } - - @Override - public boolean equals(@Nullable Object o) { - return o instanceof PendingContactId && super.equals(o); - } } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/crypto/CryptoComponent.java b/bramble-api/src/main/java/org/briarproject/bramble/api/crypto/CryptoComponent.java index feae36bbf..1a66d10ec 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/crypto/CryptoComponent.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/crypto/CryptoComponent.java @@ -1,5 +1,6 @@ package org.briarproject.bramble.api.crypto; +import org.briarproject.bramble.api.UniqueId; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import java.security.GeneralSecurityException; @@ -10,6 +11,8 @@ import javax.annotation.Nullable; @NotNullByDefault public interface CryptoComponent { + UniqueId generateUniqueId(); + SecretKey generateSecretKey(); SecureRandom getSecureRandom(); diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/identity/AuthorId.java b/bramble-api/src/main/java/org/briarproject/bramble/api/identity/AuthorId.java index b9793b477..6a9d5681d 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/identity/AuthorId.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/identity/AuthorId.java @@ -21,9 +21,4 @@ public class AuthorId extends UniqueId { public AuthorId(byte[] id) { super(id); } - - @Override - public boolean equals(Object o) { - return o instanceof AuthorId && super.equals(o); - } } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/GroupId.java b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/GroupId.java index d118ed9c0..6cfef9076 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/GroupId.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/GroupId.java @@ -20,9 +20,4 @@ public class GroupId extends UniqueId { public GroupId(byte[] id) { super(id); } - - @Override - public boolean equals(Object o) { - return o instanceof GroupId && super.equals(o); - } } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/MessageId.java b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/MessageId.java index 907b6e2d0..d25584eba 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/MessageId.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/MessageId.java @@ -27,9 +27,4 @@ public class MessageId extends UniqueId { public MessageId(byte[] id) { super(id); } - - @Override - public boolean equals(Object o) { - return o instanceof MessageId && super.equals(o); - } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/crypto/CryptoComponentImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/crypto/CryptoComponentImpl.java index 39ecef7a3..45f5471ad 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/crypto/CryptoComponentImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/crypto/CryptoComponentImpl.java @@ -8,6 +8,7 @@ import org.bouncycastle.crypto.CryptoException; import org.bouncycastle.crypto.Digest; import org.bouncycastle.crypto.digests.Blake2bDigest; import org.bouncycastle.crypto.digests.SHA3Digest; +import org.briarproject.bramble.api.UniqueId; import org.briarproject.bramble.api.crypto.AgreementPrivateKey; import org.briarproject.bramble.api.crypto.AgreementPublicKey; import org.briarproject.bramble.api.crypto.CryptoComponent; @@ -41,6 +42,7 @@ import javax.inject.Inject; import static java.lang.System.arraycopy; import static java.util.logging.Level.INFO; +import static java.util.logging.Logger.getLogger; import static org.briarproject.bramble.api.crypto.CryptoConstants.KEY_TYPE_AGREEMENT; import static org.briarproject.bramble.api.crypto.CryptoConstants.KEY_TYPE_SIGNATURE; import static org.briarproject.bramble.api.crypto.DecryptionResult.INVALID_CIPHERTEXT; @@ -54,7 +56,7 @@ import static org.briarproject.bramble.util.LogUtils.now; class CryptoComponentImpl implements CryptoComponent { private static final Logger LOG = - Logger.getLogger(CryptoComponentImpl.class.getName()); + getLogger(CryptoComponentImpl.class.getName()); private static final int SIGNATURE_KEY_PAIR_BITS = 256; private static final int STORAGE_IV_BYTES = 24; // 196 bits @@ -128,6 +130,13 @@ class CryptoComponentImpl implements CryptoComponent { } } + @Override + public UniqueId generateUniqueId() { + byte[] b = new byte[UniqueId.LENGTH]; + secureRandom.nextBytes(b); + return new UniqueId(b); + } + @Override public SecretKey generateSecretKey() { byte[] b = new byte[SecretKey.LENGTH]; diff --git a/briar-api/src/main/java/org/briarproject/briar/api/client/SessionId.java b/briar-api/src/main/java/org/briarproject/briar/api/client/SessionId.java index d569bdfec..07494d0f3 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/client/SessionId.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/client/SessionId.java @@ -16,9 +16,4 @@ public class SessionId extends UniqueId { public SessionId(byte[] id) { super(id); } - - @Override - public boolean equals(Object o) { - return o instanceof SessionId && super.equals(o); - } }