¿Puede alguien explicar cómo usar el siguiente constructor (enumerado aquí ):
ECKey(BigInteger priv, org.spongycastle.math.ec.ECPoint pub)
Digamos que mi clave privada es: priv = "L4...5"
.
¿Cómo obtengo la representación de entero grande (en otras palabras, y si entendí correctamente, hay una función para ir de check58
a biginteger
?), y
¿Qué pasa con el segundo parámetro?
Gracias
Si todo lo que busca es obtener un ECKey
objeto para esa clave privada, entonces Bitcoinj tiene una DumpedPrivateKey
clase para tal ocasión.
import org.bitcoinj.core.ECKey;
import org.bitcoinj.core.DumpedPrivateKey;
import org.bitcoinj.params.MainNetParams;
public class Example {
public static void main(String[] args) {
String priv = "L4...5";
ECKey key = DumpedPrivateKey.fromBase58(MainNetParams.get(), priv).getKey();
}
}
Si desea utilizar un ECKey
constructor explícitamente, debería poder obtener el código que necesita desde aquí:
Con respecto al constructor que enumeró, es un constructor protegido, por lo que probablemente no sea uno que esté buscando usar. Enumera una clave privada y parámetros de clave pública. La clave privada puede ser nula si la ECKey
instancia solo se va a usar para verificar firmas, no para producirlas realmente. La clave pública no debe ser nula y ahorra tiempo al no tener que volver a calcular la clave pública, que es una operación que requiere un uso intensivo de la CPU.
Tenga en cuenta que la mayoría de los public ECKey
constructores están en desuso. La forma preferida de crear los ECKey
objetos ahora es usar los métodos de fábrica estáticos.
Puede llamar al método estático público de ECKeyclass, fromPrivate(byte[] privKeyBytes, booleano comprimido). La clave pública se calcula a partir de ella (esto es lento), comprimida o no. P.ej.,
String privateKey = "Your Private Key";
byte[] b = privateKey.getBytes();
ECKey key = ECKey.fromPrivate(b, true);
o
BigInteger privKey = Base58.decodeToBigInteger(privateKey );
key = ECKey.fromPrivate(privKey);
https://bitcoinj.github.io/javadoc/0.13/org/bitcoinj/core/ECKey.html
ultraprofundo