Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 package org.mozilla.gecko.sync.jpake;
7 import java.math.BigInteger;
9 public class BigIntegerHelper {
11 public static byte[] BigIntegerToByteArrayWithoutSign(BigInteger value) {
12 byte[] bytes = value.toByteArray();
13 if (bytes[0] == (byte) 0) {
14 bytes = copyArray(bytes, 1, bytes.length - 1);
15 }
16 return bytes;
17 }
19 private static byte[] copyArray(byte[] original, int start, int length) {
20 byte[] copy = new byte[length];
21 System.arraycopy(original, start, copy, 0,
22 Math.min(original.length - start, length));
23 return copy;
24 }
26 /**
27 * Convert an array of bytes to a non-negative big integer.
28 */
29 public static BigInteger ByteArrayToBigIntegerWithoutSign(byte[] array) {
30 return new BigInteger(1, array);
31 }
33 /**
34 * Convert a big integer into hex string. If the length is not even, add an
35 * '0' character in the beginning to make it even.
36 */
37 public static String toEvenLengthHex(BigInteger value) {
38 String result = value.toString(16);
39 if (result.length() % 2 != 0) {
40 result = "0" + result;
41 }
42 return result;
43 }
44 }