package com.l7tech.common.io;

import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.security.Signature;
import java.security.SignatureException;

public class SignatureOutputStream extends FilterOutputStream {
   private final Signature a;

   public SignatureOutputStream(Signature var1) {
      this(null, var1);
   }

   public SignatureOutputStream(OutputStream var1, Signature var2) {
      super(var1 != null ? var1 : new NullOutputStream());
      this.a = var2;
   }

   @Override
   public void write(int var1) throws IOException {
      this.out.write(var1);

      try {
         this.a.update((byte)var1);
      } catch (SignatureException var3) {
         throw new IOException(var3);
      }
   }

   @Override
   public void write(byte[] var1, int var2, int var3) throws IOException {
      this.out.write(var1, var2, var3);

      try {
         this.a.update(var1, var2, var3);
      } catch (SignatureException var5) {
         throw new IOException(var5);
      }
   }

   public byte[] sign() throws SignatureException {
      return this.a.sign();
   }

   public int sign(byte[] var1, int var2, int var3) throws SignatureException {
      return this.a.sign(var1, var2, var3);
   }
}
