Interface MultiPassStrategy

  • All Known Implementing Classes:
    InMemoryMultiPassStrategy, WriteToFileMultiPassStrategy

    public interface MultiPassStrategy
    Interface that describes a strategy to deal with the fact that detached signatures require multiple passes to do verification. This interface can be used to write the signed data stream out via getMessageOutputStream() and later get access to the data again via getMessageInputStream(). Thereby the detail where the data is being stored (memory, file, etc.) can be abstracted away.
    • Method Detail

      • getMessageOutputStream

        java.io.OutputStream getMessageOutputStream()
                                             throws java.io.IOException
        Provide an OutputStream into which the signed data can be read into.
        Returns:
        output stream
        Throws:
        java.io.IOException - io error
      • getMessageInputStream

        java.io.InputStream getMessageInputStream()
                                           throws java.io.IOException
        Provide an InputStream which contains the data that was previously written away in getMessageOutputStream().
        Returns:
        input stream
        Throws:
        java.io.IOException - io error
      • writeMessageToFile

        static MultiPassStrategy writeMessageToFile​(java.io.File file)
        Write the message content out to a file and re-read it to verify signatures. This strategy is best suited for larger messages (eg. plaintext signed files) which might not fit into memory. After the message has been processed completely, the messages content are available at the provided file.
        Parameters:
        file - target file
        Returns:
        strategy
      • keepMessageInMemory

        static InMemoryMultiPassStrategy keepMessageInMemory()
        Read the message content into memory. This strategy is best suited for small messages which fit into memory. After the message has been processed completely, the message content can be accessed by calling ByteArrayOutputStream.toByteArray() on getMessageOutputStream().
        Returns:
        strategy