Index: Base64.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/util/Base64.java,v retrieving revision 1.6 diff -u -r1.6 Base64.java --- Base64.java 7 Feb 2003 14:38:01 -0000 1.6 +++ Base64.java 15 Jul 2003 07:29:47 -0000 @@ -108,7 +108,7 @@ private static final int SIGN = -128; /** The padding character */ - private static final byte PAD = (byte) '='; + private static final byte PAD = (byte) 0x3d; // = /** The alphabet */ private static final byte [] BASE64_ALPHABET = new byte[BASELENGTH]; @@ -121,34 +121,25 @@ for (int i = 0; i < BASELENGTH; i++) { BASE64_ALPHABET[i] = -1; } - for (int i = 'Z'; i >= 'A'; i--) { - BASE64_ALPHABET[i] = (byte) (i - 'A'); + for (int i = 0x5a; i >= 0x41; i--) { // Z-A + BASE64_ALPHABET[i] = (byte) (i - 0x41); } - for (int i = 'z'; i >= 'a'; i--) { - BASE64_ALPHABET[i] = (byte) (i - 'a' + 26); + for (int i = 0x7a; i >= 0x61; i--) { // z-a + BASE64_ALPHABET[i] = (byte) (i - 0x61 + 26); } - for (int i = '9'; i >= '0'; i--) { - BASE64_ALPHABET[i] = (byte) (i - '0' + 52); + for (int i = 0x39; i >= 0x30; i--) { // 9-0 + BASE64_ALPHABET[i] = (byte) (i - 0x30 + 52); } - BASE64_ALPHABET['+'] = 62; - BASE64_ALPHABET['/'] = 63; - - for (int i = 0; i <= 25; i++) { - LOOKUP_BASE64_ALPHABET[i] = (byte) ('A' + i); - } - - for (int i = 26, j = 0; i <= 51; i++, j++) { - LOOKUP_BASE64_ALPHABET[i] = (byte) ('a' + j); + BASE64_ALPHABET[0x2b] = 62; // + + BASE64_ALPHABET[0x2f] = 63; // / + + //build the inverse table + for (int i = 0; i < BASE64_ALPHABET.length; i++) { + byte b = BASE64_ALPHABET[i]; + if (b != -1) LOOKUP_BASE64_ALPHABET[b] = (byte) i; } - - for (int i = 52, j = 0; i <= 61; i++, j++) { - LOOKUP_BASE64_ALPHABET[i] = (byte) ('0' + j); - } - LOOKUP_BASE64_ALPHABET[62] = (byte) '+'; - LOOKUP_BASE64_ALPHABET[63] = (byte) '/'; - } /**