// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.operator;

import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import org.bouncycastle.util.io.BufferingOutputStream;
import java.io.OutputStream;

public class BufferingContentSigner implements ExtendedContentSigner
{
    private final ContentSigner contentSigner;
    private final OutputStream output;
    
    public BufferingContentSigner(final ContentSigner contentSigner) {
        this.contentSigner = contentSigner;
        this.output = new BufferingOutputStream(contentSigner.getOutputStream());
    }
    
    public BufferingContentSigner(final ContentSigner contentSigner, final int n) {
        this.contentSigner = contentSigner;
        this.output = new BufferingOutputStream(contentSigner.getOutputStream(), n);
    }
    
    @Override
    public AlgorithmIdentifier getAlgorithmIdentifier() {
        return this.contentSigner.getAlgorithmIdentifier();
    }
    
    @Override
    public OutputStream getOutputStream() {
        return this.output;
    }
    
    @Override
    public byte[] getSignature() {
        return this.contentSigner.getSignature();
    }
    
    @Override
    public AlgorithmIdentifier getDigestAlgorithmIdentifier() {
        if (this.contentSigner instanceof ExtendedContentSigner) {
            return ((ExtendedContentSigner)this.contentSigner).getDigestAlgorithmIdentifier();
        }
        return null;
    }
}
