/* 
 * Copyright 2000-2001,2004 The Apache Software Foundation. 
 *  
 * Licensed 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.jetspeed.util; 
 
import javax.mail.internet.MimeUtility; 
import java.io.ByteArrayInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.InputStream; 
 
/** 
 * Simple Base64 string decoding function 
 * @author Jason Borden <[email protected]> 
 * 
 * This class was copied from the jakarta-james project. 
 * The only change made, besides comments, is the package name. 
 * This class orgininated in org.apache.james.util as version 1.3 
 * which was committed by darrel on 2002/01/18 02:48:39 
 *  
 * $Id: Base64.java,v 1.5 2004/02/23 03:23:42 jford Exp $ 
 * Committed on $Date: 2004/02/23 03:23:42 $ by: $Name: JETSPEED-RELEASE-1-5 $  
 */ 
 
public class Base64 { 
 
    public static String decodeAsString(String b64string) throws Exception 
    { 
        return new String(decodeAsByteArray(b64string)); 
    } 
 
    public static byte[] decodeAsByteArray(String b64string) throws Exception 
    { 
        InputStream in = MimeUtility.decode(new ByteArrayInputStream( 
                         b64string.getBytes()), "base64"); 
 
        ByteArrayOutputStream out = new ByteArrayOutputStream(); 
         
        while(true) 
        { 
            int b = in.read(); 
            if (b == -1) break; 
            else out.write(b); 
        } 
     
        return out.toByteArray(); 
    } 
 
    public static String encodeAsString(String plaintext) throws Exception 
    { 
        return encodeAsString(plaintext.getBytes()); 
    } 
 
    public static String encodeAsString(byte[] plaindata) throws Exception 
    { 
        ByteArrayOutputStream out = new ByteArrayOutputStream(); 
        ByteArrayOutputStream inStream = new ByteArrayOutputStream(); 
 
        inStream.write(plaindata, 0, plaindata.length); 
 
        // pad 
        if ((plaindata.length % 3 ) == 1) 
        { 
            inStream.write(0); 
            inStream.write(0); 
        } 
        else if((plaindata.length % 3 ) == 2) 
        { 
            inStream.write(0); 
        } 
 
        inStream.writeTo(MimeUtility.encode(out, "base64")); 
        return out.toString(); 
    } 
 
} 
 
    
     
     
     
     
   |     
 
 |