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

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

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

class DHUtil
{
    static String privateKeyToString(final String str, final BigInteger exponent, final DHParameters dhParameters) {
        final StringBuilder sb = new StringBuilder();
        final String lineSeparator = Strings.lineSeparator();
        final BigInteger modPow = dhParameters.getG().modPow(exponent, dhParameters.getP());
        sb.append(str);
        sb.append(" Private Key [").append(generateKeyFingerprint(modPow, dhParameters)).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 DHParameters dhParameters) {
        final StringBuilder sb = new StringBuilder();
        final String lineSeparator = Strings.lineSeparator();
        sb.append(str);
        sb.append(" Public Key [").append(generateKeyFingerprint(bigInteger, dhParameters)).append("]").append(lineSeparator);
        sb.append("             Y: ").append(bigInteger.toString(16)).append(lineSeparator);
        return sb.toString();
    }
    
    private static String generateKeyFingerprint(final BigInteger bigInteger, final DHParameters dhParameters) {
        return new Fingerprint(Arrays.concatenate(bigInteger.toByteArray(), dhParameters.getP().toByteArray(), dhParameters.getG().toByteArray())).toString();
    }
}
