Package org.bitcoin
Class NativeSecp256k1
- java.lang.Object
-
- org.bitcoin.NativeSecp256k1
-
@Deprecated public class NativeSecp256k1 extends java.lang.ObjectDeprecated.See https://github.com/bitcoinj/bitcoinj/issues/2267This class holds native methods to handle ECDSA verification.
You can find an example library that can be used for this at https://github.com/bitcoin/secp256k1
To build secp256k1 for use with bitcoinj, run `./configure --enable-jni --enable-experimental --enable-module-schnorr --enable-module-ecdh` and `make` then copy `.libs/libsecp256k1.so` to your system library path or point the JVM to the folder containing it with -Djava.library.path
-
-
Constructor Summary
Constructors Constructor Description NativeSecp256k1()Deprecated.
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static voidcleanup()Deprecated.libsecp256k1 Cleanup - This destroys the secp256k1 context object This should be called at the end of the program for proper cleanup of the context.static longcloneContext()Deprecated.Clone contextstatic byte[]computePubkey(byte[] seckey)Deprecated.libsecp256k1 Compute Pubkey - computes public key from secret keystatic byte[]createECDHSecret(byte[] seckey, byte[] pubkey)Deprecated.libsecp256k1 create ECDH secret - constant time ECDH calculationstatic byte[]privKeyTweakAdd(byte[] privkey, byte[] tweak)Deprecated.libsecp256k1 PrivKey Tweak-Add - Tweak privkey by adding to itstatic byte[]privKeyTweakMul(byte[] privkey, byte[] tweak)Deprecated.libsecp256k1 PrivKey Tweak-Mul - Tweak privkey by multiplying to itstatic byte[]pubKeyTweakAdd(byte[] pubkey, byte[] tweak)Deprecated.libsecp256k1 PubKey Tweak-Add - Tweak pubkey by adding to itstatic byte[]pubKeyTweakMul(byte[] pubkey, byte[] tweak)Deprecated.libsecp256k1 PubKey Tweak-Mul - Tweak pubkey by multiplying to itstatic booleanrandomize(byte[] seed)Deprecated.libsecp256k1 randomize - updates the context randomizationstatic byte[]schnorrSign(byte[] data, byte[] sec)Deprecated.static booleansecKeyVerify(byte[] seckey)Deprecated.libsecp256k1 Seckey Verify - returns 1 if valid, 0 if invalidstatic byte[]sign(byte[] data, byte[] sec)Deprecated.libsecp256k1 Create an ECDSA signature.static booleanverify(byte[] data, byte[] signature, byte[] pub)Deprecated.Verifies the given secp256k1 signature in native code.
-
-
-
Method Detail
-
verify
public static boolean verify(byte[] data, byte[] signature, byte[] pub) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.Verifies the given secp256k1 signature in native code. Calling when enabled == false is undefined (probably library not loaded)- Parameters:
data- The data which was signed, must be exactly 32 bytessignature- The signaturepub- The public key which did the signing- Returns:
- true if correct signature
- Throws:
NativeSecp256k1Util.AssertFailException- never thrown?
-
sign
public static byte[] sign(byte[] data, byte[] sec) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.libsecp256k1 Create an ECDSA signature.- Parameters:
data- Message hash, 32 bytessec- Secret key, 32 bytes- Returns:
- sig byte array of signature
- Throws:
NativeSecp256k1Util.AssertFailException- on bad signature length
-
secKeyVerify
public static boolean secKeyVerify(byte[] seckey)
Deprecated.libsecp256k1 Seckey Verify - returns 1 if valid, 0 if invalid- Parameters:
seckey- ECDSA Secret key, 32 bytes- Returns:
- true if valid, false if invalid
-
computePubkey
public static byte[] computePubkey(byte[] seckey) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.libsecp256k1 Compute Pubkey - computes public key from secret key- Parameters:
seckey- ECDSA Secret key, 32 bytes- Returns:
- pubkey ECDSA Public key, 33 or 65 bytes
- Throws:
NativeSecp256k1Util.AssertFailException- if bad pubkey length
-
cleanup
public static void cleanup()
Deprecated.libsecp256k1 Cleanup - This destroys the secp256k1 context object This should be called at the end of the program for proper cleanup of the context.
-
cloneContext
public static long cloneContext()
Deprecated.Clone context- Returns:
- context reference
-
privKeyTweakMul
public static byte[] privKeyTweakMul(byte[] privkey, byte[] tweak) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.libsecp256k1 PrivKey Tweak-Mul - Tweak privkey by multiplying to it- Parameters:
tweak- some bytes to tweak withprivkey- 32-byte seckey- Returns:
- The tweaked private key
- Throws:
NativeSecp256k1Util.AssertFailException- assertion failure
-
privKeyTweakAdd
public static byte[] privKeyTweakAdd(byte[] privkey, byte[] tweak) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.libsecp256k1 PrivKey Tweak-Add - Tweak privkey by adding to it- Parameters:
tweak- some bytes to tweak withprivkey- 32-byte seckey- Returns:
- The tweaked private key
- Throws:
NativeSecp256k1Util.AssertFailException- assertion failure
-
pubKeyTweakAdd
public static byte[] pubKeyTweakAdd(byte[] pubkey, byte[] tweak) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.libsecp256k1 PubKey Tweak-Add - Tweak pubkey by adding to it- Parameters:
tweak- some bytes to tweak withpubkey- 32-byte seckey- Returns:
- The tweaked private key
- Throws:
NativeSecp256k1Util.AssertFailException- assertion failure
-
pubKeyTweakMul
public static byte[] pubKeyTweakMul(byte[] pubkey, byte[] tweak) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.libsecp256k1 PubKey Tweak-Mul - Tweak pubkey by multiplying to it- Parameters:
tweak- some bytes to tweak withpubkey- 32-byte seckey- Returns:
- The tweaked private key
- Throws:
NativeSecp256k1Util.AssertFailException- assertion failure
-
createECDHSecret
public static byte[] createECDHSecret(byte[] seckey, byte[] pubkey) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.libsecp256k1 create ECDH secret - constant time ECDH calculation- Parameters:
seckey- byte array of secret key used in exponentiationpubkey- byte array of public key used in exponentiation- Returns:
- the secret
- Throws:
NativeSecp256k1Util.AssertFailException- assertion failure
-
randomize
public static boolean randomize(byte[] seed) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.libsecp256k1 randomize - updates the context randomization- Parameters:
seed- 32-byte random seed- Returns:
- true if successful, false otherwise
- Throws:
NativeSecp256k1Util.AssertFailException- never thrown?
-
schnorrSign
public static byte[] schnorrSign(byte[] data, byte[] sec) throws NativeSecp256k1Util.AssertFailExceptionDeprecated.- Parameters:
data- data to signsec- secret key- Returns:
- Signature or byte[0]
- Throws:
NativeSecp256k1Util.AssertFailException- assertion failure
-
-