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

package org.bouncycastle.pqc.crypto.sphincsplus;

class SIG
{
    private final byte[] r;
    private final SIG_FORS[] sig_fors;
    private final SIG_XMSS[] sig_ht;
    
    public SIG(final int n, final int n2, final int n3, final int n4, final int n5, final int n6, final byte[] array) {
        System.arraycopy(array, 0, this.r = new byte[n], 0, n);
        this.sig_fors = new SIG_FORS[n2];
        int n7 = n;
        for (int i = 0; i != n2; ++i) {
            final byte[] array2 = new byte[n];
            System.arraycopy(array, n7, array2, 0, n);
            n7 += n;
            final byte[][] array3 = new byte[n3][];
            for (int j = 0; j != n3; ++j) {
                System.arraycopy(array, n7, array3[j] = new byte[n], 0, n);
                n7 += n;
            }
            this.sig_fors[i] = new SIG_FORS(array2, array3);
        }
        this.sig_ht = new SIG_XMSS[n4];
        for (int k = 0; k != n4; ++k) {
            final byte[] array4 = new byte[n6 * n];
            System.arraycopy(array, n7, array4, 0, array4.length);
            n7 += array4.length;
            final byte[][] array5 = new byte[n5][];
            for (int l = 0; l != n5; ++l) {
                System.arraycopy(array, n7, array5[l] = new byte[n], 0, n);
                n7 += n;
            }
            this.sig_ht[k] = new SIG_XMSS(array4, array5);
        }
        if (n7 != array.length) {
            throw new IllegalArgumentException("signature wrong length");
        }
    }
    
    public byte[] getR() {
        return this.r;
    }
    
    public SIG_FORS[] getSIG_FORS() {
        return this.sig_fors;
    }
    
    public SIG_XMSS[] getSIG_HT() {
        return this.sig_ht;
    }
}
