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

package org.bouncycastle.crypto.params;

import org.bouncycastle.util.Arrays;
import org.bouncycastle.crypto.CipherParameters;

public class Blake3Parameters implements CipherParameters
{
    private static final int KEYLEN = 32;
    private byte[] theKey;
    private byte[] theContext;
    
    public static Blake3Parameters context(final byte[] array) {
        if (array == null) {
            throw new IllegalArgumentException("Invalid context");
        }
        final Blake3Parameters blake3Parameters = new Blake3Parameters();
        blake3Parameters.theContext = Arrays.clone(array);
        return blake3Parameters;
    }
    
    public static Blake3Parameters key(final byte[] array) {
        if (array == null || array.length != 32) {
            throw new IllegalArgumentException("Invalid keyLength");
        }
        final Blake3Parameters blake3Parameters = new Blake3Parameters();
        blake3Parameters.theKey = Arrays.clone(array);
        return blake3Parameters;
    }
    
    public byte[] getKey() {
        return Arrays.clone(this.theKey);
    }
    
    public void clearKey() {
        Arrays.fill(this.theKey, (byte)0);
    }
    
    public byte[] getContext() {
        return Arrays.clone(this.theContext);
    }
}
