Expand description
For an introduction to the crate and how to get started, see the crate’s README.
Modules§
- hook_
helpers - This module contains helper functions that may be useful in writing function hooks.
- hooks
- This module contains a few simple built-in function hooks which can be used
with
Config.function_hooks
. - secret
- This module contains the dynamic taint-tracking layer implemented on
top of
haybale
. It provides ahaybale::backend::Backend
which performs dynamic taint tracking and reports constant-time violations.
Structs§
- Abstract
Data - An abstract description of a value: its size, whether it is a pointer or not, whether it is public or secret (or maybe it’s a struct with some public and some secret fields, or maybe it’s a public pointer that points to some secret data), etc.
- Config
- Various settings which affect how the symbolic execution is performed.
- Constant
Time Result ForFunction - Holds information about the results of a constant-time analysis of a particular function.
- Path
Statistics - Some statistics which can be computed from a
ConstantTimeResultForFunction
. - Pitchfork
Config pitchfork
-specific configuration options, in addition to the configuration options inhaybale::Config
.- Project
- A
Project
is a collection of LLVM code to be explored, consisting of one or more LLVM modules.
Enums§
- Abstract
Value - A variety of ways to specify a numerical value, from completely unconstrained to fully constrained.
- Constant
Time Result ForPath - Holds information about the results of a constant-time analysis of a single path.
Functions§
- check_
for_ ct_ violation - Checks whether a function is “constant-time” in the secrets identified by the
args
data structure. That is, does the function ever make branching decisions, or perform address calculations, based on secrets. - check_
for_ ct_ violation_ in_ inputs - Checks whether a function is “constant-time” in its inputs. That is, does the function ever make branching decisions, or perform address calculations, based on its inputs.
- main_
func - This function is designed to be called in your
main()
. It processes command-line arguments and coordinates the overall analysis. - pretty_
coverage_ stats - Get a formatted version of the coverage results as a
String
.
Type Aliases§
- Struct
Descriptions - A map from struct name to an
AbstractData
description of the struct