Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Cryptix V3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## cryptix.util.mime
Class Base64InputStream

    java.lang.Object
      |
      +--java.io.InputStream
            |
            +--java.io.FilterInputStream
                  |
                  +--cryptix.util.mime.Base64InputStream

public class Base64InputStream
extends java.io.FilterInputStream

This class implements a BASE64 Character stream encoder as specified in RFC1521, part of the MIME specification as published by the Internet Engineering Task Force (IETF).

Unlike other encoding schemes there is nothing in this encoding that indicates where a buffer starts or ends. In other words, the encoded text simply starts at the first line and ends with the last one.

Copyright © 1995-1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.1.1.1 $

Since:
  Cryptix 2.2.2
Author:
  FH, Raif S. Naffah
See Also:
  `cryptix.mime.Base64OutputStream`, `cryptix.mime.Base64`

Fields inherited from class java.io.FilterInputStream
`in`

Constructor Summary
`Base64InputStream(java.io.InputStream is)` Create a Base64InputStream with no checksum.
`Base64InputStream(java.io.InputStream is, boolean check)` If check is true then look for and check a PGP-style checksum immediately after the base64 portion.
`Base64InputStream(java.io.InputStream is, java.util.zip.Checksum checksum, int length)` Creates a Base64InputStream that uses the given checksum.

Method Summary
`int` | `available()` Returns the number of bytes that can be guaranteed to be read from this input stream without blocking.
`void` | `close()`
`void` | `mark(int readlimit)` Does nothing, since this class does not support mark/reset.
`boolean` | `markSupported()` Tests if this input stream supports the `mark` and `reset` methods of InputStream, which it does not.
`int` | `read()` Parse input in fours, producing three bytes to outBuf.
`int` | `read(byte[] buffer, int offset, int length)`
`void` | `reset()` Always throws an IOException, since this class does not support mark/reset.
`long` | `skip(long n)` Skips over and discards n bytes of data from the input stream.

Methods inherited from class java.io.FilterInputStream
`read`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Base64InputStream

    public Base64InputStream(java.io.InputStream is,
                             boolean check)

  If check is true then look for and check a PGP-style checksum immediately after the base64 portion.
  See Also:
    `PRZ24`

### Base64InputStream

    public Base64InputStream(java.io.InputStream is)

  Create a Base64InputStream with no checksum.

### Base64InputStream

    public Base64InputStream(java.io.InputStream is,
                             java.util.zip.Checksum checksum,
                             int length)

  Creates a Base64InputStream that uses the given checksum. The checksum will be length bytes long, where 0 <= length <= 8.

Method Detail

### close

    public void close()
               throws java.io.IOException

  Overrides:
    close in class java.io.FilterInputStream

### read

    public int read()
             throws java.io.IOException

  Parse input in fours, producing three bytes to outBuf. Should only see whitespace or illegal characters on a quadruplet boundary.

  When using a checksum, wait for a "=" as the first character of a quadruplet; read sufficient quadruplets for `crcLength` bytes, and compare with our crc. If the end of the stream is reached at a bad spot, throw EOFException.

  If we get the first illegal character on a four byte boundary, return -1 (Java EOF convention). Iff the underlying input stream is an instanceof `PushbackInputStream`, the illegal character will be pushed back.

  Overrides:
    read in class java.io.FilterInputStream
  See Also:
    `PushbackInputStream`

### read

    public int read(byte[] buffer,
                    int offset,
                    int length)
             throws java.io.IOException

  Overrides:
    read in class java.io.FilterInputStream

### skip

    public long skip(long n)
              throws java.io.IOException

  Skips over and discards n bytes of data from the input stream. The `skip` method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly 0. The actual number of bytes skipped is returned.
  Overrides:
    skip in class java.io.FilterInputStream
  Parameters:
    `n` - the number of bytes to be skipped.
  Returns:
    the actual number of bytes skipped.
  Throws:
    java.io.IOException - if an I/O error occurs.

### available

    public int available()
                  throws java.io.IOException

  Returns the number of bytes that can be guaranteed to be read from this input stream without blocking. For a Base64InputStream, this is sometimes 0 even when data is available, because we do not read ahead far enough to determine whether the next character is the start of the checksum.
  Overrides:
    available in class java.io.FilterInputStream
  Throws:
    java.io.IOException - if an I/O error occurs.

### mark

    public void mark(int readlimit)

  Does nothing, since this class does not support mark/reset.
  Overrides:
    mark in class java.io.FilterInputStream

### reset

    public void reset()
               throws java.io.IOException

  Always throws an IOException, since this class does not support mark/reset.
  Overrides:
    reset in class java.io.FilterInputStream

### markSupported

    public boolean markSupported()

  Tests if this input stream supports the `mark` and `reset` methods of InputStream, which it does not.
  Overrides:
    markSupported in class java.io.FilterInputStream
  Returns:
    `false`, since this class does not support the `mark` and `reset` methods.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Cryptix V3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (C) 1995-2000 The Cryptix Foundation Ltd. All rights reserved.