summaryrefslogtreecommitdiff
path: root/bcprov/src/main/java/org/bouncycastle/util/Arrays.java
diff options
context:
space:
mode:
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/util/Arrays.java')
-rw-r--r--bcprov/src/main/java/org/bouncycastle/util/Arrays.java88
1 files changed, 88 insertions, 0 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/util/Arrays.java b/bcprov/src/main/java/org/bouncycastle/util/Arrays.java
index 99325a9f..ae609280 100644
--- a/bcprov/src/main/java/org/bouncycastle/util/Arrays.java
+++ b/bcprov/src/main/java/org/bouncycastle/util/Arrays.java
@@ -103,6 +103,36 @@ public final class Arrays
return true;
}
+ public static boolean areEqual(
+ short[] a,
+ short[] b)
+ {
+ if (a == b)
+ {
+ return true;
+ }
+
+ if (a == null || b == null)
+ {
+ return false;
+ }
+
+ if (a.length != b.length)
+ {
+ return false;
+ }
+
+ for (int i = 0; i != a.length; i++)
+ {
+ if (a[i] != b[i])
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
/**
* A constant time equals comparison - does not terminate early if
* test will fail.
@@ -232,6 +262,44 @@ public final class Arrays
return true;
}
+ public static int compareUnsigned(byte[] a, byte[] b)
+ {
+ if (a == b)
+ {
+ return 0;
+ }
+ if (a == null)
+ {
+ return -1;
+ }
+ if (b == null)
+ {
+ return 1;
+ }
+ int minLen = Math.min(a.length, b.length);
+ for (int i = 0; i < minLen; ++i)
+ {
+ int aVal = a[i] & 0xFF, bVal = b[i] & 0xFF;
+ if (aVal < bVal)
+ {
+ return -1;
+ }
+ if (aVal > bVal)
+ {
+ return 1;
+ }
+ }
+ if (a.length < b.length)
+ {
+ return -1;
+ }
+ if (a.length > b.length)
+ {
+ return 1;
+ }
+ return 0;
+ }
+
public static boolean contains(short[] a, short n)
{
for (int i = 0; i < a.length; ++i)
@@ -954,6 +1022,26 @@ public final class Arrays
}
}
+ public static byte[] concatenate(byte[][] arrays)
+ {
+ int size = 0;
+ for (int i = 0; i != arrays.length; i++)
+ {
+ size += arrays[i].length;
+ }
+
+ byte[] rv = new byte[size];
+
+ int offSet = 0;
+ for (int i = 0; i != arrays.length; i++)
+ {
+ System.arraycopy(arrays[i], 0, rv, offSet, arrays[i].length);
+ offSet += arrays[i].length;
+ }
+
+ return rv;
+ }
+
public static int[] concatenate(int[] a, int[] b)
{
if (a == null)