1. 25 Aug, 2021 1 commit
  2. 30 Jun, 2021 1 commit
  3. 22 Aug, 2019 1 commit
  4. 19 Feb, 2019 1 commit
    • Jeremy Schlatter's avatar
      crypto: fix build when CGO_ENABLED=0 (#19121) · b5e5b356
      Jeremy Schlatter authored
      Package crypto works with or without cgo, which is great. However, to make it
      work without cgo required setting the build tag `nocgo`. It's common to disable
      cgo by instead just setting the environment variable `CGO_ENABLED=0`. Setting
      this environment variable does _not_ implicitly set the build tag `nocgo`. So
      projects that try to build the crypto package with `CGO_ENABLED=0` will fail. I
      have done this myself several times. Until today, I had just assumed that this
      meant that this package requires cgo.
      
      But a small build tag change will make this case work. Instead of using `nocgo`
      and `!nocgo`, we can use `!cgo` and `cgo`, respectively. The `cgo` build tag is
      automatically set if cgo is enabled, and unset if it is disabled.
      b5e5b356
  5. 15 Dec, 2017 1 commit
  6. 06 Dec, 2017 1 commit
    • Felix Lange's avatar
      crypto: add DecompressPubkey, VerifySignature (#15615) · e85b68ef
      Felix Lange authored
      We need those operations for p2p/enr.
      
      Also upgrade github.com/btcsuite/btcd/btcec to the latest version
      and improve BenchmarkSha3. The benchmark printed extra output 
      that confused tools like benchstat and ignored N.
      e85b68ef
  7. 14 Apr, 2017 1 commit
  8. 28 Feb, 2017 1 commit
    • Felix Lange's avatar
      all: unify big.Int zero checks, use common/math in more places (#3716) · 5f782627
      Felix Lange authored
      * common/math: optimize PaddedBigBytes, use it more
      
      name              old time/op    new time/op    delta
      PaddedBigBytes-8    71.1ns ± 5%    46.1ns ± 1%  -35.15%  (p=0.000 n=20+19)
      
      name              old alloc/op   new alloc/op   delta
      PaddedBigBytes-8     48.0B ± 0%     32.0B ± 0%  -33.33%  (p=0.000 n=20+20)
      
      * all: unify big.Int zero checks
      
      Various checks were in use. This commit replaces them all with Int.Sign,
      which is cheaper and less code.
      
      eg templates:
      
          func before(x *big.Int) bool { return x.BitLen() == 0 }
          func after(x *big.Int) bool  { return x.Sign() == 0 }
      
          func before(x *big.Int) bool { return x.BitLen() > 0 }
          func after(x *big.Int) bool  { return x.Sign() != 0 }
      
          func before(x *big.Int) int { return x.Cmp(common.Big0) }
          func after(x *big.Int) int  { return x.Sign() }
      
      * common/math, crypto/secp256k1: make ReadBits public in package math
      5f782627
  9. 18 Feb, 2017 1 commit