Skip to content

Commit 5c875df

Browse files
committed
Add fragment on patches
1 parent ce4e48f commit 5c875df

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,31 @@ Finally, if you have the arguments file for a learning experiment, you can use t
469469

470470
java -jar target/dtls-fuzzer.jar @learning_arg_file -test test_file
471471

472+
# Developer notes
473+
474+
## Patches
475+
DTLS-Fuzzer may require modifications to the libraries it depends on (e.g., to add features such as support for DTLS 1.3 in TLS-Attacker), and to the SUTs it is applied to (e.g., for removing timing behavior).
476+
These modifications are encoded in patches which allows them to be applied automatically:
477+
- when DTLS-Fuzzer is installed via the `install.sh` script;
478+
- when a SUT of choice is installed via the `setup_sut.sh` script.
479+
480+
*Patch storage.*
481+
Patches are stored in the `experiments/patches` directory.
482+
They are named in a way that indicates the library/SUT and its version.
483+
For example, the patch for TLS-Attacker version 6.3.4 is named `TLS-Attacker-v6.3.4.patch`.
484+
This naming allows the install scripts to identify the patch corresponding to a library/SUT.
485+
486+
*Updating patches.* To create/update a patch requires some form of `diff`.
487+
For libraries/SUTs deployed via `git`, the process is simplified.
488+
From the library/SUT directory with the necessary modifications, first run a cleaning command that removes binaries, then run:
489+
490+
git add -N .
491+
git diff --path > ${path_to_path_to_update}
492+
493+
The first command is necessary in case your patch also adds new files.
494+
The second command creates the patch and replaces by it the existing patch.
495+
496+
472497

473498

474499
[tlsattacker]:https://github.com/RUB-NDS/TLS-Attacker

0 commit comments

Comments
 (0)