is.logi.crypto.io
Class DecryptStream

java.lang.Object
  |
  +--java.io.InputStream
        |
        +--java.io.FilterInputStream
              |
              +--is.logi.crypto.io.DecryptStream

public class DecryptStream
extends java.io.FilterInputStream

Decrypt a stream of data encrypted with a corresponding EncryptStream ojbect.

The DecryptStream must be initialized with a NoninterKeyExServer object complementing the NoninterKeyExClient object used in the EncryptStream and a DecryptMode object complementing the EncryptMode object used in the DecryptStream.

Author:
Logi Ragnarsson (logir@hi.is)
See Also:
EncryptStream

Constructor Summary
DecryptStream(java.io.InputStream in, NoninterKeyExServer kex, DecryptMode dmode)
          Create a new DecryptStream.
 
Method Summary
 int available()
          Returns the number of bytes that can be read from this input stream without blocking.
 void execute(NoninterProtocolServer prot)
          Executes a non-interactive protocol.
 boolean markSupported()
          Returns false.
 int read()
          Reads the next byte of data from this input stream.
 int read(byte[] b, int off, int len)
          Reads up to len bytes of data from this input stream into an array of bytes.
 long skip(long n)
          Skips over and discards n bytes of data from the input stream.
 
Methods inherited from class java.io.FilterInputStream
close, mark, read, reset
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DecryptStream

public DecryptStream(java.io.InputStream in,
                     NoninterKeyExServer kex,
                     DecryptMode dmode)
              throws ProtocolException,
                     java.io.IOException
Create a new DecryptStream. Plaintext is written to out, dmode is used for decryption and if kex is not null it will be used to generate the session key or receive i from the client. See the various key-exchange server classes for details.

Note that if kex is not null, it controls which session key is used and dmode receives the session key when it has been decided. If kex is null, then dmode must be initialized with a key, and the same symmetric key or matching asymmetric key must be used on the client.

Throws:
ProtocolException - if a problem arises with the key-exchange protocol.
java.io.IOException - if problems arise with the underlying OutputStream.
Method Detail

execute

public void execute(NoninterProtocolServer prot)
             throws java.io.IOException,
                    ProtocolException
Executes a non-interactive protocol.
Throws:
ProtocolException - if there is a problem with the protocol.
java.io.IOException - if there is a problem with the underlying streams.

read

public int read()
         throws java.io.IOException
Reads the next byte of data from this input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
Overrides:
read in class java.io.FilterInputStream

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Reads up to len bytes of data from this input stream into an array of bytes. This method blocks until some input is available.
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

available

public int available()
              throws java.io.IOException
Returns the number of bytes that can be read from this input stream without blocking.
Overrides:
available in class java.io.FilterInputStream

markSupported

public boolean markSupported()
Returns false.
Overrides:
markSupported in class java.io.FilterInputStream


Copyright 1997-1999 Logi Ragnarsson