For the latest news and information visit The GNU Crypto project

## gnu.crypto.sasl
Class InputBuffer

    java.lang.Object
      |
      +--gnu.crypto.sasl.InputBuffer

public class InputBuffer
extends java.lang.Object

The implementation of an incoming SASL buffer.

The data elements this class caters for are described in [1].

References:

1. Secure Remote Password Authentication Mechanism;
   draft-burdis-cat-srp-sasl-09,
   Keith Burdis and Raïf S. Naffah.

Field Summary
`protected java.io.ByteArrayInputStream` `in` The internal buffer stream containing the buffer's contents.
`protected int` `length` The length of the buffer, according to its header.

Constructor Summary
`InputBuffer(byte[] frame)` Constructs a SASL buffer given the buffer's encoded form, including its header bytes.

Method Summary
`byte[]` `getEOS()` Decodes a SASL EOS from the current buffer.
`static InputBuffer` `getInstance(byte[] raw)` Returns an instance of a SASL buffer given the buffer's encoded contents, excluding the buffer's header bytes.
`static InputBuffer` `getInstance(byte[] raw, int offset, int len)` Returns an instance of a SASL buffer given the buffer's encoded contents, excluding the buffer's header bytes.
`java.math.BigInteger` `getMPI()` Decodes a SASL MPI from the current buffer.
`byte[]` `getOS()` Decodes a SASL OS from the current buffer.
`long` `getScalar(int count)` Decodes a SASL scalar quantity, `count`-octet long, from the current buffer.
`java.lang.String` `getText()` Decodes a SASL Text from the current buffer.
`boolean` `hasMoreElements()`
`static int` `twoBytesToLength(byte[] b)` Converts two octets into the number that they represent.

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

Field Detail

### in

    protected java.io.ByteArrayInputStream in

  The internal buffer stream containing the buffer's contents.

### length

    protected int length

  The length of the buffer, according to its header.

Constructor Detail

### InputBuffer

    public InputBuffer(byte[] frame)
                throws SaslEncodingException

  Constructs a SASL buffer given the buffer's encoded form, including its header bytes.

Parameters:
  `frame` - the encoded form, including the header bytes, of a SASL buffer.
Throws:
  `SaslEncodingException` - if the buffer is malformed.

Method Detail

### getInstance

    public static InputBuffer getInstance(byte[] raw)

  Returns an instance of a SASL buffer given the buffer's encoded contents, excluding the buffer's header bytes.

  Calls the method with the same name and three arguments as: `getInstance(raw, 0, raw.length)`.

  Parameters:
    `raw` - the encoded form, excluding the header bytes, of a SASL buffer.
  Returns:
    a new instance of `InputBuffer`.

### getInstance

    public static InputBuffer getInstance(byte[] raw,
                                          int offset,
                                          int len)

  Returns an instance of a SASL buffer given the buffer's encoded contents, excluding the buffer's header bytes.

  Parameters:
    `raw` - the encoded form, excluding the header bytes, of a SASL buffer.
    `offset` - offset where to start using raw bytes from.
    `len` - number of bytes to use.
  Returns:
    a new instance of `InputBuffer`.

### twoBytesToLength

    public static int twoBytesToLength(byte[] b)
                                throws SaslEncodingException

  Converts two octets into the number that they represent.

  Parameters:
    `b` - the two octets.
  Returns:
    the length.
    `SaslEncodingException`

### hasMoreElements

    public boolean hasMoreElements()

### getScalar

    public long getScalar(int count)
                   throws java.io.IOException

  Decodes a SASL scalar quantity, `count`-octet long, from the current buffer.

  Parameters:
    `count` - the number of octets of this scalar quantity.
  Returns:
    a native representation of a SASL scalar (unsigned integer) quantity.
  Throws:
    `SaslEncodingException` - if an encoding exception occurs during the operation.
    `java.io.IOException` - if any other I/O exception occurs during the operation.

### getOS

    public byte[] getOS()
                 throws java.io.IOException

  Decodes a SASL OS from the current buffer.

  Returns:
    a native representation of a SASL OS.
  Throws:
    `SaslEncodingException` - if an encoding exception occurs during the operation.
    `java.io.IOException` - if any other I/O exception occurs during the operation.

### getEOS

    public byte[] getEOS()
                  throws java.io.IOException

  Decodes a SASL EOS from the current buffer.

  Returns:
    a native representation of a SASL EOS.
  Throws:
    `SaslEncodingException` - if an encoding exception occurs during the operation.
    `java.io.IOException` - if any other I/O exception occurs during the operation.

### getMPI

    public java.math.BigInteger getMPI()
                                throws java.io.IOException

  Decodes a SASL MPI from the current buffer.

  Returns:
    a native representation of a SASL MPI.
  Throws:
    `SaslEncodingException` - if an encoding exception occurs during the operation.
    `java.io.IOException` - if any other I/O exception occurs during the operation.

### getText

    public java.lang.String getText()
                             throws java.io.IOException

  Decodes a SASL Text from the current buffer.

  Returns:
    a native representation of a SASL Text.
  Throws:
    `SaslEncodingException` - if an encoding exception occurs during the operation.
    `SaslEncodingException` - if the UTF-8 character encoding is not supported on this platform.
    `java.io.IOException` - if any other I/O exception occurs during the operation.

For the latest news and information visit The GNU Crypto project

Copyright © 2001, 2002, 2003, 2004 Free Software Foundation, Inc.