1. 10 12月, 2020 1 次提交
    • F
      p2p/enode: avoid crashing for invalid IP (#21981) · 817a3fb5
      Felix Lange 提交于
      The database panicked for invalid IPs. This is usually no problem
      because all code paths leading to node DB access verify the IP, but it's
      dangerous because improper validation can turn this panic into a DoS
      vulnerability. The quick fix here is to just turn database accesses
      using invalid IP into a noop. This isn't great, but I'm planning to
      remove the node DB for discv5 long-term, so it should be fine to have
      this quick fix for half a year.
      
      Fixes #21849
      817a3fb5
  2. 09 12月, 2020 4 次提交
    • F
      crypto/signify, build: fix archive signing with signify (#21977) · f935b1d5
      Felix Lange 提交于
      This fixes some issues in crypto/signify and makes release signing work.
      
      The archive signing step in ci.go used getenvBase64, which decodes the key data.
      This is incorrect here because crypto/signify already base64-decodes the key.
      f935b1d5
    • M
    • M
      core,les: headerchain import in batches (#21471) · 40b6ccf3
      Martin Holst Swende 提交于
      * core: add test for headerchain inserts
      
      * core, light: write headerchains in batches
      
      * core: change to one callback per batch of inserted headers + review concerns
      
      * core: error-check on batch write
      
      * core: unexport writeHeaders
      
      * core: remove callback parameter in InsertHeaderChain
      
      The semantics of InsertHeaderChain are now much simpler: it is now an
      all-or-nothing operation. The new WriteStatus return value allows
      callers to check for the canonicality of the insertion. This change
      simplifies use of HeaderChain in package les, where the callback was
      previously used to post chain events.
      
      * core: skip some hashing when writing headers
      
      * core: less hashing in header validation
      
      * core: fix headerchain flaw regarding blacklisted hashes
      Co-authored-by: NFelix Lange <fjl@twurst.com>
      40b6ccf3
    • L
      common: improve printing of Hash and Address (#21834) · bd848aad
      Li, Cheng 提交于
      Both Hash and Address have a String method, which returns the value as
      hex with 0x prefix. They also had a Format method which tried to print
      the value using printf of []byte. The way Format worked was at odds with
      String though, leading to a situation where fmt.Sprintf("%v", hash)
      returned the decimal notation and hash.String() returned a hex string.
      
      This commit makes it consistent again. Both types now support the %v,
      %s, %q format verbs for 0x-prefixed hex output. %x, %X creates
      unprefixed hex output. %d is also supported and returns the decimal
      notation "[1 2 3...]".
      
      For Address, the case of hex characters in %v, %s, %q output is
      determined using the EIP-55 checksum. Using %x, %X with Address
      disables checksumming.
      Co-authored-by: NFelix Lange <fjl@twurst.com>
      bd848aad
  3. 08 12月, 2020 2 次提交
  4. 07 12月, 2020 1 次提交
  5. 04 12月, 2020 3 次提交
    • M
      cmd/geth: implement vulnerability check (#21859) · 15339cf1
      Martin Holst Swende 提交于
      * cmd/geth: implement vulnerability check
      
      * cmd/geth: use minisign to verify vulnerability feed
      
      * cmd/geth: add the test too
      
      * cmd/geth: more minisig/signify testing
      
      * cmd/geth: support multiple pubfiles for signing
      
      * cmd/geth: add @holiman minisig pubkey
      
      * cmd/geth: polishes on vulnerability check
      
      * cmd/geth: fix ineffassign linter nit
      
      * cmd/geth: add CVE to version check struct
      
      * cmd/geth/testdata: add missing testfile
      
      * cmd/geth: add more keys to versionchecker
      
      * cmd/geth: support file:// URLs in version check
      
      * cmd/geth: improve key ID printing when signature check fails
      Co-authored-by: NFelix Lange <fjl@twurst.com>
      15339cf1
    • M
      core: improve contextual information on core errors (#21869) · 7770e41c
      Martin Holst Swende 提交于
      A lot of times when we hit 'core' errors, example: invalid tx, the information provided is
      insufficient. We miss several pieces of information: what account has nonce too high,
      and what transaction in that block was offending?
      
      This PR adds that information, using the new type of wrapped errors.
      It also adds a testcase which (partly) verifies the output from the errors.
      
      The first commit changes all usage of direct equality-checks on core errors, into
      using errors.Is. The second commit adds contextual information. This wraps most
      of the core errors with more information, and also wraps it one more time in
      stateprocessor, to further provide tx index and tx hash, if such a tx is encoutered in
      a block. The third commit uses the chainmaker to try to generate chains with such
      errors in them, thus triggering the errors and checking that the generated string meets
      expectations.
      7770e41c
    • C
      core/vm/runtime: remove duplicated line (#21956) · 62cedb3a
      Chris Ziogas 提交于
      
      This line is duplicated, though it doesn't cause any issues. 
      62cedb3a
  6. 03 12月, 2020 1 次提交
  7. 02 12月, 2020 3 次提交
  8. 01 12月, 2020 2 次提交
  9. 30 11月, 2020 3 次提交
  10. 29 11月, 2020 1 次提交
    • K
      accounts, signer: fix Ledger Live account derivation path (clef) (#21757) · b71334ac
      Kristofer Peterson 提交于
      * signer/core/api: fix derivation of ledger live accounts
      
      For ledger hardware wallets, change account iteration as follows:
      
      - ledger legacy: m/44'/60'/0'/X; for 0<=X<5
      - ledger live: m/44'/60'/0'/0/X; for 0<=X<5
      
      - ledger legacy: m/44'/60'/0'/X; for 0<=X<10
      - ledger live: m/44'/60'/X'/0/0; for 0<=X<10
      
      Non-ledger derivation is unchanged and remains as:
      - non-ledger: m/44'/60'/0'/0/X; for 0<=X<10
      
      * signer/core/api: derive ten default paths for all hardware wallets, plus ten legacy and ten live paths for ledger wallets
      
      * signer/core/api: as .../0'/0/0 already included by default paths, do not include it again with ledger live paths
      
      * accounts, signer: implement path iterators for hd wallets
      Co-authored-by: NMartin Holst Swende <martin@swende.se>
      b71334ac
  11. 27 11月, 2020 1 次提交
    • G
      crypto: signing builds with signify/minisign (#21798) · fa572cd2
      Guillaume Ballet 提交于
      * internal/build: implement signify's signing func
      * Add signify to the ci utility
      * fix output file format
      * Add unit test for signify
      * holiman's + travis' feedback
      * internal/build: verify signify's output
      * crypto: move signify to common dir
      * use go-minisign to verify binaries
      * more holiman feedback
      * crypto, ci: support minisign output
      * only accept one-line trusted comments
      * configurable untrusted comments
      * code cleanup in tests
      * revert to use ed25519 from the stdlib
      * bug: fix for empty untrusted comments
      * write timestamp as comment if trusted comment isn't present
      * rename line checker to commentHasManyLines
      * crypto: added signify fuzzer (#6)
      * crypto: added signify fuzzer
      * stuff
      * crypto: updated signify fuzzer to fuzz comments
      * crypto: repro signify crashes
      * rebased fuzzer on build-signify branch
      * hide fuzzer behind gofuzz build flag
      * extract key data inside a single function
      * don't treat \r as a newline
      * travis: fix signing command line
      * do not use an external binary in tests
      * crypto: move signify to crypto/signify
      * travis: fix formatting issue
      * ci: fix linter build after package move
      Co-authored-by: NMarius van der Wijden <m.vanderwijden@live.de>
      fa572cd2
  12. 26 11月, 2020 2 次提交
  13. 25 11月, 2020 3 次提交
  14. 24 11月, 2020 4 次提交
  15. 23 11月, 2020 4 次提交
  16. 20 11月, 2020 3 次提交
  17. 19 11月, 2020 2 次提交
    • W
      node: support expressive origin rules in ws.origins (#21481) · f1e1d9f8
      wbt 提交于
      * Only compare hostnames in ws.origins
      
      Also using a helper function for ToLower consolidates all preparation steps in one function for more maintainable consistency.
      
      Spaces => tabs
      
      Remove a semicolon
      
      Add space at start of comment
      
      Remove parens around conditional
      
      Handle case wehre parsed hostname is empty
      
      When passing a single word like "localhost" the parsed hostname is an empty string. Handle this and the error-parsing case together as default, and the nonempty hostname case in the conditional.
      
      Refactor with new originIsAllowed functions
      
      Adds originIsAllowed() & ruleAllowsOrigin(); removes prepOriginForComparison
      
      Remove blank line
      
      Added tests for simple allowed-orign rule
      
      which does not specify a protocol or port, just a hostname
      
      Fix copy-paste: `:=` => `=`
      
      Remove parens around conditional
      
      Remove autoadded whitespace on blank lines
      
      Compare scheme, hostname, and port with rule
      
      if the rule specifies those portions.
      
      Remove one autoadded trailing whitespace
      
      Better handle case where only origin host is given
      
      e.g. "localhost"
      
      Remove parens around conditional
      
      Refactor: attemptWebsocketConnectionFromOrigin DRY
      
      Include return type on helper function
      
      Provide srv obj in helper fn
      
      Provide srv to helper fn
      
      Remove stray underscore
      
      Remove blank line
      
      parent 93e666b4c1e7e49b8406dc83ed93f4a02ea49ac1
      author wbt <wbt@users.noreply.github.com> 1598559718 -0400
      committer Martin Holst Swende <martin@swende.se> 1605602257 +0100
      gpgsig -----BEGIN PGP SIGNATURE-----
      
       iQFFBAABCAAvFiEEypmrtbNuJK1doP1AaDtDjAWl3fAFAl+zi9ARHG1hcnRpbkBz
       d2VuZGUuc2UACgkQaDtDjAWl3fDRiwgAoMtzU8dwRV7Q9xkCwWEx9Wz2f3n6jUr2
       VWBycDKGKwRkPPOER3oc9kzjGU/P1tFlK07PjfnAKZ9KWzxpDcJZwYM3xCBurG7A
       16y4YsQnzgPNONv3xIkdi3RZtDBIiPFFEmdZFFvZ/jKexfI6JIYPngCAoqdTIFb9
       On/aPvvVWQn1ExfmarsvvJ7kUDUG77tZipuacEH5FfFsfelBWOEYPe+I9ToUHskv
       +qO6rOkV1Ojk8eBc6o0R1PnApwCAlEhJs7aM/SEOg4B4ZJJneiFuEXBIG9+0yS2I
       NOicuDPLGucOB5nBsfIKI3USPeE+3jxdT8go2lN5Nrhm6MimoILDsQ==
       =sgUp
       -----END PGP SIGNATURE-----
      
      Refactor: drop err var for more concise test lines
      
      Add several tests for new WebSocket origin checks
      
      Remove autoadded whitespace on blank lines
      
      Restore TestWebsocketOrigins originally-named test
      
      and rename the others to be helpers rather than full tests
      
      Remove autoadded whitespace on blank line
      
      Temporarily comment out new test sets
      
      Uncomment test around origin rule with scheme
      
      Remove tests without scheme on browser origin
      
      per https://github.com/ethereum/go-ethereum/pull/21481/files#r479371498
      
      Uncomment tests with port; remove some blank lines
      
      Handle when browser does not specify scheme/port
      
      Uncomment test for including scheme & port in rule
      
      Add IP tests
      
      * node: more tests + table-driven, ws origin changes
      Co-authored-by: NMartin Holst Swende <martin@swende.se>
      f1e1d9f8
    • P
      Merge pull request #21861 from holiman/remove_retesteth · 28080463
      Péter Szilágyi 提交于
      cmd/geth: remove retesteth
      28080463