aboutsummaryrefslogtreecommitdiffstats
path: root/doc/manual/side_channels.rst
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2018-06-30 08:12:15 -0400
committerJack Lloyd <[email protected]>2018-06-30 08:12:15 -0400
commit09a5000709ccadde70dc40331ef9427d058ec940 (patch)
treefcb2ae3402d5fd9da3728c5ba10d5b4757cd0d7a /doc/manual/side_channels.rst
parent0a5b3a2e9fe94374ccd2d384cea1c60083c383ac (diff)
Document how to use timing_test [ci skip]
Diffstat (limited to 'doc/manual/side_channels.rst')
-rw-r--r--doc/manual/side_channels.rst23
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/manual/side_channels.rst b/doc/manual/side_channels.rst
index 54be346b5..32be498e7 100644
--- a/doc/manual/side_channels.rst
+++ b/doc/manual/side_channels.rst
@@ -388,6 +388,29 @@ See header ct_utils.h.
To check, install valgrind, configure the build with --with-valgrind, and run
the tests.
+.. highlight:: shell
+
+There is also a test utility built into the command line util, `timing_test`,
+which runs an operation on several different inputs many times in order to
+detect simple timing differences. The output can be processed using the
+Mona timing report library (https://github.com/seecurity/mona-timing-report).
+To run a timing report (here for example pow_mod)::
+
+ $ ./botan timing_test pow_mod > pow_mod.raw
+
+This must be run from a checkout of the source, or otherwise ``--test-data-dir=``
+must be used to point to the expected input files.
+
+Build and run the Mona report as::
+
+ $ git clone https://github.com/seecurity/mona-timing-report.git
+ $ cd mona-timing-report
+ $ ant
+ $ java -jar ReportingTool.jar --lowerBound=0.4 --upperBound=0.5 --inputFile=pow_mod.raw --name=PowMod
+
+This will produce plots and an HTML file in subdirectory starting with
+``reports_`` followed by a representation of the current date and time.
+
References
---------------