Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/bouncycastle/util/io')
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/BufferingOutputStream.java108
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/StreamOverflowException.java15
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/Streams.java145
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/TeeInputStream.java71
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/TeeOutputStream.java62
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/pem/PemGenerationException.java28
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/pem/PemHeader.java75
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/pem/PemObject.java64
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/pem/PemObjectGenerator.java16
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/pem/PemObjectParser.java19
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/pem/PemReader.java87
-rw-r--r--core/src/main/java/org/bouncycastle/util/io/pem/PemWriter.java137
12 files changed, 0 insertions, 827 deletions
diff --git a/core/src/main/java/org/bouncycastle/util/io/BufferingOutputStream.java b/core/src/main/java/org/bouncycastle/util/io/BufferingOutputStream.java
deleted file mode 100644
index 9d5fe142..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/BufferingOutputStream.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.bouncycastle.util.io;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-import org.bouncycastle.util.Arrays;
-
-/**
- * An output stream that buffers data to be feed into an encapsulated output stream.
- * <p>
- * The stream zeroes out the internal buffer on each flush.
- * </p>
- */
-public class BufferingOutputStream
- extends OutputStream
-{
- private final OutputStream other;
- private final byte[] buf;
-
- private int bufOff;
-
- /**
- * Create a buffering stream with the default buffer size (4096).
- *
- * @param other output stream to be wrapped.
- */
- public BufferingOutputStream(OutputStream other)
- {
- this.other = other;
- this.buf = new byte[4096];
- }
-
- /**
- * Create a buffering stream with a specified buffer size.
- *
- * @param other output stream to be wrapped.
- * @param bufferSize size in bytes for internal buffer.
- */
- public BufferingOutputStream(OutputStream other, int bufferSize)
- {
- this.other = other;
- this.buf = new byte[bufferSize];
- }
-
- public void write(byte[] bytes, int offset, int len)
- throws IOException
- {
- if (len < buf.length - bufOff)
- {
- System.arraycopy(bytes, offset, buf, bufOff, len);
- bufOff += len;
- }
- else
- {
- int gap = buf.length - bufOff;
-
- System.arraycopy(bytes, offset, buf, bufOff, gap);
- bufOff += gap;
-
- flush();
-
- offset += gap;
- len -= gap;
- while (len >= buf.length)
- {
- other.write(bytes, offset, buf.length);
- offset += buf.length;
- len -= buf.length;
- }
-
- if (len > 0)
- {
- System.arraycopy(bytes, offset, buf, bufOff, len);
- bufOff += len;
- }
- }
- }
-
- public void write(int b)
- throws IOException
- {
- buf[bufOff++] = (byte)b;
- if (bufOff == buf.length)
- {
- flush();
- }
- }
-
- /**
- * Flush the internal buffer to the encapsulated output stream. Zero the buffer contents when done.
- *
- * @throws IOException on error.
- */
- public void flush()
- throws IOException
- {
- other.write(buf, 0, bufOff);
- bufOff = 0;
- Arrays.fill(buf, (byte)0);
- }
-
- public void close()
- throws IOException
- {
- flush();
- other.close();
- }
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/StreamOverflowException.java b/core/src/main/java/org/bouncycastle/util/io/StreamOverflowException.java
deleted file mode 100644
index ed5518d7..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/StreamOverflowException.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.bouncycastle.util.io;
-
-import java.io.IOException;
-
-/**
- * Exception thrown when too much data is written to an InputStream
- */
-public class StreamOverflowException
- extends IOException
-{
- public StreamOverflowException(String msg)
- {
- super(msg);
- }
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/Streams.java b/core/src/main/java/org/bouncycastle/util/io/Streams.java
deleted file mode 100644
index 0dea2369..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/Streams.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package org.bouncycastle.util.io;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * Utility methods to assist with stream processing.
- */
-public final class Streams
-{
- private static int BUFFER_SIZE = 512;
-
- /**
- * Read stream till EOF is encountered.
- *
- * @param inStr stream to be emptied.
- * @throws IOException in case of underlying IOException.
- */
- public static void drain(InputStream inStr)
- throws IOException
- {
- byte[] bs = new byte[BUFFER_SIZE];
- while (inStr.read(bs, 0, bs.length) >= 0)
- {
- }
- }
-
- /**
- * Read stream fully, returning contents in a byte array.
- *
- * @param inStr stream to be read.
- * @return a byte array representing the contents of inStr.
- * @throws IOException in case of underlying IOException.
- */
- public static byte[] readAll(InputStream inStr)
- throws IOException
- {
- ByteArrayOutputStream buf = new ByteArrayOutputStream();
- pipeAll(inStr, buf);
- return buf.toByteArray();
- }
-
- /**
- * Read from inStr up to a maximum number of bytes, throwing an exception if more the maximum amount
- * of requested data is available.
- *
- * @param inStr stream to be read.
- * @param limit maximum number of bytes that can be read.
- * @return a byte array representing the contents of inStr.
- * @throws IOException in case of underlying IOException, or if limit is reached on inStr still has data in it.
- */
- public static byte[] readAllLimited(InputStream inStr, int limit)
- throws IOException
- {
- ByteArrayOutputStream buf = new ByteArrayOutputStream();
- pipeAllLimited(inStr, limit, buf);
- return buf.toByteArray();
- }
-
- /**
- * Fully read in buf's length in data, or up to EOF, whichever occurs first,
- *
- * @param inStr the stream to be read.
- * @param buf the buffer to be read into.
- * @return the number of bytes read into the buffer.
- * @throws IOException in case of underlying IOException.
- */
- public static int readFully(InputStream inStr, byte[] buf)
- throws IOException
- {
- return readFully(inStr, buf, 0, buf.length);
- }
-
- /**
- * Fully read in len's bytes of data into buf, or up to EOF, whichever occurs first,
- *
- * @param inStr the stream to be read.
- * @param buf the buffer to be read into.
- * @param off offset into buf to start putting bytes into.
- * @param len the number of bytes to be read.
- * @return the number of bytes read into the buffer.
- * @throws IOException in case of underlying IOException.
- */
- public static int readFully(InputStream inStr, byte[] buf, int off, int len)
- throws IOException
- {
- int totalRead = 0;
- while (totalRead < len)
- {
- int numRead = inStr.read(buf, off + totalRead, len - totalRead);
- if (numRead < 0)
- {
- break;
- }
- totalRead += numRead;
- }
- return totalRead;
- }
-
- /**
- * Write the full contents of inStr to the destination stream outStr.
- *
- * @param inStr source input stream.
- * @param outStr destination output stream.
- * @throws IOException in case of underlying IOException.
- */
- public static void pipeAll(InputStream inStr, OutputStream outStr)
- throws IOException
- {
- byte[] bs = new byte[BUFFER_SIZE];
- int numRead;
- while ((numRead = inStr.read(bs, 0, bs.length)) >= 0)
- {
- outStr.write(bs, 0, numRead);
- }
- }
-
- /**
- * Write up to limit bytes of data from inStr to the destination stream outStr.
- *
- * @param inStr source input stream.
- * @param limit the maximum number of bytes allowed to be read.
- * @param outStr destination output stream.
- * @throws IOException in case of underlying IOException, or if limit is reached on inStr still has data in it.
- */
- public static long pipeAllLimited(InputStream inStr, long limit, OutputStream outStr)
- throws IOException
- {
- long total = 0;
- byte[] bs = new byte[BUFFER_SIZE];
- int numRead;
- while ((numRead = inStr.read(bs, 0, bs.length)) >= 0)
- {
- total += numRead;
- if (total > limit)
- {
- throw new StreamOverflowException("Data Overflow");
- }
- outStr.write(bs, 0, numRead);
- }
- return total;
- }
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/TeeInputStream.java b/core/src/main/java/org/bouncycastle/util/io/TeeInputStream.java
deleted file mode 100644
index 96da1694..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/TeeInputStream.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.bouncycastle.util.io;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * An input stream which copies anything read through it to another stream.
- */
-public class TeeInputStream
- extends InputStream
-{
- private final InputStream input;
- private final OutputStream output;
-
- /**
- * Base constructor.
- *
- * @param input input stream to be wrapped.
- * @param output output stream to copy any input read to.
- */
- public TeeInputStream(InputStream input, OutputStream output)
- {
- this.input = input;
- this.output = output;
- }
-
- public int read(byte[] buf)
- throws IOException
- {
- return read(buf, 0, buf.length);
- }
-
- public int read(byte[] buf, int off, int len)
- throws IOException
- {
- int i = input.read(buf, off, len);
-
- if (i > 0)
- {
- output.write(buf, off, i);
- }
-
- return i;
- }
-
- public int read()
- throws IOException
- {
- int i = input.read();
-
- if (i >= 0)
- {
- output.write(i);
- }
-
- return i;
- }
-
- public void close()
- throws IOException
- {
- this.input.close();
- this.output.close();
- }
-
- public OutputStream getOutputStream()
- {
- return output;
- }
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/TeeOutputStream.java b/core/src/main/java/org/bouncycastle/util/io/TeeOutputStream.java
deleted file mode 100644
index 05b2b563..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/TeeOutputStream.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.bouncycastle.util.io;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-
-/**
- * An output stream which copies anything written into it to another stream.
- */
-public class TeeOutputStream
- extends OutputStream
-{
- private OutputStream output1;
- private OutputStream output2;
-
- /**
- * Base constructor.
- *
- * @param output1 the output stream that is wrapped.
- * @param output2 a secondary stream that anything written to output1 is also written to.
- */
- public TeeOutputStream(OutputStream output1, OutputStream output2)
- {
- this.output1 = output1;
- this.output2 = output2;
- }
-
- public void write(byte[] buf)
- throws IOException
- {
- this.output1.write(buf);
- this.output2.write(buf);
- }
-
- public void write(byte[] buf, int off, int len)
- throws IOException
- {
- this.output1.write(buf, off, len);
- this.output2.write(buf, off, len);
- }
-
- public void write(int b)
- throws IOException
- {
- this.output1.write(b);
- this.output2.write(b);
- }
-
- public void flush()
- throws IOException
- {
- this.output1.flush();
- this.output2.flush();
- }
-
- public void close()
- throws IOException
- {
- this.output1.close();
- this.output2.close();
- }
-} \ No newline at end of file
diff --git a/core/src/main/java/org/bouncycastle/util/io/pem/PemGenerationException.java b/core/src/main/java/org/bouncycastle/util/io/pem/PemGenerationException.java
deleted file mode 100644
index 63f61f2d..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/pem/PemGenerationException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.bouncycastle.util.io.pem;
-
-import java.io.IOException;
-
-/**
- * Exception thrown on failure to generate a PEM object.
- */
-public class PemGenerationException
- extends IOException
-{
- private Throwable cause;
-
- public PemGenerationException(String message, Throwable cause)
- {
- super(message);
- this.cause = cause;
- }
-
- public PemGenerationException(String message)
- {
- super(message);
- }
-
- public Throwable getCause()
- {
- return cause;
- }
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/pem/PemHeader.java b/core/src/main/java/org/bouncycastle/util/io/pem/PemHeader.java
deleted file mode 100644
index bbc6108e..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/pem/PemHeader.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.bouncycastle.util.io.pem;
-
-/**
- * Class representing a PEM header (name, value) pair.
- */
-public class PemHeader
-{
- private String name;
- private String value;
-
- /**
- * Base constructor.
- *
- * @param name name of the header property.
- * @param value value of the header property.
- */
- public PemHeader(String name, String value)
- {
- this.name = name;
- this.value = value;
- }
-
- public String getName()
- {
- return name;
- }
-
- public String getValue()
- {
- return value;
- }
-
- public int hashCode()
- {
- return getHashCode(this.name) + 31 * getHashCode(this.value);
- }
-
- public boolean equals(Object o)
- {
- if (!(o instanceof PemHeader))
- {
- return false;
- }
-
- PemHeader other = (PemHeader)o;
-
- return other == this || (isEqual(this.name, other.name) && isEqual(this.value, other.value));
- }
-
- private int getHashCode(String s)
- {
- if (s == null)
- {
- return 1;
- }
-
- return s.hashCode();
- }
-
- private boolean isEqual(String s1, String s2)
- {
- if (s1 == s2)
- {
- return true;
- }
-
- if (s1 == null || s2 == null)
- {
- return false;
- }
-
- return s1.equals(s2);
- }
-
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/pem/PemObject.java b/core/src/main/java/org/bouncycastle/util/io/pem/PemObject.java
deleted file mode 100644
index 606330d8..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/pem/PemObject.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.bouncycastle.util.io.pem;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * A generic PEM object - type, header properties, and byte content.
- */
-public class PemObject
- implements PemObjectGenerator
-{
- private static final List EMPTY_LIST = Collections.unmodifiableList(new ArrayList());
-
- private String type;
- private List headers;
- private byte[] content;
-
- /**
- * Generic constructor for object without headers.
- *
- * @param type pem object type.
- * @param content the binary content of the object.
- */
- public PemObject(String type, byte[] content)
- {
- this(type, EMPTY_LIST, content);
- }
-
- /**
- * Generic constructor for object with headers.
- *
- * @param type pem object type.
- * @param headers a list of PemHeader objects.
- * @param content the binary content of the object.
- */
- public PemObject(String type, List headers, byte[] content)
- {
- this.type = type;
- this.headers = Collections.unmodifiableList(headers);
- this.content = content;
- }
-
- public String getType()
- {
- return type;
- }
-
- public List getHeaders()
- {
- return headers;
- }
-
- public byte[] getContent()
- {
- return content;
- }
-
- public PemObject generate()
- throws PemGenerationException
- {
- return this;
- }
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/pem/PemObjectGenerator.java b/core/src/main/java/org/bouncycastle/util/io/pem/PemObjectGenerator.java
deleted file mode 100644
index 96646392..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/pem/PemObjectGenerator.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.bouncycastle.util.io.pem;
-
-/**
- * Base interface for generators of PEM objects.
- */
-public interface PemObjectGenerator
-{
- /**
- * Generate a PEM object.
- *
- * @return the generated object.
- * @throws PemGenerationException on failure.
- */
- PemObject generate()
- throws PemGenerationException;
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/pem/PemObjectParser.java b/core/src/main/java/org/bouncycastle/util/io/pem/PemObjectParser.java
deleted file mode 100644
index 933da6ab..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/pem/PemObjectParser.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.bouncycastle.util.io.pem;
-
-import java.io.IOException;
-
-/**
- * Base interface for parsers to convert PEM objects into specific objects.
- */
-public interface PemObjectParser
-{
- /**
- * Parse an object out of the PEM object passed in.
- *
- * @param obj the PEM object containing the details for the specific object.
- * @return a specific object represented by the PEM object.
- * @throws IOException on a parsing error.
- */
- Object parseObject(PemObject obj)
- throws IOException;
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/pem/PemReader.java b/core/src/main/java/org/bouncycastle/util/io/pem/PemReader.java
deleted file mode 100644
index 3045b4d0..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/pem/PemReader.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.bouncycastle.util.io.pem;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.bouncycastle.util.encoders.Base64;
-
-/**
- * A generic PEM reader, based on the format outlined in RFC 1421
- */
-public class PemReader
- extends BufferedReader
-{
- private static final String BEGIN = "-----BEGIN ";
- private static final String END = "-----END ";
-
- public PemReader(Reader reader)
- {
- super(reader);
- }
-
- public PemObject readPemObject()
- throws IOException
- {
- String line = readLine();
-
- while (line != null && !line.startsWith(BEGIN))
- {
- line = readLine();
- }
-
- if (line != null)
- {
- line = line.substring(BEGIN.length());
- int index = line.indexOf('-');
- String type = line.substring(0, index);
-
- if (index > 0)
- {
- return loadObject(type);
- }
- }
-
- return null;
- }
-
- private PemObject loadObject(String type)
- throws IOException
- {
- String line;
- String endMarker = END + type;
- StringBuffer buf = new StringBuffer();
- List headers = new ArrayList();
-
- while ((line = readLine()) != null)
- {
- if (line.indexOf(":") >= 0)
- {
- int index = line.indexOf(':');
- String hdr = line.substring(0, index);
- String value = line.substring(index + 1).trim();
-
- headers.add(new PemHeader(hdr, value));
-
- continue;
- }
-
- if (line.indexOf(endMarker) != -1)
- {
- break;
- }
-
- buf.append(line.trim());
- }
-
- if (line == null)
- {
- throw new IOException(endMarker + " not found");
- }
-
- return new PemObject(type, headers, Base64.decode(buf.toString()));
- }
-
-}
diff --git a/core/src/main/java/org/bouncycastle/util/io/pem/PemWriter.java b/core/src/main/java/org/bouncycastle/util/io/pem/PemWriter.java
deleted file mode 100644
index ccefa36e..00000000
--- a/core/src/main/java/org/bouncycastle/util/io/pem/PemWriter.java
+++ /dev/null
@@ -1,137 +0,0 @@
-package org.bouncycastle.util.io.pem;
-
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Iterator;
-
-import org.bouncycastle.util.encoders.Base64;
-
-/**
- * A generic PEM writer, based on RFC 1421
- */
-public class PemWriter
- extends BufferedWriter
-{
- private static final int LINE_LENGTH = 64;
-
- private final int nlLength;
- private char[] buf = new char[LINE_LENGTH];
-
- /**
- * Base constructor.
- *
- * @param out output stream to use.
- */
- public PemWriter(Writer out)
- {
- super(out);
-
- String nl = System.getProperty("line.separator");
- if (nl != null)
- {
- nlLength = nl.length();
- }
- else
- {
- nlLength = 2;
- }
- }
-
- /**
- * Return the number of bytes or characters required to contain the
- * passed in object if it is PEM encoded.
- *
- * @param obj pem object to be output
- * @return an estimate of the number of bytes
- */
- public int getOutputSize(PemObject obj)
- {
- // BEGIN and END boundaries.
- int size = (2 * (obj.getType().length() + 10 + nlLength)) + 6 + 4;
-
- if (!obj.getHeaders().isEmpty())
- {
- for (Iterator it = obj.getHeaders().iterator(); it.hasNext();)
- {
- PemHeader hdr = (PemHeader)it.next();
-
- size += hdr.getName().length() + ": ".length() + hdr.getValue().length() + nlLength;
- }
-
- size += nlLength;
- }
-
- // base64 encoding
- int dataLen = ((obj.getContent().length + 2) / 3) * 4;
-
- size += dataLen + (((dataLen + LINE_LENGTH - 1) / LINE_LENGTH) * nlLength);
-
- return size;
- }
-
- public void writeObject(PemObjectGenerator objGen)
- throws IOException
- {
- PemObject obj = objGen.generate();
-
- writePreEncapsulationBoundary(obj.getType());
-
- if (!obj.getHeaders().isEmpty())
- {
- for (Iterator it = obj.getHeaders().iterator(); it.hasNext();)
- {
- PemHeader hdr = (PemHeader)it.next();
-
- this.write(hdr.getName());
- this.write(": ");
- this.write(hdr.getValue());
- this.newLine();
- }
-
- this.newLine();
- }
-
- writeEncoded(obj.getContent());
- writePostEncapsulationBoundary(obj.getType());
- }
-
- private void writeEncoded(byte[] bytes)
- throws IOException
- {
- bytes = Base64.encode(bytes);
-
- for (int i = 0; i < bytes.length; i += buf.length)
- {
- int index = 0;
-
- while (index != buf.length)
- {
- if ((i + index) >= bytes.length)
- {
- break;
- }
- buf[index] = (char)bytes[i + index];
- index++;
- }
- this.write(buf, 0, index);
- this.newLine();
- }
- }
-
- private void writePreEncapsulationBoundary(
- String type)
- throws IOException
- {
- this.write("-----BEGIN " + type + "-----");
- this.newLine();
- }
-
- private void writePostEncapsulationBoundary(
- String type)
- throws IOException
- {
- this.write("-----END " + type + "-----");
- this.newLine();
- }
-}