Class DLOctetStringGenerator


  • public class DLOctetStringGenerator
    extends DLGenerator
    A stream generator for definite-length (primitive) OCTET STRINGs. The caller commits to the octet count up front; the header is written immediately and the octets then stream through getOctetOutputStream(), which enforces the count — writing past it fails immediately, and close() fails if it was not reached. The count is a long, so content larger than a Java array can carry is supported.

    The result is a single primitive OCTET STRING (as DER requires), in contrast to BEROctetStringGenerator's indefinite-length constructed chunking.

    • Constructor Summary

      Constructors 
      Constructor Description
      DLOctetStringGenerator​(java.io.OutputStream out, int tagNo, boolean isExplicit, long octetCount)
      Use the passed in stream as the target for the generator, writing out the header for a tagged definite-length OCTET STRING (primitive when implicit, per X.690 8.14.3).
      DLOctetStringGenerator​(java.io.OutputStream out, long octetCount)
      Use the passed in stream as the target for the generator, writing out the header for a definite-length primitive OCTET STRING.
    • Constructor Detail

      • DLOctetStringGenerator

        public DLOctetStringGenerator​(java.io.OutputStream out,
                                      long octetCount)
                               throws java.io.IOException
        Use the passed in stream as the target for the generator, writing out the header for a definite-length primitive OCTET STRING.
        Parameters:
        out - target stream
        octetCount - the exact number of octets that will be written
        Throws:
        java.io.IOException - if the target stream cannot be written to.
      • DLOctetStringGenerator

        public DLOctetStringGenerator​(java.io.OutputStream out,
                                      int tagNo,
                                      boolean isExplicit,
                                      long octetCount)
                               throws java.io.IOException
        Use the passed in stream as the target for the generator, writing out the header for a tagged definite-length OCTET STRING (primitive when implicit, per X.690 8.14.3).
        Parameters:
        out - target stream
        tagNo - the tag number to introduce
        isExplicit - true if this is an explicitly tagged object, false otherwise.
        octetCount - the exact number of octets that will be written
        Throws:
        java.io.IOException - if the target stream cannot be written to.
    • Method Detail

      • getOctetOutputStream

        public java.io.OutputStream getOctetOutputStream()
        Return the content target for this OCTET STRING. Writes are counted against the count declared at construction; writing past it fails immediately.
      • close

        public void close()
                   throws java.io.IOException
        Verify the declared octet count was written in full.
        Throws:
        java.io.IOException - if fewer octets were written than declared.