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

package org.bouncycastle.pqc.crypto.sphincsplus;

import org.bouncycastle.util.Arrays;

public class SPHINCSPlusPublicKeyParameters extends SPHINCSPlusKeyParameters
{
    private final PK pk;
    
    public SPHINCSPlusPublicKeyParameters(final SPHINCSPlusParameters sphincsPlusParameters, final byte[] array) {
        super(false, sphincsPlusParameters);
        final int n = sphincsPlusParameters.getN();
        if (array.length != 2 * n) {
            throw new IllegalArgumentException("public key encoding does not match parameters");
        }
        this.pk = new PK(Arrays.copyOfRange(array, 0, n), Arrays.copyOfRange(array, n, 2 * n));
    }
    
    SPHINCSPlusPublicKeyParameters(final SPHINCSPlusParameters sphincsPlusParameters, final PK pk) {
        super(false, sphincsPlusParameters);
        this.pk = pk;
    }
    
    public byte[] getSeed() {
        return Arrays.clone(this.pk.seed);
    }
    
    public byte[] getRoot() {
        return Arrays.clone(this.pk.root);
    }
    
    public byte[] getEncoded() {
        return Arrays.concatenate(this.pk.seed, this.pk.root);
    }
}
