summaryrefslogtreecommitdiff
path: root/gnu/javax
diff options
context:
space:
mode:
authorCasey Marshall <csm@gnu.org>2007-02-01 03:44:59 +0000
committerCasey Marshall <csm@gnu.org>2007-02-01 03:44:59 +0000
commitce100ef6fe93b9fc56baf46aa6f451d44d1f500a (patch)
tree00ea3e3c0b786b9ff46f464089683910934daeee /gnu/javax
parent79ccc08d35090f6858459825c9570039369b768f (diff)
downloadclasspath-ce100ef6fe93b9fc56baf46aa6f451d44d1f500a.tar.gz
2007-01-31 Casey Marshall <csm@gnu.org>
* gnu/javax/net/ssl/Base64.java: move to `gnu/java/util/Base64.java.' * gnu/javax/net/ssl/PrivateCredentials.java: clean up unused imports. (add): use `gnu.java.util.Base64.' * gnu/java/net/protocol/http/Request.java (authenticate): use `gnu.java.util.Base64.' * tools/gnu/classpath/tools/jarsigner/HashUtils.java (hashStream): likewise. * tools/gnu/classpath/tools/keytool/CertReqCmd.java (start): likewise. * tools/gnu/classpath/tools/keytool/ExportCmd.java (start): likewise. * tools/gnu/classpath/tools/keytool/ListCmd.java (printRFC1421): likewise. * gnu/java/net/Base64.java: removed. * gnu/java/security/util/Base64.java: removed.
Diffstat (limited to 'gnu/javax')
-rw-r--r--gnu/javax/net/ssl/Base64.java311
-rw-r--r--gnu/javax/net/ssl/PrivateCredentials.java5
2 files changed, 2 insertions, 314 deletions
diff --git a/gnu/javax/net/ssl/Base64.java b/gnu/javax/net/ssl/Base64.java
deleted file mode 100644
index 52989da69..000000000
--- a/gnu/javax/net/ssl/Base64.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/* Base64.java -- Base64 encoding and decoding.
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is a part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
-USA
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version.
-
---
-Base64 encoding derived from ISC's DHCP. Copyright notices from DHCP
-follow. See http://www.isc.org/products/DHCP/.
-
-Copyright (c) 1996 by Internet Software Consortium.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
-DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
-INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
---
-Portions Copyright (c) 1995 by International Business Machines, Inc.
-
-International Business Machines, Inc. (hereinafter called IBM) grants
-permission under its copyrights to use, copy, modify, and distribute
-this Software with or without fee, provided that the above copyright
-notice and all paragraphs of this notice appear in all copies, and
-that the name of IBM not be used in connection with the marketing of
-any product incorporating the Software or modifications thereof,
-without specific, written prior permission.
-
-To the extent it has a right to do so, IBM grants an immunity from
-suit under its patents, if any, for the use, sale or manufacture of
-products to the extent that such products are used for performing
-Domain Name System dynamic updates in TCP/IP networks by means of the
-Software. No immunity is granted for any product per se or for any
-other function of any product.
-
-THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
-DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE, EVEN IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH
-DAMAGES. */
-
-
-package gnu.javax.net.ssl;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-public final class Base64
-{
-
- // No constructor.
- private Base64() { }
-
- // Class methods.
- // -------------------------------------------------------------------------
-
- /** Base-64 characters. */
- private static final String BASE_64 =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
- /** Base-64 padding character. */
- private static final char BASE_64_PAD = '=';
-
- /**
- * Base64 encode a byte array, returning the returning string.
- *
- * @param buf The byte array to encode.
- * @param tw The total length of any line, 0 for unlimited.
- * @return <tt>buf</tt> encoded in Base64.
- */
- public static String encode(byte[] buf, int tw)
- {
- int srcLength = buf.length;
- byte[] input = new byte[3];
- int[] output = new int[4];
- StringBuffer out = new StringBuffer();
- int i = 0;
- int chars = 0;
-
- while (srcLength > 2)
- {
- input[0] = buf[i++];
- input[1] = buf[i++];
- input[2] = buf[i++];
- srcLength -= 3;
-
- output[0] = (input[0] & 0xff) >>> 2;
- output[1] = ((input[0] & 0x03) << 4) + ((input[1] & 0xff) >>> 4);
- output[2] = ((input[1] & 0x0f) << 2) + ((input[2] & 0xff) >>> 6);
- output[3] = input[2] & 0x3f;
-
- out.append(BASE_64.charAt(output[0]));
- if (tw > 0 && ++chars % tw == 0)
- {
- out.append("\n");
- }
- out.append(BASE_64.charAt(output[1]));
- if (tw > 0 && ++chars % tw == 0)
- {
- out.append("\n");
- }
- out.append(BASE_64.charAt(output[2]));
- if (tw > 0 && ++chars % tw == 0)
- {
- out.append("\n");
- }
- out.append(BASE_64.charAt(output[3]));
- if (tw > 0 && ++chars % tw == 0)
- {
- out.append("\n");
- }
- }
-
- if (srcLength != 0)
- {
- input[0] = input[1] = input[2] = 0;
- for (int j = 0; j < srcLength; j++)
- {
- input[j] = buf[i+j];
- }
- output[0] = (input[0] & 0xff) >>> 2;
- output[1] = ((input[0] & 0x03) << 4) + ((input[1] & 0xff) >>> 4);
- output[2] = ((input[1] & 0x0f) << 2) + ((input[2] & 0xff) >>> 6);
-
- out.append(BASE_64.charAt(output[0]));
- if (tw > 0 && ++chars % tw == 0)
- {
- out.append("\n");
- }
- out.append(BASE_64.charAt(output[1]));
- if (tw > 0 && ++chars % tw == 0)
- {
- out.append("\n");
- }
- if (srcLength == 1)
- {
- out.append(BASE_64_PAD);
- }
- else
- {
- out.append(BASE_64.charAt(output[2]));
- }
- if (tw > 0 && ++chars % tw == 0)
- {
- out.append("\n");
- }
- out.append(BASE_64_PAD);
- if (tw > 0 && ++chars % tw == 0)
- {
- out.append("\n");
- }
- }
- if (tw > 0)
- {
- out.append("\n");
- }
-
- return out.toString();
- }
-
- /**
- * Decode a Base-64 string into a byte array.
- *
- * @param b64 The Base-64 encoded string.
- * @return The decoded bytes.
- * @throws java.io.IOException If the argument is not a valid Base-64
- * encoding.
- */
- public static byte[] decode(String b64) throws IOException
- {
- ByteArrayOutputStream result = new ByteArrayOutputStream(b64.length() / 3);
- int state = 0, i;
- byte temp = 0;
-
- for (i = 0; i < b64.length(); i++)
- {
- if (Character.isWhitespace(b64.charAt(i)))
- {
- continue;
- }
- if (b64.charAt(i) == BASE_64_PAD)
- {
- break;
- }
-
- int pos = BASE_64.indexOf(b64.charAt(i));
- if (pos < 0)
- {
- throw new IOException("non-Base64 character " + b64.charAt(i));
- }
- switch (state)
- {
- case 0:
- temp = (byte) (pos - BASE_64.indexOf('A') << 2);
- state = 1;
- break;
-
- case 1:
- temp |= (byte) (pos - BASE_64.indexOf('A') >>> 4);
- result.write(temp);
- temp = (byte) ((pos - BASE_64.indexOf('A') & 0x0f) << 4);
- state = 2;
- break;
-
- case 2:
- temp |= (byte) ((pos - BASE_64.indexOf('A') & 0x7f) >>> 2);
- result.write(temp);
- temp = (byte) ((pos - BASE_64.indexOf('A') & 0x03) << 6);
- state = 3;
- break;
-
- case 3:
- temp |= (byte) (pos - BASE_64.indexOf('A') & 0xff);
- result.write(temp);
- state = 0;
- break;
-
- default:
- throw new Error("this statement should be unreachable");
- }
- }
-
- if (i < b64.length() && b64.charAt(i) == BASE_64_PAD)
- {
- switch (state)
- {
- case 0:
- case 1:
- throw new IOException("malformed Base64 sequence");
-
- case 2:
- for ( ; i < b64.length(); i++)
- {
- if (!Character.isWhitespace(b64.charAt(i)))
- {
- break;
- }
- }
- // We must see a second pad character here.
- if (b64.charAt(i) != BASE_64_PAD)
- {
- throw new IOException("malformed Base64 sequence");
- }
- i++;
- // Fall-through.
-
- case 3:
- i++;
- for ( ; i < b64.length(); i++)
- {
- // We should only see whitespace after this.
- if (!Character.isWhitespace(b64.charAt(i)))
- {
- System.err.println(b64.charAt(i));
- throw new IOException("malformed Base64 sequence");
- }
- }
- }
- }
- else
- {
- if (state != 0)
- {
- throw new IOException("malformed Base64 sequence");
- }
- }
-
- return result.toByteArray();
- }
-}
diff --git a/gnu/javax/net/ssl/PrivateCredentials.java b/gnu/javax/net/ssl/PrivateCredentials.java
index 442629309..4a37cd8b1 100644
--- a/gnu/javax/net/ssl/PrivateCredentials.java
+++ b/gnu/javax/net/ssl/PrivateCredentials.java
@@ -1,5 +1,5 @@
/* PrivateCredentials.java -- private key/certificate pairs.
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is a part of GNU Classpath.
@@ -38,8 +38,6 @@ exception statement from your version. */
package gnu.javax.net.ssl;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.EOFException;
import java.io.InputStream;
import java.io.IOException;
@@ -80,6 +78,7 @@ import gnu.javax.crypto.pad.WrongPaddingException;
import gnu.java.security.der.DER;
import gnu.java.security.der.DERReader;
+import gnu.java.util.Base64;
/**
* An instance of a manager factory parameters for holding a single