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

package org.bouncycastle.pqc.crypto.sphincsplus;

import org.bouncycastle.crypto.Digest;

class HarakaS256Digest extends HarakaSBase implements Digest
{
    public HarakaS256Digest(final HarakaSXof harakaSXof) {
        this.haraka256_rc = harakaSXof.haraka256_rc;
    }
    
    @Override
    public String getAlgorithmName() {
        return "HarakaS-256";
    }
    
    @Override
    public int getDigestSize() {
        return 32;
    }
    
    @Override
    public void update(final byte b) {
        if (this.off > 31) {
            throw new IllegalArgumentException("total input cannot be more than 32 bytes");
        }
        this.buffer[this.off++] = b;
    }
    
    @Override
    public void update(final byte[] array, final int n, final int n2) {
        if (this.off > 32 - n2) {
            throw new IllegalArgumentException("total input cannot be more than 32 bytes");
        }
        System.arraycopy(array, n, this.buffer, this.off, n2);
        this.off += n2;
    }
    
    @Override
    public int doFinal(final byte[] array, final int n) {
        final byte[] array2 = new byte[32];
        this.haraka256Perm(array2);
        HarakaSBase.xor(array2, 0, this.buffer, 0, array, n, 32);
        this.reset();
        return array.length;
    }
    
    @Override
    public void reset() {
        super.reset();
    }
}
