Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.bouncycastle.asn1
Class DLSequenceGenerator

    java.lang.Object
      org.bouncycastle.asn1.ASN1Generator
          org.bouncycastle.asn1.DLGenerator
              org.bouncycastle.asn1.DLSequenceGenerator

public class DLSequenceGenerator
extends DLGenerator

A stream generator for definite-length SEQUENCEs. The caller commits to the total length of the SEQUENCE body up front; the header is written immediately and the body then streams through `getRawOutputStream()` / `addObject(ASN1Encodable)`. `close()` verifies the body came out at exactly the promised length and throws an `IOException` otherwise — by then the output is not usable, but every length mismatch is a caller arithmetic bug that must not pass silently.

Unlike `DERSequenceGenerator` nothing is buffered, so the body may exceed the size of a Java array; the trade-off is that the length has to be known before any content is produced.

Field Summary

Fields inherited from class org.bouncycastle.asn1.ASN1Generator
`_out`

Constructor Summary
`DLSequenceGenerator(java.io.OutputStream out, int tagNo, boolean isExplicit, long bodyLength)` Use the passed in stream as the target for the generator, writing out the header for a tagged definite-length constructed SEQUENCE (possibly implicit).
`DLSequenceGenerator(java.io.OutputStream out, long bodyLength)` Use the passed in stream as the target for the generator, writing out the header for a definite-length constructed SEQUENCE.

Method Summary
`void` | `addObject(ASN1Encodable object)` Add the DL encoding of the passed in object to the SEQUENCE body.
`void` | `close()` Verify the declared body length was written in full.
`java.io.OutputStream` | `getRawOutputStream()` Return the target stream for the SEQUENCE body.

Methods inherited from class org.bouncycastle.asn1.DLGenerator
`getDLEncodingLength, getLengthOctetCount, writeDLHeader`

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

Constructor Detail

### DLSequenceGenerator

    public DLSequenceGenerator(java.io.OutputStream out,
                               long bodyLength)
                        throws java.io.IOException

  Use the passed in stream as the target for the generator, writing out the header for a definite-length constructed SEQUENCE.

Parameters:
  `out` - target stream
  `bodyLength` - the exact number of content octets that will be written
Throws:
  `java.io.IOException` - if the target stream cannot be written to.

### DLSequenceGenerator

    public DLSequenceGenerator(java.io.OutputStream out,
                               int tagNo,
                               boolean isExplicit,
                               long bodyLength)
                        throws java.io.IOException

  Use the passed in stream as the target for the generator, writing out the header for a tagged definite-length constructed SEQUENCE (possibly implicit).

Parameters:
  `out` - target stream
  `tagNo` - the tag number to introduce
  `isExplicit` - true if this is an explicitly tagged object, false otherwise.
  `bodyLength` - the exact number of content octets that will be written
Throws:
  `java.io.IOException` - if the target stream cannot be written to.

Method Detail

### getRawOutputStream

    public java.io.OutputStream getRawOutputStream()

  Return the target stream for the SEQUENCE body. Writes are counted against the length declared at construction; writing past it fails immediately.

  Overrides:
    `getRawOutputStream` in class `DLGenerator`

### addObject

    public void addObject(ASN1Encodable object)
                   throws java.io.IOException

  Add the DL encoding of the passed in object to the SEQUENCE body.

  Throws:
    `java.io.IOException`

### close

    public void close()
               throws java.io.IOException

  Verify the declared body length was written in full.

  Throws:
    `java.io.IOException` - if fewer content octets were written than declared.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD