diff options
| author | Casey Marshall <csm@gnu.org> | 2004-11-07 20:27:47 +0000 |
|---|---|---|
| committer | Casey Marshall <csm@gnu.org> | 2004-11-07 20:27:47 +0000 |
| commit | c7beb2e15aab929442532def7adc6eca7478246d (patch) | |
| tree | bf76c22a3bbec8c0700a1d147c25780bd69a1e67 /gnu/java/io/Base64InputStream.java | |
| parent | d73d0fa5384f57abcfe473482296d4604662571a (diff) | |
| download | classpath-c7beb2e15aab929442532def7adc6eca7478246d.tar.gz | |
2004-11-07 Casey Marshall <csm@gnu.org>
Signed JAR file support.
* java/net/URLClassLoader.java
(JarURLResource.getCertificates): re-read jar entry to ensure
certificates are picked up.
(findClass): fill in class `signers' field, too.
* java/util/jar/JarFile.java (META_INF): new constant.
(PKCS7_DSA_SUFFIX): new constant.
(PKCS7_RSA_SUFFIX): new constant.
(DIGEST_KEY_SUFFIX): new constant.
(SF_SUFFIX): new constant.
(MD2_OID): new constant.
(MD4_OID): new constant.
(MD5_OID): new constant.
(SHA1_OID): new constant.
(DSA_ENCRYPTION_OID): new constant.
(RSA_ENCRYPTION_OID): new constant.
(signaturesRead): new field.
(verified): new field.
(entryCerts): new field.
(DEBUG): new constant.
(debug): new method.
(JarEnumeration.nextElement): fill in entry certificates, read
signatures if they haven't been read.
(getEntry): likewise.
(getInputStream): verify stream if it hasn't been verified
yet.
(readSignatures): new method.
(verify): new method.
(verifyHashes): new method.
(readManifestEntry): new method.
(EntryInputStream): new class.
* java/util/zip/InflaterInputStream.java
Don't defer to underlying stream for mark/reset.
(markSupported): new method; return `false'.
(mark): new method.
(reset): new method.
* gnu/java/io/Base64InputStream.java (decode): new class
method.
* gnu/java/security/der/DERReader.java don't make class
final.
(in): made protected.
(encBuf): likewise.
(readLength): likewise.
* gnu/java/security/ber/BER.java,
* gnu/java/security/ber/BEREncodingException.java,
* gnu/java/security/ber/BERReader.java,
* gnu/java/security/ber/BERValue.java,
* gnu/java/security/pkcs/PKCS7SignedData.java,
* gnu/java/security/pkcs/SignerInfo.java:
new files.
Diffstat (limited to 'gnu/java/io/Base64InputStream.java')
| -rw-r--r-- | gnu/java/io/Base64InputStream.java | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/gnu/java/io/Base64InputStream.java b/gnu/java/io/Base64InputStream.java index 3780e9528..617e83151 100644 --- a/gnu/java/io/Base64InputStream.java +++ b/gnu/java/io/Base64InputStream.java @@ -1,5 +1,5 @@ /* Base64InputStream.java -- base-64 input stream. - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.java.io; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; @@ -90,6 +92,30 @@ public class Base64InputStream extends FilterInputStream eof = false; } + // Class method. + // ------------------------------------------------------------------------ + + /** + * Decode a single Base-64 string to a byte array. + * + * @param base64 The Base-64 encoded data. + * @return The decoded bytes. + * @throws IOException If the given data do not compose a valid Base-64 + * sequence. + */ + public static byte[] decode(String base64) throws IOException + { + Base64InputStream in = + new Base64InputStream(new ByteArrayInputStream(base64.getBytes())); + ByteArrayOutputStream out = + new ByteArrayOutputStream((int) (base64.length() / 0.666)); + byte[] buf = new byte[1024]; + int len; + while ((len = in.read(buf)) != -1) + out.write(buf, 0, len); + return out.toByteArray(); + } + // Instance methods. // ------------------------------------------------------------------------ |
