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

package org.bouncycastle.pqc.crypto.lms;

import java.io.IOException;
import org.bouncycastle.util.Encodable;

class LMSSignedPubKey implements Encodable
{
    private final LMSSignature signature;
    private final LMSPublicKeyParameters publicKey;
    
    public LMSSignedPubKey(final LMSSignature signature, final LMSPublicKeyParameters publicKey) {
        this.signature = signature;
        this.publicKey = publicKey;
    }
    
    public LMSSignature getSignature() {
        return this.signature;
    }
    
    public LMSPublicKeyParameters getPublicKey() {
        return this.publicKey;
    }
    
    @Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || this.getClass() != o.getClass()) {
            return false;
        }
        final LMSSignedPubKey lmsSignedPubKey = (LMSSignedPubKey)o;
        if (this.signature != null) {
            if (this.signature.equals(lmsSignedPubKey.signature)) {
                return (this.publicKey != null) ? this.publicKey.equals(lmsSignedPubKey.publicKey) : (lmsSignedPubKey.publicKey == null);
            }
        }
        else if (lmsSignedPubKey.signature == null) {
            return (this.publicKey != null) ? this.publicKey.equals(lmsSignedPubKey.publicKey) : (lmsSignedPubKey.publicKey == null);
        }
        return false;
    }
    
    @Override
    public int hashCode() {
        return 31 * ((this.signature != null) ? this.signature.hashCode() : 0) + ((this.publicKey != null) ? this.publicKey.hashCode() : 0);
    }
    
    @Override
    public byte[] getEncoded() throws IOException {
        return Composer.compose().bytes(this.signature.getEncoded()).bytes(this.publicKey.getEncoded()).build();
    }
}
