BigIntegers.java revision b61a96e7ef1a78acf013bbf08fe537e5b5f129ca
1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.util; 2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 3b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport java.math.BigInteger; 4b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 5b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam/** 6b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * BigInteger utilities. 7b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic final class BigIntegers 9b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam{ 10b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * Return the passed in value as an unsigned byte array. 12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * 13b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @param value value to be converted. 14b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @return a byte array without a leading zero byte if present in the signed encoding. 15b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 16b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static byte[] asUnsignedByteArray( 17b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam BigInteger value) 18b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 19b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam byte[] bytes = value.toByteArray(); 20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 21b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam if (bytes[0] == 0) 22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 23b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam byte[] tmp = new byte[bytes.length - 1]; 24b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 25b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam System.arraycopy(bytes, 1, tmp, 0, tmp.length); 26b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 27b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return tmp; 28b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 29b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 30b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return bytes; 31b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 32b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam} 33