Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fuzz: prototype for cross-language differential fuzzing #9

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Commits on Jan 17, 2022

  1. Add implementation of chacha20 in python

    Taken from https://github.com/ph4r05/py-chacha20poly1305.
    Note that this is different from the ChaCha20 implementation
    used in Bitcoin Core since this:
    1. uses a 96 bit nonce (instead of a 64 bit nonce)
    2. does not reuse existing keystream
    stratospher committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    f2c36ae View commit details
    Browse the repository at this point in the history
  2. Modify ChaCha20 to be consistent with Bitcoin Core implementation

    That is, allow 64 bit nonce and keystream reuse.
    stratospher committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    4fc9c4b View commit details
    Browse the repository at this point in the history
  3. Add python server file which performs chacha20 operations

    The server creates a new unix domain socket which will listen
    and accept client connections. Based on the chacha20 operation
    the client(fuzz target) requests, it performs chacha20 operations
    parallelly using the python chacha20 implementation and sends back
    the response(like keystream, ciphertext) back to the client(fuzz target).
    stratospher committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    a8bd943 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8bf1d4e View commit details
    Browse the repository at this point in the history
  5. Add fuzzing harness to compare python and cpp chacha20 outputs

    This behaves like the client and sends requests to the python server
    file (src/test/fuzz/script.py) to perform certain operations,
    receives python output computed in the server file and compares both
    to see if they match.
    stratospher committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    ea4497b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7712f33 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2022

  1. debug

    stratospher committed Feb 12, 2022
    Configuration menu
    Copy the full SHA
    abb8a6d View commit details
    Browse the repository at this point in the history