]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/manager/groups/GroupLinkPassword.java
Move group classes to separate package
[signal-cli] / src / main / java / org / asamk / signal / manager / groups / GroupLinkPassword.java
diff --git a/src/main/java/org/asamk/signal/manager/groups/GroupLinkPassword.java b/src/main/java/org/asamk/signal/manager/groups/GroupLinkPassword.java
new file mode 100644 (file)
index 0000000..41be672
--- /dev/null
@@ -0,0 +1,42 @@
+package org.asamk.signal.manager.groups;
+
+import org.asamk.signal.manager.KeyUtils;
+
+import java.util.Arrays;
+
+public final class GroupLinkPassword {
+
+    private static final int SIZE = 16;
+
+    private final byte[] bytes;
+
+    public static GroupLinkPassword createNew() {
+        return new GroupLinkPassword(KeyUtils.getSecretBytes(SIZE));
+    }
+
+    public static GroupLinkPassword fromBytes(byte[] bytes) {
+        return new GroupLinkPassword(bytes);
+    }
+
+    private GroupLinkPassword(byte[] bytes) {
+        this.bytes = bytes;
+    }
+
+    public byte[] serialize() {
+        return bytes.clone();
+    }
+
+    @Override
+    public boolean equals(Object other) {
+        if (!(other instanceof GroupLinkPassword)) {
+            return false;
+        }
+
+        return Arrays.equals(bytes, ((GroupLinkPassword) other).bytes);
+    }
+
+    @Override
+    public int hashCode() {
+        return Arrays.hashCode(bytes);
+    }
+}