mirror of
https://github.com/hashcat/hashcat.git
synced 2025-02-17 01:52:06 +00:00
Merge pull request #2229 from philsmd/master
re-enable USE_SYSTEM_LIBSECP256K1 = 1
This commit is contained in:
commit
5dc6954b55
@ -14,6 +14,9 @@ USE_SYSTEM_LIBSECP256K1 := 0
|
|||||||
USE_SYSTEM_OPENCL := 0
|
USE_SYSTEM_OPENCL := 0
|
||||||
USE_SYSTEM_XXHASH := 0
|
USE_SYSTEM_XXHASH := 0
|
||||||
|
|
||||||
|
# NOTE: USE_SYSTEM_LIBSECP256K1 set to 1 can come with a huge performance hit for Electrum 4-5
|
||||||
|
# this is due to the public API (secp256k1.h) not exposing all the faster ECC operations we need
|
||||||
|
|
||||||
##
|
##
|
||||||
## Detect Operating System
|
## Detect Operating System
|
||||||
##
|
##
|
||||||
|
@ -60,12 +60,14 @@ bool hc_secp256k1_pubkey_parse (secp256k1_pubkey *pubkey, u8 *buf, size_t length
|
|||||||
|
|
||||||
bool hc_secp256k1_pubkey_tweak_mul (secp256k1_pubkey *pubkey, u8 *buf, size_t length)
|
bool hc_secp256k1_pubkey_tweak_mul (secp256k1_pubkey *pubkey, u8 *buf, size_t length)
|
||||||
{
|
{
|
||||||
|
#if !defined (WITH_LIBSECP256K1)
|
||||||
|
|
||||||
secp256k1_context *sctx = secp256k1_context_create (SECP256K1_CONTEXT_NONE);
|
secp256k1_context *sctx = secp256k1_context_create (SECP256K1_CONTEXT_NONE);
|
||||||
|
|
||||||
secp256k1_gej res;
|
secp256k1_gej res;
|
||||||
secp256k1_ge pt;
|
secp256k1_ge pt;
|
||||||
|
|
||||||
// load the public key:
|
// load the public key and 32 byte scalar:
|
||||||
|
|
||||||
secp256k1_pubkey_load (sctx, &pt, pubkey);
|
secp256k1_pubkey_load (sctx, &pt, pubkey);
|
||||||
|
|
||||||
@ -75,8 +77,23 @@ bool hc_secp256k1_pubkey_tweak_mul (secp256k1_pubkey *pubkey, u8 *buf, size_t le
|
|||||||
|
|
||||||
secp256k1_scalar_set_b32 (&s, buf, &overflow);
|
secp256k1_scalar_set_b32 (&s, buf, &overflow);
|
||||||
|
|
||||||
if (overflow) return false;
|
if (overflow != 0)
|
||||||
if (secp256k1_scalar_is_zero (&s)) return false;
|
{
|
||||||
|
secp256k1_scalar_clear (&s);
|
||||||
|
|
||||||
|
secp256k1_context_destroy (sctx);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (secp256k1_scalar_is_zero (&s))
|
||||||
|
{
|
||||||
|
secp256k1_scalar_clear (&s);
|
||||||
|
|
||||||
|
secp256k1_context_destroy (sctx);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// main multiply operation:
|
// main multiply operation:
|
||||||
@ -99,7 +116,36 @@ bool hc_secp256k1_pubkey_tweak_mul (secp256k1_pubkey *pubkey, u8 *buf, size_t le
|
|||||||
// cleanup:
|
// cleanup:
|
||||||
|
|
||||||
secp256k1_scalar_clear (&s);
|
secp256k1_scalar_clear (&s);
|
||||||
|
|
||||||
secp256k1_context_destroy (sctx);
|
secp256k1_context_destroy (sctx);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
// ATTENTION: this way to multiply was much slower in our tests
|
||||||
|
|
||||||
|
secp256k1_context *sctx = secp256k1_context_create (SECP256K1_CONTEXT_VERIFY);
|
||||||
|
|
||||||
|
|
||||||
|
// main multiply operation:
|
||||||
|
|
||||||
|
if (secp256k1_ec_pubkey_tweak_mul (sctx, pubkey, buf) == 0)
|
||||||
|
{
|
||||||
|
secp256k1_context_destroy (sctx);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// output:
|
||||||
|
|
||||||
|
secp256k1_ec_pubkey_serialize (sctx, buf, &length, pubkey, SECP256K1_EC_COMPRESSED);
|
||||||
|
|
||||||
|
|
||||||
|
// cleanup:
|
||||||
|
|
||||||
|
secp256k1_context_destroy (sctx);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user