Files
bitcoin/src
Andrew Chow b4794740f8 Merge bitcoin/bitcoin#27985: Add support for RFC8439 variant of ChaCha20
0bf87476f5 test: add ChaCha20 test triggering 32-bit block counter overflow (Sebastian Falbesoner)
7f2a985147 tests: improve ChaCha20 unit tests (Pieter Wuille)
511a8d406e crypto: Implement RFC8439-compatible variant of ChaCha20 (Pieter Wuille)

Pull request description:

  Based on and replaces part of #25361, part of the BIP324 project (#27634). See also #19225 for background.

  There are two variants of ChaCha20 in use. The currently implemented one uses a 64-bit nonce and a 64-bit block counter, while the one used in RFC8439 (and thus BIP324) uses a 96-bit nonce and 32-bit block counter. This PR changes the logic to use the 96-bit nonce variant, though in a way that's compatible with >256 GiB output (by automatically incrementing the first 32-bit part of the nonce when the block counter overflows).

  For those who reviewed the original PR, the biggest change is here that the 96-bit nonce is passed as a Nonce96 type (pair of 32-bit + 64-bit integer) rather than a 12-byte array.

ACKs for top commit:
  achow101:
    ACK 0bf87476f5
  theStack:
    Code-review ACK 0bf87476f5

Tree-SHA512: 62e4cbd5388b8d50ef1a0dc99b6f4ad36c7b4419032035f8e622dda63a62311dd923032217e20054bcd836865d4be5c074f9e5538ca158f94f08eab75c5519c1
2023-07-12 12:58:44 -04:00
..
2023-06-29 16:14:07 -06:00
2023-05-26 15:47:55 -07:00
2023-03-23 12:55:18 +01:00
2022-12-24 23:49:50 +00:00
2023-06-16 10:38:19 +01:00
2023-01-05 09:05:14 +00:00
2023-06-16 10:38:19 +01:00
2023-03-23 19:38:38 +01:00
2023-03-23 19:38:38 +01:00
2023-01-26 10:44:05 +01:00
2023-03-23 12:55:18 +01:00
2023-03-23 12:55:18 +01:00
2022-12-24 23:49:50 +00:00
2023-03-23 12:55:18 +01:00
2023-06-16 10:38:19 +01:00
2023-06-23 18:03:06 -03:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-01-12 13:42:44 +00:00
2023-06-16 10:38:19 +01:00
2023-06-30 12:09:45 +02:00
2023-01-25 09:33:26 +01:00
2023-06-16 10:38:19 +01:00
2023-03-23 12:55:18 +01:00