[−][src]Function haybale_pitchfork::check_for_ct_violation
pub fn check_for_ct_violation<'p>(
funcname: &'p str,
project: &'p Project,
args: Option<Vec<AbstractData>>,
sd: &StructDescriptions,
config: Config<'p, Backend>,
pitchfork_config: &PitchforkConfig
) -> ConstantTimeResultForFunction<'p>
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.
args: for each function parameter, an AbstractData describing whether the
parameter is secret data itself, public data, a public pointer to secret data
(and if so how much), etc; or AbstractData::default() to use the default
based on the LLVM parameter type and/or the struct descriptions in sd.
Specifying None for args is equivalent to supplying a Vec with only
AbstractData::default()s.
sd: a mapping of LLVM struct names to AbstractData descriptions of those
structs. These will be used whenever a struct of the appropriate type is
found while processing an AbstractData::default(); for more details, see
docs on AbstractData::default().
pitchfork_config: see docs on PitchforkConfig.
Other arguments are the same as for
haybale::symex_function().