本文整理了Java中org.web3j.utils.Numeric.toBytesPadded()
方法的一些代码示例,展示了Numeric.toBytesPadded()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Numeric.toBytesPadded()
方法的具体详情如下:
包路径:org.web3j.utils.Numeric
类名称:Numeric
方法名:toBytesPadded
暂无
代码示例来源:origin: web3j/web3j
public static byte[] serialize(ECKeyPair ecKeyPair) {
byte[] privateKey = Numeric.toBytesPadded(ecKeyPair.getPrivateKey(), PRIVATE_KEY_SIZE);
byte[] publicKey = Numeric.toBytesPadded(ecKeyPair.getPublicKey(), PUBLIC_KEY_SIZE);
byte[] result = Arrays.copyOf(privateKey, PRIVATE_KEY_SIZE + PUBLIC_KEY_SIZE);
System.arraycopy(publicKey, 0, result, PRIVATE_KEY_SIZE, PUBLIC_KEY_SIZE);
return result;
}
代码示例来源:origin: web3j/web3j
@Test
public void testToBytesPadded() {
assertThat(Numeric.toBytesPadded(BigInteger.TEN, 1),
is(new byte[] { 0xa }));
assertThat(Numeric.toBytesPadded(BigInteger.TEN, 8),
is(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0xa }));
assertThat(Numeric.toBytesPadded(BigInteger.valueOf(Integer.MAX_VALUE), 4),
is(new byte[] { 0x7f, (byte) 0xff, (byte) 0xff, (byte) 0xff }));
}
代码示例来源:origin: web3j/web3j
@Test(expected = RuntimeException.class)
public void testToBytesPaddedInvalid() {
Numeric.toBytesPadded(BigInteger.valueOf(Long.MAX_VALUE), 7);
}
代码示例来源:origin: web3j/web3j
public static SignatureData signMessage(byte[] message, ECKeyPair keyPair, boolean needToHash) {
BigInteger publicKey = keyPair.getPublicKey();
byte[] messageHash;
if (needToHash) {
messageHash = Hash.sha3(message);
} else {
messageHash = message;
}
ECDSASignature sig = keyPair.sign(messageHash);
// Now we have to work backwards to figure out the recId needed to recover the signature.
int recId = -1;
for (int i = 0; i < 4; i++) {
BigInteger k = recoverFromSignature(i, sig, messageHash);
if (k != null && k.equals(publicKey)) {
recId = i;
break;
}
}
if (recId == -1) {
throw new RuntimeException(
"Could not construct a recoverable key. Are your credentials valid?");
}
int headerByte = recId + 27;
// 1 header + 32 bytes for R + 32 bytes for S
byte v = (byte) headerByte;
byte[] r = Numeric.toBytesPadded(sig.r, 32);
byte[] s = Numeric.toBytesPadded(sig.s, 32);
return new SignatureData(v, r, s);
}
代码示例来源:origin: web3j/web3j
Numeric.toBytesPadded(
new BigInteger(Long.toString(offset)), MAX_BYTE_LENGTH
代码示例来源:origin: web3j/web3j
public static WalletFile create(String password, ECKeyPair ecKeyPair, int n, int p)
throws CipherException {
byte[] salt = generateRandomBytes(32);
byte[] derivedKey = generateDerivedScryptKey(
password.getBytes(UTF_8), salt, n, R, p, DKLEN);
byte[] encryptKey = Arrays.copyOfRange(derivedKey, 0, 16);
byte[] iv = generateRandomBytes(16);
byte[] privateKeyBytes =
Numeric.toBytesPadded(ecKeyPair.getPrivateKey(), Keys.PRIVATE_KEY_SIZE);
byte[] cipherText = performCipherOperation(
Cipher.ENCRYPT_MODE, iv, encryptKey, privateKeyBytes);
byte[] mac = generateMac(derivedKey, cipherText);
return createWalletFile(ecKeyPair, cipherText, iv, salt, mac, n, p);
}
代码示例来源:origin: web3j/web3j
public static RawTransaction decode(String hexTransaction) {
byte[] transaction = Numeric.hexStringToByteArray(hexTransaction);
RlpList rlpList = RlpDecoder.decode(transaction);
RlpList values = (RlpList) rlpList.getValues().get(0);
BigInteger nonce = ((RlpString) values.getValues().get(0)).asPositiveBigInteger();
BigInteger gasPrice = ((RlpString) values.getValues().get(1)).asPositiveBigInteger();
BigInteger gasLimit = ((RlpString) values.getValues().get(2)).asPositiveBigInteger();
String to = ((RlpString) values.getValues().get(3)).asString();
BigInteger value = ((RlpString) values.getValues().get(4)).asPositiveBigInteger();
String data = ((RlpString) values.getValues().get(5)).asString();
if (values.getValues().size() > 6) {
byte v = ((RlpString) values.getValues().get(6)).getBytes()[0];
byte[] r = Numeric.toBytesPadded(
Numeric.toBigInt(((RlpString) values.getValues().get(7)).getBytes()), 32);
byte[] s = Numeric.toBytesPadded(
Numeric.toBigInt(((RlpString) values.getValues().get(8)).getBytes()), 32);
Sign.SignatureData signatureData = new Sign.SignatureData(v, r, s);
return new SignedRawTransaction(nonce, gasPrice, gasLimit,
to, value, data, signatureData);
} else {
return RawTransaction.createTransaction(nonce,
gasPrice, gasLimit, to, value, data);
}
}
代码示例来源:origin: web3j/web3j
@Test
public void testGetAddressZeroPadded() {
byte[] address = Keys.getAddress(
Numeric.toBytesPadded(BigInteger.valueOf(0x1234), Keys.PUBLIC_KEY_SIZE));
String expected = Numeric.toHexStringNoPrefix(address);
String value = "1234";
assertThat(Keys.getAddress("0x"
+ Strings.zeros(Keys.PUBLIC_KEY_LENGTH_IN_HEX - value.length()) + value),
equalTo(expected));
}
代码示例来源:origin: web3j/web3j
@Test
public void testGetAddressSmallPublicKey() {
byte[] address = Keys.getAddress(
Numeric.toBytesPadded(BigInteger.valueOf(0x1234), Keys.PUBLIC_KEY_SIZE));
String expected = Numeric.toHexStringNoPrefix(address);
assertThat(Keys.getAddress("0x1234"), equalTo(expected));
}
代码示例来源:origin: org.web3j/crypto
public static byte[] serialize(ECKeyPair ecKeyPair) {
byte[] privateKey = Numeric.toBytesPadded(ecKeyPair.getPrivateKey(), PRIVATE_KEY_SIZE);
byte[] publicKey = Numeric.toBytesPadded(ecKeyPair.getPublicKey(), PUBLIC_KEY_SIZE);
byte[] result = Arrays.copyOf(privateKey, PRIVATE_KEY_SIZE + PUBLIC_KEY_SIZE);
System.arraycopy(publicKey, 0, result, PRIVATE_KEY_SIZE, PUBLIC_KEY_SIZE);
return result;
}
代码示例来源:origin: io.daonomic.scalether/util
public static SignatureData signMessage(byte[] message, BigInteger publicKey, BigInteger privateKey) {
byte[] messageHash = Hash.sha3(message);
ECDSASignature sig = sign(messageHash, privateKey);
// Now we have to work backwards to figure out the recId needed to recover the signature.
int recId = -1;
for (int i = 0; i < 4; i++) {
BigInteger k = recoverFromSignature(i, sig, messageHash);
if (k != null && k.equals(publicKey)) {
recId = i;
break;
}
}
if (recId == -1) {
throw new RuntimeException(
"Could not construct a recoverable key. This should never happen.");
}
int headerByte = recId + 27;
// 1 header + 32 bytes for R + 32 bytes for S
byte v = (byte) headerByte;
byte[] r = Numeric.toBytesPadded(sig.r, 32);
byte[] s = Numeric.toBytesPadded(sig.s, 32);
return new SignatureData(v, r, s);
}
代码示例来源:origin: org.web3j/crypto
public static SignatureData signMessage(byte[] message, ECKeyPair keyPair, boolean needToHash) {
BigInteger publicKey = keyPair.getPublicKey();
byte[] messageHash;
if (needToHash) {
messageHash = Hash.sha3(message);
} else {
messageHash = message;
}
ECDSASignature sig = keyPair.sign(messageHash);
// Now we have to work backwards to figure out the recId needed to recover the signature.
int recId = -1;
for (int i = 0; i < 4; i++) {
BigInteger k = recoverFromSignature(i, sig, messageHash);
if (k != null && k.equals(publicKey)) {
recId = i;
break;
}
}
if (recId == -1) {
throw new RuntimeException(
"Could not construct a recoverable key. Are your credentials valid?");
}
int headerByte = recId + 27;
// 1 header + 32 bytes for R + 32 bytes for S
byte v = (byte) headerByte;
byte[] r = Numeric.toBytesPadded(sig.r, 32);
byte[] s = Numeric.toBytesPadded(sig.s, 32);
return new SignatureData(v, r, s);
}
代码示例来源:origin: org.web3j/abi
Numeric.toBytesPadded(
new BigInteger(Long.toString(offset)), MAX_BYTE_LENGTH
代码示例来源:origin: ethjava/web3j-sample
private static void decodeMessage(String signedData) {
//样例 https://ropsten.etherscan.io/tx/0xfd8acd10d72127f29f0a01d8bcaf0165665b5598781fe01ca4bceaa6ab9f2cb0
try {
System.out.println(signedData);
System.out.println("解密 start " + System.currentTimeMillis());
RlpList rlpList = RlpDecoder.decode(Numeric.hexStringToByteArray(signedData));
List<RlpType> values = ((RlpList) rlpList.getValues().get(0)).getValues();
BigInteger nonce = Numeric.toBigInt(((RlpString) values.get(0)).getBytes());
BigInteger gasPrice = Numeric.toBigInt(((RlpString) values.get(1)).getBytes());
BigInteger gasLimit = Numeric.toBigInt(((RlpString) values.get(2)).getBytes());
String to = Numeric.toHexString(((RlpString) values.get(3)).getBytes());
BigInteger value = Numeric.toBigInt(((RlpString) values.get(4)).getBytes());
String data = Numeric.toHexString(((RlpString) values.get(5)).getBytes());
RawTransaction rawTransaction = RawTransaction.createTransaction(nonce, gasPrice, gasLimit, to, value, data);
RlpString v = (RlpString) values.get(6);
RlpString r = (RlpString) values.get(7);
RlpString s = (RlpString) values.get(8);
Sign.SignatureData signatureData = new Sign.SignatureData(
v.getBytes()[0],
Numeric.toBytesPadded(Numeric.toBigInt(r.getBytes()), 32),
Numeric.toBytesPadded(Numeric.toBigInt(s.getBytes()), 32));
BigInteger pubKey = Sign.signedMessageToKey(TransactionEncoder.encode(rawTransaction), signatureData);
System.out.println("publicKey " + pubKey.toString(16));
String address = Numeric.prependHexPrefix(Keys.getAddress(pubKey));
System.out.println("address " + address);
System.out.println("解密 end " + System.currentTimeMillis());
} catch (Exception e) {
e.printStackTrace();
}
}
代码示例来源:origin: org.web3j/crypto
public static RawTransaction decode(String hexTransaction) {
byte[] transaction = Numeric.hexStringToByteArray(hexTransaction);
RlpList rlpList = RlpDecoder.decode(transaction);
RlpList values = (RlpList) rlpList.getValues().get(0);
BigInteger nonce = ((RlpString) values.getValues().get(0)).asPositiveBigInteger();
BigInteger gasPrice = ((RlpString) values.getValues().get(1)).asPositiveBigInteger();
BigInteger gasLimit = ((RlpString) values.getValues().get(2)).asPositiveBigInteger();
String to = ((RlpString) values.getValues().get(3)).asString();
BigInteger value = ((RlpString) values.getValues().get(4)).asPositiveBigInteger();
String data = ((RlpString) values.getValues().get(5)).asString();
if (values.getValues().size() > 6) {
byte v = ((RlpString) values.getValues().get(6)).getBytes()[0];
byte[] r = Numeric.toBytesPadded(
Numeric.toBigInt(((RlpString) values.getValues().get(7)).getBytes()), 32);
byte[] s = Numeric.toBytesPadded(
Numeric.toBigInt(((RlpString) values.getValues().get(8)).getBytes()), 32);
Sign.SignatureData signatureData = new Sign.SignatureData(v, r, s);
return new SignedRawTransaction(nonce, gasPrice, gasLimit,
to, value, data, signatureData);
} else {
return RawTransaction.createTransaction(nonce,
gasPrice, gasLimit, to, value, data);
}
}
内容来源于网络,如有侵权,请联系作者删除!