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

package org.bouncycastle.jcajce.provider.asymmetric.edec;

import org.bouncycastle.util.Fingerprint;
import org.bouncycastle.util.encoders.Hex;
import org.bouncycastle.crypto.params.Ed25519PublicKeyParameters;
import org.bouncycastle.crypto.params.X25519PublicKeyParameters;
import org.bouncycastle.crypto.params.Ed448PublicKeyParameters;
import org.bouncycastle.crypto.params.X448PublicKeyParameters;
import org.bouncycastle.util.Strings;
import org.bouncycastle.crypto.params.AsymmetricKeyParameter;

class Utils
{
    static boolean isValidPrefix(final byte[] array, final byte[] array2) {
        if (array2.length < array.length) {
            return !isValidPrefix(array, array);
        }
        int n = 0;
        for (int i = 0; i != array.length; ++i) {
            n |= (array[i] ^ array2[i]);
        }
        return n == 0;
    }
    
    static String keyToString(final String str, final String str2, final AsymmetricKeyParameter asymmetricKeyParameter) {
        final StringBuilder sb = new StringBuilder();
        final String lineSeparator = Strings.lineSeparator();
        byte[] array;
        if (asymmetricKeyParameter instanceof X448PublicKeyParameters) {
            array = ((X448PublicKeyParameters)asymmetricKeyParameter).getEncoded();
        }
        else if (asymmetricKeyParameter instanceof Ed448PublicKeyParameters) {
            array = ((Ed448PublicKeyParameters)asymmetricKeyParameter).getEncoded();
        }
        else if (asymmetricKeyParameter instanceof X25519PublicKeyParameters) {
            array = ((X25519PublicKeyParameters)asymmetricKeyParameter).getEncoded();
        }
        else {
            array = ((Ed25519PublicKeyParameters)asymmetricKeyParameter).getEncoded();
        }
        sb.append(str2).append(" ").append(str).append(" [").append(generateKeyFingerprint(array)).append("]").append(lineSeparator).append("    public data: ").append(Hex.toHexString(array)).append(lineSeparator);
        return sb.toString();
    }
    
    private static String generateKeyFingerprint(final byte[] array) {
        return new Fingerprint(array).toString();
    }
}
