Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/java/org/bitcoin/NativeSecp256k1Test.java
package org.bitcoin; | package org.bitcoin; | ||||
import com.google.common.io.BaseEncoding; | |||||
import java.util.Arrays; | |||||
import java.math.BigInteger; | |||||
import javax.xml.bind.DatatypeConverter; | import javax.xml.bind.DatatypeConverter; | ||||
import static org.bitcoin.NativeSecp256k1Util.*; | import static org.bitcoin.NativeSecp256k1Util.*; | ||||
/** | /** | ||||
* This class holds test cases defined for testing this library. | * This class holds test cases defined for testing this library. | ||||
*/ | */ | ||||
public class NativeSecp256k1Test { | public class NativeSecp256k1Test { | ||||
//TODO improve comments/add more tests | //TODO improve comments/add more tests | ||||
/** | /** | ||||
* This tests verify() for a valid signature | * This tests verify() for a valid signature | ||||
*/ | */ | ||||
public static void testVerifyPos() throws AssertFailException{ | public static void testVerifyPos() throws AssertFailException{ | ||||
boolean result = false; | boolean result = false; | ||||
byte[] data = BaseEncoding.base16().lowerCase().decode("CF80CD8AED482D5D1527D7DC72FCEFF84E6326592848447D2DC0B0E87DFC9A90".toLowerCase()); //sha256hash of "testing" | byte[] data = DatatypeConverter.parseHexBinary("CF80CD8AED482D5D1527D7DC72FCEFF84E6326592848447D2DC0B0E87DFC9A90"); //sha256hash of "testing" | ||||
byte[] sig = BaseEncoding.base16().lowerCase().decode("3044022079BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F817980220294F14E883B3F525B5367756C2A11EF6CF84B730B36C17CB0C56F0AAB2C98589".toLowerCase()); | byte[] sig = DatatypeConverter.parseHexBinary("3044022079BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F817980220294F14E883B3F525B5367756C2A11EF6CF84B730B36C17CB0C56F0AAB2C98589"); | ||||
byte[] pub = BaseEncoding.base16().lowerCase().decode("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40".toLowerCase()); | byte[] pub = DatatypeConverter.parseHexBinary("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40"); | ||||
result = NativeSecp256k1.verify( data, sig, pub); | result = NativeSecp256k1.verify( data, sig, pub); | ||||
assertEquals( result, true , "testVerifyPos"); | assertEquals( result, true , "testVerifyPos"); | ||||
} | } | ||||
/** | /** | ||||
* This tests verify() for a non-valid signature | * This tests verify() for a non-valid signature | ||||
*/ | */ | ||||
public static void testVerifyNeg() throws AssertFailException{ | public static void testVerifyNeg() throws AssertFailException{ | ||||
boolean result = false; | boolean result = false; | ||||
byte[] data = BaseEncoding.base16().lowerCase().decode("CF80CD8AED482D5D1527D7DC72FCEFF84E6326592848447D2DC0B0E87DFC9A91".toLowerCase()); //sha256hash of "testing" | byte[] data = DatatypeConverter.parseHexBinary("CF80CD8AED482D5D1527D7DC72FCEFF84E6326592848447D2DC0B0E87DFC9A91"); //sha256hash of "testing" | ||||
byte[] sig = BaseEncoding.base16().lowerCase().decode("3044022079BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F817980220294F14E883B3F525B5367756C2A11EF6CF84B730B36C17CB0C56F0AAB2C98589".toLowerCase()); | byte[] sig = DatatypeConverter.parseHexBinary("3044022079BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F817980220294F14E883B3F525B5367756C2A11EF6CF84B730B36C17CB0C56F0AAB2C98589"); | ||||
byte[] pub = BaseEncoding.base16().lowerCase().decode("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40".toLowerCase()); | byte[] pub = DatatypeConverter.parseHexBinary("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40"); | ||||
result = NativeSecp256k1.verify( data, sig, pub); | result = NativeSecp256k1.verify( data, sig, pub); | ||||
//System.out.println(" TEST " + new BigInteger(1, resultbytes).toString(16)); | //System.out.println(" TEST " + new BigInteger(1, resultbytes).toString(16)); | ||||
assertEquals( result, false , "testVerifyNeg"); | assertEquals( result, false , "testVerifyNeg"); | ||||
} | } | ||||
/** | /** | ||||
* This tests secret key verify() for a valid secretkey | * This tests secret key verify() for a valid secretkey | ||||
*/ | */ | ||||
public static void testSecKeyVerifyPos() throws AssertFailException{ | public static void testSecKeyVerifyPos() throws AssertFailException{ | ||||
boolean result = false; | boolean result = false; | ||||
byte[] sec = BaseEncoding.base16().lowerCase().decode("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530".toLowerCase()); | byte[] sec = DatatypeConverter.parseHexBinary("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530"); | ||||
result = NativeSecp256k1.secKeyVerify( sec ); | result = NativeSecp256k1.secKeyVerify( sec ); | ||||
//System.out.println(" TEST " + new BigInteger(1, resultbytes).toString(16)); | //System.out.println(" TEST " + new BigInteger(1, resultbytes).toString(16)); | ||||
assertEquals( result, true , "testSecKeyVerifyPos"); | assertEquals( result, true , "testSecKeyVerifyPos"); | ||||
} | } | ||||
/** | /** | ||||
* This tests secret key verify() for an invalid secretkey | * This tests secret key verify() for an invalid secretkey | ||||
*/ | */ | ||||
public static void testSecKeyVerifyNeg() throws AssertFailException{ | public static void testSecKeyVerifyNeg() throws AssertFailException{ | ||||
boolean result = false; | boolean result = false; | ||||
byte[] sec = BaseEncoding.base16().lowerCase().decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF".toLowerCase()); | byte[] sec = DatatypeConverter.parseHexBinary("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); | ||||
result = NativeSecp256k1.secKeyVerify( sec ); | result = NativeSecp256k1.secKeyVerify( sec ); | ||||
//System.out.println(" TEST " + new BigInteger(1, resultbytes).toString(16)); | //System.out.println(" TEST " + new BigInteger(1, resultbytes).toString(16)); | ||||
assertEquals( result, false , "testSecKeyVerifyNeg"); | assertEquals( result, false , "testSecKeyVerifyNeg"); | ||||
} | } | ||||
/** | /** | ||||
* This tests public key create() for a valid secretkey | * This tests public key create() for a valid secretkey | ||||
*/ | */ | ||||
public static void testPubKeyCreatePos() throws AssertFailException{ | public static void testPubKeyCreatePos() throws AssertFailException{ | ||||
byte[] sec = BaseEncoding.base16().lowerCase().decode("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530".toLowerCase()); | byte[] sec = DatatypeConverter.parseHexBinary("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530"); | ||||
byte[] resultArr = NativeSecp256k1.computePubkey( sec); | byte[] resultArr = NativeSecp256k1.computePubkey( sec); | ||||
String pubkeyString = javax.xml.bind.DatatypeConverter.printHexBinary(resultArr); | String pubkeyString = DatatypeConverter.printHexBinary(resultArr); | ||||
assertEquals( pubkeyString , "04C591A8FF19AC9C4E4E5793673B83123437E975285E7B442F4EE2654DFFCA5E2D2103ED494718C697AC9AEBCFD19612E224DB46661011863ED2FC54E71861E2A6" , "testPubKeyCreatePos"); | assertEquals( pubkeyString , "04C591A8FF19AC9C4E4E5793673B83123437E975285E7B442F4EE2654DFFCA5E2D2103ED494718C697AC9AEBCFD19612E224DB46661011863ED2FC54E71861E2A6" , "testPubKeyCreatePos"); | ||||
} | } | ||||
/** | /** | ||||
* This tests public key create() for a invalid secretkey | * This tests public key create() for a invalid secretkey | ||||
*/ | */ | ||||
public static void testPubKeyCreateNeg() throws AssertFailException{ | public static void testPubKeyCreateNeg() throws AssertFailException{ | ||||
byte[] sec = BaseEncoding.base16().lowerCase().decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF".toLowerCase()); | byte[] sec = DatatypeConverter.parseHexBinary("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); | ||||
byte[] resultArr = NativeSecp256k1.computePubkey( sec); | byte[] resultArr = NativeSecp256k1.computePubkey( sec); | ||||
String pubkeyString = javax.xml.bind.DatatypeConverter.printHexBinary(resultArr); | String pubkeyString = DatatypeConverter.printHexBinary(resultArr); | ||||
assertEquals( pubkeyString, "" , "testPubKeyCreateNeg"); | assertEquals( pubkeyString, "" , "testPubKeyCreateNeg"); | ||||
} | } | ||||
/** | /** | ||||
* This tests sign() for a valid secretkey | * This tests sign() for a valid secretkey | ||||
*/ | */ | ||||
public static void testSignPos() throws AssertFailException{ | public static void testSignPos() throws AssertFailException{ | ||||
byte[] data = BaseEncoding.base16().lowerCase().decode("CF80CD8AED482D5D1527D7DC72FCEFF84E6326592848447D2DC0B0E87DFC9A90".toLowerCase()); //sha256hash of "testing" | byte[] data = DatatypeConverter.parseHexBinary("CF80CD8AED482D5D1527D7DC72FCEFF84E6326592848447D2DC0B0E87DFC9A90"); //sha256hash of "testing" | ||||
byte[] sec = BaseEncoding.base16().lowerCase().decode("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530".toLowerCase()); | byte[] sec = DatatypeConverter.parseHexBinary("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530"); | ||||
byte[] resultArr = NativeSecp256k1.sign(data, sec); | byte[] resultArr = NativeSecp256k1.sign(data, sec); | ||||
String sigString = javax.xml.bind.DatatypeConverter.printHexBinary(resultArr); | String sigString = DatatypeConverter.printHexBinary(resultArr); | ||||
assertEquals( sigString, "3045022100F51D069AA46EDB4E2E77773FE364AA2AF6818AF733EA542CFC4D546640A58D8802204F1C442AC9F26F232451A0C3EE99F6875353FC73902C68055C19E31624F687CC" , "testSignPos"); | assertEquals( sigString, "3045022100F51D069AA46EDB4E2E77773FE364AA2AF6818AF733EA542CFC4D546640A58D8802204F1C442AC9F26F232451A0C3EE99F6875353FC73902C68055C19E31624F687CC" , "testSignPos"); | ||||
} | } | ||||
/** | /** | ||||
* This tests sign() for a invalid secretkey | * This tests sign() for a invalid secretkey | ||||
*/ | */ | ||||
public static void testSignNeg() throws AssertFailException{ | public static void testSignNeg() throws AssertFailException{ | ||||
byte[] data = BaseEncoding.base16().lowerCase().decode("CF80CD8AED482D5D1527D7DC72FCEFF84E6326592848447D2DC0B0E87DFC9A90".toLowerCase()); //sha256hash of "testing" | byte[] data = DatatypeConverter.parseHexBinary("CF80CD8AED482D5D1527D7DC72FCEFF84E6326592848447D2DC0B0E87DFC9A90"); //sha256hash of "testing" | ||||
byte[] sec = BaseEncoding.base16().lowerCase().decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF".toLowerCase()); | byte[] sec = DatatypeConverter.parseHexBinary("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); | ||||
byte[] resultArr = NativeSecp256k1.sign(data, sec); | byte[] resultArr = NativeSecp256k1.sign(data, sec); | ||||
String sigString = javax.xml.bind.DatatypeConverter.printHexBinary(resultArr); | String sigString = DatatypeConverter.printHexBinary(resultArr); | ||||
assertEquals( sigString, "" , "testSignNeg"); | assertEquals( sigString, "" , "testSignNeg"); | ||||
} | } | ||||
/** | /** | ||||
* This tests private key tweak-add | * This tests private key tweak-add | ||||
*/ | */ | ||||
public static void testPrivKeyTweakAdd_1() throws AssertFailException { | public static void testPrivKeyTweakAdd_1() throws AssertFailException { | ||||
byte[] sec = BaseEncoding.base16().lowerCase().decode("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530".toLowerCase()); | byte[] sec = DatatypeConverter.parseHexBinary("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530"); | ||||
byte[] data = BaseEncoding.base16().lowerCase().decode("3982F19BEF1615BCCFBB05E321C10E1D4CBA3DF0E841C2E41EEB6016347653C3".toLowerCase()); //sha256hash of "tweak" | byte[] data = DatatypeConverter.parseHexBinary("3982F19BEF1615BCCFBB05E321C10E1D4CBA3DF0E841C2E41EEB6016347653C3"); //sha256hash of "tweak" | ||||
byte[] resultArr = NativeSecp256k1.privKeyTweakAdd( sec , data ); | byte[] resultArr = NativeSecp256k1.privKeyTweakAdd( sec , data ); | ||||
String sigString = javax.xml.bind.DatatypeConverter.printHexBinary(resultArr); | String sigString = DatatypeConverter.printHexBinary(resultArr); | ||||
assertEquals( sigString , "A168571E189E6F9A7E2D657A4B53AE99B909F7E712D1C23CED28093CD57C88F3" , "testPrivKeyAdd_1"); | assertEquals( sigString , "A168571E189E6F9A7E2D657A4B53AE99B909F7E712D1C23CED28093CD57C88F3" , "testPrivKeyAdd_1"); | ||||
} | } | ||||
/** | /** | ||||
* This tests private key tweak-mul | * This tests private key tweak-mul | ||||
*/ | */ | ||||
public static void testPrivKeyTweakMul_1() throws AssertFailException { | public static void testPrivKeyTweakMul_1() throws AssertFailException { | ||||
byte[] sec = BaseEncoding.base16().lowerCase().decode("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530".toLowerCase()); | byte[] sec = DatatypeConverter.parseHexBinary("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530"); | ||||
byte[] data = BaseEncoding.base16().lowerCase().decode("3982F19BEF1615BCCFBB05E321C10E1D4CBA3DF0E841C2E41EEB6016347653C3".toLowerCase()); //sha256hash of "tweak" | byte[] data = DatatypeConverter.parseHexBinary("3982F19BEF1615BCCFBB05E321C10E1D4CBA3DF0E841C2E41EEB6016347653C3"); //sha256hash of "tweak" | ||||
byte[] resultArr = NativeSecp256k1.privKeyTweakMul( sec , data ); | byte[] resultArr = NativeSecp256k1.privKeyTweakMul( sec , data ); | ||||
String sigString = javax.xml.bind.DatatypeConverter.printHexBinary(resultArr); | String sigString = DatatypeConverter.printHexBinary(resultArr); | ||||
assertEquals( sigString , "97F8184235F101550F3C71C927507651BD3F1CDB4A5A33B8986ACF0DEE20FFFC" , "testPrivKeyMul_1"); | assertEquals( sigString , "97F8184235F101550F3C71C927507651BD3F1CDB4A5A33B8986ACF0DEE20FFFC" , "testPrivKeyMul_1"); | ||||
} | } | ||||
/** | /** | ||||
* This tests private key tweak-add uncompressed | * This tests private key tweak-add uncompressed | ||||
*/ | */ | ||||
public static void testPrivKeyTweakAdd_2() throws AssertFailException { | public static void testPrivKeyTweakAdd_2() throws AssertFailException { | ||||
byte[] pub = BaseEncoding.base16().lowerCase().decode("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40".toLowerCase()); | byte[] pub = DatatypeConverter.parseHexBinary("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40"); | ||||
byte[] data = BaseEncoding.base16().lowerCase().decode("3982F19BEF1615BCCFBB05E321C10E1D4CBA3DF0E841C2E41EEB6016347653C3".toLowerCase()); //sha256hash of "tweak" | byte[] data = DatatypeConverter.parseHexBinary("3982F19BEF1615BCCFBB05E321C10E1D4CBA3DF0E841C2E41EEB6016347653C3"); //sha256hash of "tweak" | ||||
byte[] resultArr = NativeSecp256k1.pubKeyTweakAdd( pub , data ); | byte[] resultArr = NativeSecp256k1.pubKeyTweakAdd( pub , data ); | ||||
String sigString = javax.xml.bind.DatatypeConverter.printHexBinary(resultArr); | String sigString = DatatypeConverter.printHexBinary(resultArr); | ||||
assertEquals( sigString , "0411C6790F4B663CCE607BAAE08C43557EDC1A4D11D88DFCB3D841D0C6A941AF525A268E2A863C148555C48FB5FBA368E88718A46E205FABC3DBA2CCFFAB0796EF" , "testPrivKeyAdd_2"); | assertEquals( sigString , "0411C6790F4B663CCE607BAAE08C43557EDC1A4D11D88DFCB3D841D0C6A941AF525A268E2A863C148555C48FB5FBA368E88718A46E205FABC3DBA2CCFFAB0796EF" , "testPrivKeyAdd_2"); | ||||
} | } | ||||
/** | /** | ||||
* This tests private key tweak-mul uncompressed | * This tests private key tweak-mul uncompressed | ||||
*/ | */ | ||||
public static void testPrivKeyTweakMul_2() throws AssertFailException { | public static void testPrivKeyTweakMul_2() throws AssertFailException { | ||||
byte[] pub = BaseEncoding.base16().lowerCase().decode("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40".toLowerCase()); | byte[] pub = DatatypeConverter.parseHexBinary("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40"); | ||||
byte[] data = BaseEncoding.base16().lowerCase().decode("3982F19BEF1615BCCFBB05E321C10E1D4CBA3DF0E841C2E41EEB6016347653C3".toLowerCase()); //sha256hash of "tweak" | byte[] data = DatatypeConverter.parseHexBinary("3982F19BEF1615BCCFBB05E321C10E1D4CBA3DF0E841C2E41EEB6016347653C3"); //sha256hash of "tweak" | ||||
byte[] resultArr = NativeSecp256k1.pubKeyTweakMul( pub , data ); | byte[] resultArr = NativeSecp256k1.pubKeyTweakMul( pub , data ); | ||||
String sigString = javax.xml.bind.DatatypeConverter.printHexBinary(resultArr); | String sigString = DatatypeConverter.printHexBinary(resultArr); | ||||
assertEquals( sigString , "04E0FE6FE55EBCA626B98A807F6CAF654139E14E5E3698F01A9A658E21DC1D2791EC060D4F412A794D5370F672BC94B722640B5F76914151CFCA6E712CA48CC589" , "testPrivKeyMul_2"); | assertEquals( sigString , "04E0FE6FE55EBCA626B98A807F6CAF654139E14E5E3698F01A9A658E21DC1D2791EC060D4F412A794D5370F672BC94B722640B5F76914151CFCA6E712CA48CC589" , "testPrivKeyMul_2"); | ||||
} | } | ||||
/** | /** | ||||
* This tests seed randomization | * This tests seed randomization | ||||
*/ | */ | ||||
public static void testRandomize() throws AssertFailException { | public static void testRandomize() throws AssertFailException { | ||||
byte[] seed = BaseEncoding.base16().lowerCase().decode("A441B15FE9A3CF56661190A0B93B9DEC7D04127288CC87250967CF3B52894D11".toLowerCase()); //sha256hash of "random" | byte[] seed = DatatypeConverter.parseHexBinary("A441B15FE9A3CF56661190A0B93B9DEC7D04127288CC87250967CF3B52894D11"); //sha256hash of "random" | ||||
boolean result = NativeSecp256k1.randomize(seed); | boolean result = NativeSecp256k1.randomize(seed); | ||||
assertEquals( result, true, "testRandomize"); | assertEquals( result, true, "testRandomize"); | ||||
} | } | ||||
public static void testCreateECDHSecret() throws AssertFailException{ | public static void testCreateECDHSecret() throws AssertFailException{ | ||||
byte[] sec = BaseEncoding.base16().lowerCase().decode("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530".toLowerCase()); | byte[] sec = DatatypeConverter.parseHexBinary("67E56582298859DDAE725F972992A07C6C4FB9F62A8FFF58CE3CA926A1063530"); | ||||
byte[] pub = BaseEncoding.base16().lowerCase().decode("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40".toLowerCase()); | byte[] pub = DatatypeConverter.parseHexBinary("040A629506E1B65CD9D2E0BA9C75DF9C4FED0DB16DC9625ED14397F0AFC836FAE595DC53F8B0EFE61E703075BD9B143BAC75EC0E19F82A2208CAEB32BE53414C40"); | ||||
byte[] resultArr = NativeSecp256k1.createECDHSecret(sec, pub); | byte[] resultArr = NativeSecp256k1.createECDHSecret(sec, pub); | ||||
String ecdhString = javax.xml.bind.DatatypeConverter.printHexBinary(resultArr); | String ecdhString = DatatypeConverter.printHexBinary(resultArr); | ||||
assertEquals( ecdhString, "2A2A67007A926E6594AF3EB564FC74005B37A9C8AEF2033C4552051B5C87F043" , "testCreateECDHSecret"); | assertEquals( ecdhString, "2A2A67007A926E6594AF3EB564FC74005B37A9C8AEF2033C4552051B5C87F043" , "testCreateECDHSecret"); | ||||
} | } | ||||
public static void main(String[] args) throws AssertFailException{ | public static void main(String[] args) throws AssertFailException{ | ||||
System.out.println("\n libsecp256k1 enabled: " + Secp256k1Context.isEnabled() + "\n"); | System.out.println("\n libsecp256k1 enabled: " + Secp256k1Context.isEnabled() + "\n"); | ||||
▲ Show 20 Lines • Show All 42 Lines • Show Last 20 Lines |