Fuzz: compare our AES implementation to AES-NI #27548

issue Sjors openend this issue on May 1, 2023
  1. Sjors commented at 9:31 am on May 1, 2023: member

    We only use AES to generate a wallet encryption key from the user password. In #7689 we ditched the OpenSSL implementation for our own. It intentionally does not use special CPU instructions like AES-NI, because performance is not an issue for our use case. Instead it is based on an existing C implementation that’s known to be constant-time.

    We already have a fuzzer that checks an encryption - decryption round trip.

    On CPU’s that support it, we could add an additional fuzz target that uses AES-NI on one side of the round trip. We only need the 256 bit variant. The fuzzer probably only needs to support one platform, such as Intel’s AES-NI.

    Botan has a c++ implementation: https://github.com/randombit/botan/blob/master/src/lib/block/aes/aes_ni/aes_ni.cpp#L523-L601

  2. maflcko added the label Brainstorming on May 2, 2023
  3. maflcko added the label Tests on May 2, 2023
  4. fanquake added the label Fuzzing on Oct 30, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-10-31 03:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me