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

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

import org.bouncycastle.util.Fingerprint;
import org.bouncycastle.util.Arrays;
import org.bouncycastle.util.Strings;
import org.bouncycastle.crypto.params.GOST3410Parameters;
import java.math.BigInteger;

class GOSTUtil
{
    static String privateKeyToString(final String str, final BigInteger exponent, final GOST3410Parameters gost3410Parameters) {
        final StringBuilder sb = new StringBuilder();
        final String lineSeparator = Strings.lineSeparator();
        final BigInteger modPow = gost3410Parameters.getA().modPow(exponent, gost3410Parameters.getP());
        sb.append(str);
        sb.append(" Private Key [").append(generateKeyFingerprint(modPow, gost3410Parameters)).append("]").append(lineSeparator);
        sb.append("                  Y: ").append(modPow.toString(16)).append(lineSeparator);
        return sb.toString();
    }
    
    static String publicKeyToString(final String str, final BigInteger bigInteger, final GOST3410Parameters gost3410Parameters) {
        final StringBuilder sb = new StringBuilder();
        final String lineSeparator = Strings.lineSeparator();
        sb.append(str);
        sb.append(" Public Key [").append(generateKeyFingerprint(bigInteger, gost3410Parameters)).append("]").append(lineSeparator);
        sb.append("                 Y: ").append(bigInteger.toString(16)).append(lineSeparator);
        return sb.toString();
    }
    
    private static String generateKeyFingerprint(final BigInteger bigInteger, final GOST3410Parameters gost3410Parameters) {
        return new Fingerprint(Arrays.concatenate(bigInteger.toByteArray(), gost3410Parameters.getP().toByteArray(), gost3410Parameters.getA().toByteArray())).toString();
    }
}
