From 65074a54140a3fb0c48ba57937a0402bfe7eeaca Mon Sep 17 00:00:00 2001 From: costin Date: Tue, 25 May 2010 06:21:36 +0000 Subject: [PATCH] Broken, not used. Source in o.a.t.util.buf was removed as well. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@947933 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/tomcat/lite/util/Base64.java | 272 --------------------- 1 file changed, 272 deletions(-) delete mode 100644 modules/tomcat-lite/java/org/apache/tomcat/lite/util/Base64.java diff --git a/modules/tomcat-lite/java/org/apache/tomcat/lite/util/Base64.java b/modules/tomcat-lite/java/org/apache/tomcat/lite/util/Base64.java deleted file mode 100644 index b10512ced..000000000 --- a/modules/tomcat-lite/java/org/apache/tomcat/lite/util/Base64.java +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package org.apache.tomcat.lite.util; - -import java.util.logging.Level; -import java.util.logging.Logger; - - -/** - * This class provides encode/decode for RFC 2045 Base64 as - * defined by RFC 2045, N. Freed and N. Borenstein. - * RFC 2045: Multipurpose Internet Mail Extensions (MIME) - * Part One: Format of Internet Message Bodies. Reference - * 1996 Available at: http://www.ietf.org/rfc/rfc2045.txt - * This class is used by XML Schema binary format validation - * - * @author Jeffrey Rodriguez - * @version $Id$ - */ - -public final class Base64 { - - - private static Logger log= - Logger.getLogger( Base64.class.getName() ); - - static private final int BASELENGTH = 255; - static private final int LOOKUPLENGTH = 63; - static private final int TWENTYFOURBITGROUP = 24; - static private final int EIGHTBIT = 8; - static private final int SIXTEENBIT = 16; - static private final int SIXBIT = 6; - static private final int FOURBYTE = 4; - - - static private final byte PAD = ( byte ) '='; - static private byte [] base64Alphabet = new byte[BASELENGTH]; - static private byte [] lookUpBase64Alphabet = new byte[LOOKUPLENGTH + 1]; - - static { - - for (int i = 0; i= 'A'; i-- ) { - base64Alphabet[i] = (byte) (i-'A'); - } - for ( int i = 'z'; i>= 'a'; i--) { - base64Alphabet[i] = (byte) ( i-'a' + 26); - } - - for ( int i = '9'; i >= '0'; i--) { - base64Alphabet[i] = (byte) (i-'0' + 52); - } - - base64Alphabet['+'] = 62; - base64Alphabet['/'] = 63; - String lookupString = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + - "0123456789+/"; - - for (int i = 0; i < lookupString.length(); i++ ) { - lookUpBase64Alphabet[i] = (byte) lookupString.charAt(i); - } - } - - - static boolean isBase64( byte octect ) { - //shall we ignore white space? JEFF?? - return(octect == PAD || base64Alphabet[octect] != -1 ); - } - - - static boolean isArrayByteBase64( byte[] arrayOctect ) { - int length = arrayOctect.length; - if ( length == 0 ) - return false; - for ( int i=0; i < length; i++ ) { - if ( Base64.isBase64( arrayOctect[i] ) == false) - return false; - } - return true; - } - - /** - * Encodes hex octects into Base64 - * - * @param binaryData Array containing binaryData - * @return Encoded Base64 array - */ - public static byte[] encode( byte[] binaryData ) { - int lengthDataBits = binaryData.length*EIGHTBIT; - int fewerThan24bits = lengthDataBits%TWENTYFOURBITGROUP; - int numberTriplets = lengthDataBits/TWENTYFOURBITGROUP; - byte encodedData[] = null; - - - if ( fewerThan24bits != 0 ) //data not divisible by 24 bit - encodedData = new byte[ (numberTriplets + 1 )*4 ]; - else // 16 or 8 bit - encodedData = new byte[ numberTriplets*4 ]; - - int k=0, l=0, b1=0,b2=0,b3=0; - - int encodedIndex = 0; - int dataIndex = 0; - int i = 0; - for ( i = 0; i>2 ]; - encodedData[encodedIndex+1] = lookUpBase64Alphabet[(b2 >>4 ) | -( k<<4 )]; - encodedData[encodedIndex+2] = lookUpBase64Alphabet[ (l <<2 ) | -( b3>>6)]; - encodedData[encodedIndex+3] = lookUpBase64Alphabet[ b3 & 0x3f ]; - } - - // form integral number of 6-bit groups - dataIndex = i*3; - encodedIndex = i*4; - if (fewerThan24bits == EIGHTBIT ) { - b1 = binaryData[dataIndex]; - k = (byte) ( b1 &0x03 ); - encodedData[encodedIndex] = lookUpBase64Alphabet[ b1 >>2 ]; - encodedData[encodedIndex + 1] = lookUpBase64Alphabet[ k<<4 ]; - encodedData[encodedIndex + 2] = PAD; - encodedData[encodedIndex + 3] = PAD; - } else if ( fewerThan24bits == SIXTEENBIT ) { - - b1 = binaryData[dataIndex]; - b2 = binaryData[dataIndex +1 ]; - l = ( byte ) ( b2 &0x0f ); - k = ( byte ) ( b1 &0x03 ); - encodedData[encodedIndex] = lookUpBase64Alphabet[ b1 >>2 ]; - encodedData[encodedIndex + 1] = lookUpBase64Alphabet[ (b2 >>4 ) -| ( k<<4 )]; - encodedData[encodedIndex + 2] = lookUpBase64Alphabet[ l<<2 ]; - encodedData[encodedIndex + 3] = PAD; - } - return encodedData; - } - - public byte[] decode(String enc) { - return decode(enc.getBytes()); - } - - /** - * Decodes Base64 data into octects - * - * @param base64Data Byte array containing Base64 data - * @return Array containind decoded data. - */ - public static byte[] decode( byte[] base64Data ) { - int numberQuadruple = base64Data.length/FOURBYTE; - byte decodedData[] = null; - byte b1=0,b2=0,b3=0, b4=0, marker0=0, marker1=0; - - // Throw away anything not in base64Data - // Adjust size - - int encodedIndex = 0; - int dataIndex = 0; - decodedData = new byte[ numberQuadruple*3 + 1 ]; - - for (int i = 0; i>4 ) ; - decodedData[encodedIndex+1] = (byte)(((b2 & 0xf)<<4 ) |( -(b3>>2) & 0xf) ); - decodedData[encodedIndex+2] = (byte)( b3<<6 | b4 ); - } else if ( marker0 == PAD ) { //Two PAD e.g. 3c[Pad][Pad] - decodedData[encodedIndex] = (byte)( b1 <<2 | b2>>4 ) ; - decodedData[encodedIndex+1] = (byte)((b2 & 0xf)<<4 ); - decodedData[encodedIndex+2] = (byte) 0; - } else if ( marker1 == PAD ) { //One PAD e.g. 3cQ[Pad] - b3 = base64Alphabet[ marker0 ]; - - decodedData[encodedIndex] = (byte)( b1 <<2 | b2>>4 ); - decodedData[encodedIndex+1] = (byte)(((b2 & 0xf)<<4 ) |( -(b3>>2) & 0xf) ); - decodedData[encodedIndex+2] = (byte)( b3<<6); - } - encodedIndex += 3; - } - return decodedData; - - } - - static final int base64[]= { - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 63, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64, - 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64, - 64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64 - }; - - public static String base64Decode( String orig ) { - char chars[]=orig.toCharArray(); - StringBuffer sb=new StringBuffer(); - int i=0; - - int shift = 0; // # of excess bits stored in accum - int acc = 0; - - for (i=0; i= 64 ) { - if( chars[i] != '=' ) - if (log.isLoggable(Level.INFO)) - log.info("Wrong char in base64: " + chars[i]); - } else { - acc= ( acc << 6 ) | v; - shift += 6; - if ( shift >= 8 ) { - shift -= 8; - sb.append( (char) ((acc >> shift) & 0xff)); - } - } - } - return sb.toString(); - } - - -} - -- 2.11.0