package org.bouncycastle.operator;
import java.io.OutputStream;
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import org.bouncycastle.util.io.BufferingOutputStream;
A class that explicitly buffers the data to be signed, sending it in one
block when ready for signing.
/**
* A class that explicitly buffers the data to be signed, sending it in one
* block when ready for signing.
*/
public class BufferingContentSigner
implements ContentSigner
{
private final ContentSigner contentSigner;
private final OutputStream output;
Base constructor.
Params: - contentSigner – the content signer to be wrapped.
/**
* Base constructor.
*
* @param contentSigner the content signer to be wrapped.
*/
public BufferingContentSigner(ContentSigner contentSigner)
{
this.contentSigner = contentSigner;
this.output = new BufferingOutputStream(contentSigner.getOutputStream());
}
Base constructor.
Params: - contentSigner – the content signer to be wrapped.
- bufferSize – the size of the internal buffer to use.
/**
* Base constructor.
*
* @param contentSigner the content signer to be wrapped.
* @param bufferSize the size of the internal buffer to use.
*/
public BufferingContentSigner(ContentSigner contentSigner, int bufferSize)
{
this.contentSigner = contentSigner;
this.output = new BufferingOutputStream(contentSigner.getOutputStream(), bufferSize);
}
Return the algorithm identifier supported by this signer.
Returns: algorithm identifier for the signature generated.
/**
* Return the algorithm identifier supported by this signer.
*
* @return algorithm identifier for the signature generated.
*/
public AlgorithmIdentifier getAlgorithmIdentifier()
{
return contentSigner.getAlgorithmIdentifier();
}
Return the buffering stream.
Returns: the output stream used to accumulate the data.
/**
* Return the buffering stream.
*
* @return the output stream used to accumulate the data.
*/
public OutputStream getOutputStream()
{
return output;
}
Generate signature from internally buffered data.
Returns: the signature calculated from the bytes written to the buffering stream.
/**
* Generate signature from internally buffered data.
*
* @return the signature calculated from the bytes written to the buffering stream.
*/
public byte[] getSignature()
{
return contentSigner.getSignature();
}
}