/** * @param transaction * @return Signed transaction bytes */ public byte[] signTransaction(RawTransaction transaction, ECKey accountKey) { Credentials credentials = Credentials.create(accountKey.getPrivateKeyAsHex()); return TransactionEncoder.signMessage(transaction, credentials); } }
private String toString(boolean includePrivate, NetworkParameters params) { final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(this).omitNullValues(); helper.add("pub HEX", getPublicKeyAsHex()); if (includePrivate) { try { helper.add("priv HEX", getPrivateKeyAsHex()); helper.add("priv WIF", getPrivateKeyAsWiF(params)); } catch (IllegalStateException e) { // TODO: Make hasPrivKey() work for deterministic keys and fix this. } catch (Exception e) { final String message = e.getMessage(); helper.add("priv EXCEPTION", e.getClass().getName() + (message != null ? ": " + message : "")); } } if (creationTimeSeconds > 0) helper.add("creationTimeSeconds", creationTimeSeconds); helper.add("keyCrypter", keyCrypter); if (includePrivate) helper.add("encryptedPrivateKey", encryptedPrivateKey); helper.add("isEncrypted", isEncrypted()); helper.add("isPubKeyOnly", isPubKeyOnly()); return helper.toString(); }
private String toString(boolean includePrivate, NetworkParameters params) { final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(this).omitNullValues(); helper.add("pub HEX", getPublicKeyAsHex()); if (includePrivate) { try { helper.add("priv HEX", getPrivateKeyAsHex()); helper.add("priv WIF", getPrivateKeyAsWiF(params)); } catch (IllegalStateException e) { // TODO: Make hasPrivKey() work for deterministic keys and fix this. } catch (Exception e) { final String message = e.getMessage(); helper.add("priv EXCEPTION", e.getClass().getName() + (message != null ? ": " + message : "")); } } if (creationTimeSeconds > 0) helper.add("creationTimeSeconds", creationTimeSeconds); helper.add("keyCrypter", keyCrypter); if (includePrivate) helper.add("encryptedPrivateKey", encryptedPrivateKey); helper.add("isEncrypted", isEncrypted()); helper.add("isPubKeyOnly", isPubKeyOnly()); return helper.toString(); }
private String toString(boolean includePrivate, NetworkParameters params) { final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(this).omitNullValues(); helper.add("pub HEX", getPublicKeyAsHex()); if (includePrivate) { try { helper.add("priv HEX", getPrivateKeyAsHex()); helper.add("priv WIF", getPrivateKeyAsWiF(params)); } catch (IllegalStateException e) { // TODO: Make hasPrivKey() work for deterministic keys and fix this. } catch (Exception e) { final String message = e.getMessage(); helper.add("priv EXCEPTION", e.getClass().getName() + (message != null ? ": " + message : "")); } } if (creationTimeSeconds > 0) helper.add("creationTimeSeconds", creationTimeSeconds); helper.add("keyCrypter", keyCrypter); if (includePrivate) helper.add("encryptedPrivateKey", encryptedPrivateKey); helper.add("isEncrypted", isEncrypted()); helper.add("isPubKeyOnly", isPubKeyOnly()); return helper.toString(); }
private String toString(boolean includePrivate, @Nullable KeyParameter aesKey, NetworkParameters params) { final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(this).omitNullValues(); helper.add("pub HEX", getPublicKeyAsHex()); if (includePrivate) { ECKey decryptedKey = isEncrypted() ? decrypt(checkNotNull(aesKey)) : this; try { helper.add("priv HEX", decryptedKey.getPrivateKeyAsHex()); helper.add("priv WIF", decryptedKey.getPrivateKeyAsWiF(params)); } catch (IllegalStateException e) { // TODO: Make hasPrivKey() work for deterministic keys and fix this. } catch (Exception e) { final String message = e.getMessage(); helper.add("priv EXCEPTION", e.getClass().getName() + (message != null ? ": " + message : "")); } } if (creationTimeSeconds > 0) helper.add("creationTimeSeconds", creationTimeSeconds); helper.add("keyCrypter", keyCrypter); if (includePrivate) helper.add("encryptedPrivateKey", encryptedPrivateKey); helper.add("isEncrypted", isEncrypted()); helper.add("isPubKeyOnly", isPubKeyOnly()); return helper.toString(); }
@Test public void testEncryptionKey() throws Exception { System.out.println("\nBegin Test encryptionKey:"); EncryptionKey encryptionKey1 = new EncryptionKeyImpl(testKeys.getPublic()); // // PublicKey publicKey = BitcoinCrypto.loadPublicKey(Base64.getEncoder().encodeToString(ecKey.getPubKey())); System.out.println("ecKey: " + ecKey.toString()); System.out.println("ecKey priv: " + ecKey.getPrivateKeyAsHex()); System.out.println("secureRandom: " + secureRandom.nextInt()); System.out.println("decryptionKey: " + decryptionKey.toString()); System.out.println("ASN.1 " + Arrays.toString(ecKey.toASN1())); EncryptionKeyImpl encTest = new EncryptionKeyImpl(publicTestKey); System.out.println("\nencTest: " + encTest); System.out.println("encryptionKey: " + encryptionKey1); System.out.println("EncKey.toString from ECKeys Pub: " + encTest.toString()); System.out.println("EncKey from DecKey to string: " + decryptionKey.EncryptionKey().toString()); encryptionKey = new EncryptionKeyImpl(publicTestKey); assertEquals(encryptionKey.toString(), decryptionKey.EncryptionKey().toString()); }
@Before public void setUp() throws Exception { ecKey = new ECKey(); pub = ECKey.fromPublicOnly(ecKey.getPubKey()); //ek = new EncryptionKeyImpl(pub); address = new AddressImpl("myGgn8UojMsyqn6KGQLEbVbpYSePcKfawG"); System.out.println("ecKey pubHex " + ecKey.getPublicKeyAsHex()); System.out.println("ecKey privHex " + ecKey.getPrivateKeyAsHex()); System.out.println("pub from ecKey " + pub); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("ECIES",new BouncyCastleProvider()); keyPairGenerator.initialize(new ECGenParameterSpec("secp256k1")); KeyPair recipientKeyPair = keyPairGenerator.generateKeyPair(); pubKey = recipientKeyPair.getPublic(); privKey = recipientKeyPair.getPrivate(); ek = new EncryptionKeyImpl(pubKey); System.out.println("privKey " + privKey); //testkey creation byte[] privbytes = Hex.decodeHex("076edbacad6ba3572be68131900da4e2a3b72f273bb2184c304282bcac117838".toCharArray()); tkey = ECKey.fromPrivate(privbytes, false); System.out.println("\nhardcoded testKey (tkey) " + tkey); // PrivateKey privateKey = BitcoinCrypto.loadPrivateKey(tkey.getPrivateKeyAsHex()); System.out.println("testKey (tkey) priv: " + tkey.getPrivateKeyAsHex()); // System.out.println("testKey priv loaded: " + privateKey.toString()); }
@Test public void testGetPrivateKeyAsHex() throws Exception { ECKey key = ECKey.fromPrivate(BigInteger.TEN).decompress(); // An example private key. assertEquals("000000000000000000000000000000000000000000000000000000000000000a", key.getPrivateKeyAsHex()); }
@Test public void constructor1() throws Exception { HDWallet wallet = getWallet1(); //Arrange LinkedList<Pair> responseList = new LinkedList<>(); responseList.add(Pair.of(404, "{\"message\":\"Not Found\"}")); responseList.add(Pair.of(404, "{\"message\":\"Not Found\"}")); responseList.add(Pair.of(404, "{\"message\":\"Not Found\"}")); mockInterceptor.setResponseList(responseList); //Act subject = new EthereumWallet(wallet.getMasterKey(),"My Ether Wallet"); //Assert Assert.assertFalse(subject.hasSeen()); Assert.assertEquals(0, subject.getTxNotes().size()); Assert.assertEquals("60e2d382449758aab3866585dc69a946e3566bca0eea274b9073cb60da636133", EthereumAccount.deriveECKey(wallet.getMasterKey(), 0).getPrivateKeyAsHex()); Assert.assertTrue(subject.getAccount().getAddress() .equalsIgnoreCase("0x14f2BD143692B14D170c34b2eE25EE5FC61e8570")); }
@Test public void constructor3() throws Exception { HDWallet wallet = getWallet3(); //Arrange LinkedList<Pair> responseList = new LinkedList<>(); responseList.add(Pair.of(404, "{\"message\":\"Not Found\"}")); responseList.add(Pair.of(404, "{\"message\":\"Not Found\"}")); responseList.add(Pair.of(404, "{\"message\":\"Not Found\"}")); mockInterceptor.setResponseList(responseList); //Act subject = new EthereumWallet(wallet.getMasterKey(),"My Ether Wallet"); //Assert Assert.assertFalse(subject.hasSeen()); Assert.assertEquals(0, subject.getTxNotes().size()); Assert.assertEquals("6e1ae089604577d31f25617297e4f50ef1b06376d7b04419c7e82e2507927857", EthereumAccount.deriveECKey(wallet.getMasterKey(), 0).getPrivateKeyAsHex()); Assert.assertTrue(subject.getAccount().getAddress() .equalsIgnoreCase("0x351e4184A9aBe6B71a2a7a71c2628c47cC861e51")); }
@Test public void constructor2() throws Exception { HDWallet wallet = getWallet2(); //Arrange LinkedList<Pair> responseList = new LinkedList<>(); responseList.add(Pair.of(404, "{\"message\":\"Not Found\"}")); responseList.add(Pair.of(404, "{\"message\":\"Not Found\"}")); responseList.add(Pair.of(404, "{\"message\":\"Not Found\"}")); mockInterceptor.setResponseList(responseList); //Act subject = new EthereumWallet(wallet.getMasterKey(),"My Ether Wallet"); //Assert Assert.assertFalse(subject.hasSeen()); Assert.assertEquals(0, subject.getTxNotes().size()); Assert.assertEquals("b96e9ccb774cc33213cbcb2c69d3cdae17b0fe4888a1ccd343cbd1a17fd98b18", EthereumAccount.deriveECKey(wallet.getMasterKey(), 0).getPrivateKeyAsHex()); Assert.assertTrue(subject.getAccount().getAddress() .equalsIgnoreCase("0xaC39b311DCEb2A4b2f5d8461c1cdaF756F4F7Ae9")); }
public Keys getKeys() { ECKey key = new ECKey(); byte[] address = key.getPubKey(); String addressAsString = key.toAddress(getNetworkParameters()).toString(); byte[] publicKey = key.getPubKey(); String publicKeyAsHexString = key.getPublicKeyAsHex(); byte[] privateKey = key.getPrivKeyBytes(); String privateKeyAsHexString = key.getPrivateKeyAsHex(); String addressAsStringWithPrivate = key.toStringWithPrivate(getNetworkParameters()).toString(); return new Keys() .setAddress(address) .setAddressAsString(addressAsString) .setPublicKey(publicKey) .setPublicKeyAsHexString(publicKeyAsHexString) .setPrivateKey(privateKey) .setPrivateKeyAsHexString(privateKeyAsHexString) .setAddressAsStringWithPrivate(addressAsStringWithPrivate); }