PROLEAD
A Probing-Based Leakage Detection Tool for Hardware and Software
Loading...
Searching...
No Matches
Classes | Public Attributes | List of all members
Software::SettingsStruct Struct Reference

Defines all settings regarding software simulations. More...

#include <Definitions.hpp>

Classes

struct  CodeSection
 Defines how the Emulator models the code section. More...
 
struct  MemoryRange
 Defines how the Emulator models the memory. More...
 

Public Attributes

int Max_no_of_Threads
 The maximum number of threads PROLEAD can use for parallelism.
 
int NumberOfGroups
 The number of user-defined groups.
 
int NumberOfGroupValues
 The size of the group values, i.e. their bit length.
 
char CompactDistributions
 Decision whether the evaluation should be performed in compact or normal mode.
 
char MinimizeProbeSets
 Decision whether the number of probing sets should be minimized before the evaluation.
 
int ** Group_Values = NULL
 The values assigned to the user-defined groups.
 
int * MaxNumberOfSharesGroupValues
 The number of shares per input bit.
 
int Hardware = 0
 Decistion whether PROLEAD will be used for software or hardware.
 
int ClockSignal = 0
 The index of the clock signal.
 
int Max_No_ClockCycles = 0
 The maximum number of clock cycles to simulate.
 
int Max_No_ReportEntries
 The maximum number of entries in the report.
 
int NumberOfAlwaysRandomInputs
 Number of fresh random inputs.
 
int * AlwaysRandomInputs = NULL
 Indices of the fresh random input signals.
 
int InitialSim_NumberOfInputs
 The number of inputs which are assigned to initialize the simulation.
 
int InitialSim_NumberOfClockCycles
 The number of clock cycles to initialize the simulation.
 
int ** InitialSim_Inputs = NULL
 The indices of the initialization signals.
 
char ** InitialSim_InputName = NULL
 A list of input names to create a link for the emulator.
 
std::unordered_map< std::string, uint32_t > InitialSim_PositionInEmulatorRam
 
int * InitialSim_InputsLength = NULL
 
uint64_t ** InitialSim_Values = NULL
 The signal values during the initialization cycles.
 
uint8_t * InitialSim_IsInitialized = NULL
 
int EndSimCondition_ClockCycles
 The number of clock cycles after which the simulation terminates.
 
int EndSimCondition_NumberOfSignals
 The bit width of the signal which terminates the simulation.
 
int * EndSimCondition_Signals = NULL
 The indices of the single-bit signals terminating the simulation.
 
uint64_t * EndSimCondition_Values = NULL
 The values the signals have to reach to terminate the simulation.
 
int EndSim_NumberOfWaitCycles = 0
 Number of cycles to wait after each simulation.
 
int TestOrder = 0
 The security order to test.
 
int TestMultivariate = 0
 Decision whether univariate or multivariate adversaries should be considered.
 
int MaxDistanceMultivariet = 0
 The maximum distance in time, i.e. clock cycles, for multivariate adversaries.
 
int TestTransitional = 0
 Decision whether transitional leakage is included.
 
int NumberOfTestClockCycles = 0
 The number of clock cycles in which the adversary can place probes.
 
int * TestClockCycles = NULL
 The particular clock cycles the adversary can target.
 
uint64_t NumberOfSimulations = 0
 The total number of simulations.
 
uint64_t NumberOfStepSimulations = 0
 The number of simulations before the simulations are evaluated.
 
uint64_t NumberOfStepSimulationsToWrite = 0
 The number of simulations before a report is written.
 
mulator::Architecture arch
 ISA version of the binary.
 
MemoryRange flash
 Flash memory region for emulator.
 
MemoryRange ram
 RAM memory region for emulator.
 
mulator::u32 start_address
 address of cipher where PROLEAD starts to evaluate
 
mulator::u32 main_address
 start address of main function
 
std::vector< CodeSectionbinary
 
std::vector< mulator::u32halt_addresses
 
std::vector< mulator::u32symbol_addresses
 
std::unordered_map< mulator::u32, std::string > symbol_names
 
mulator::u32 length_occupied_ram
 
mulator::u32 randomness_start_addr
 start address of emulator internal randomness section
 
mulator::u32 randomness_end_addr
 end address of emulator internal randomness section
 
mulator::u32 randomness_segment_length
 length of emulator internal randomness section
 
mulator::u32 num_threads
 
uint32_t NumberOfPipelineStages
 number of pipeline stages provided by the user
 
std::string funcContainingCipher
 name of function containing cipher to search in disassembled file
 
std::string compilerFlags
 compiler flags that will be parsed to tell the compiler how to compile
 
std::vector< std::string > externalBinaryInformation
 contains path to binary, disassembled file and .map file in case of directly provided binary
 
std::string externalMake
 

Detailed Description

Defines all settings regarding software simulations.

Definition at line 30 of file Definitions.hpp.

Member Data Documentation

◆ AlwaysRandomInputs

int* Software::SettingsStruct::AlwaysRandomInputs = NULL

Indices of the fresh random input signals.

Definition at line 47 of file Definitions.hpp.

◆ arch

mulator::Architecture Software::SettingsStruct::arch

ISA version of the binary.

Definition at line 97 of file Definitions.hpp.

◆ binary

std::vector<CodeSection> Software::SettingsStruct::binary

Definition at line 102 of file Definitions.hpp.

◆ ClockSignal

int Software::SettingsStruct::ClockSignal = 0

The index of the clock signal.

Definition at line 42 of file Definitions.hpp.

◆ CompactDistributions

char Software::SettingsStruct::CompactDistributions

Decision whether the evaluation should be performed in compact or normal mode.

Definition at line 35 of file Definitions.hpp.

◆ compilerFlags

std::string Software::SettingsStruct::compilerFlags

compiler flags that will be parsed to tell the compiler how to compile

Definition at line 114 of file Definitions.hpp.

◆ EndSim_NumberOfWaitCycles

int Software::SettingsStruct::EndSim_NumberOfWaitCycles = 0

Number of cycles to wait after each simulation.

Definition at line 62 of file Definitions.hpp.

◆ EndSimCondition_ClockCycles

int Software::SettingsStruct::EndSimCondition_ClockCycles

The number of clock cycles after which the simulation terminates.

Definition at line 58 of file Definitions.hpp.

◆ EndSimCondition_NumberOfSignals

int Software::SettingsStruct::EndSimCondition_NumberOfSignals

The bit width of the signal which terminates the simulation.

Definition at line 59 of file Definitions.hpp.

◆ EndSimCondition_Signals

int* Software::SettingsStruct::EndSimCondition_Signals = NULL

The indices of the single-bit signals terminating the simulation.

Definition at line 60 of file Definitions.hpp.

◆ EndSimCondition_Values

uint64_t* Software::SettingsStruct::EndSimCondition_Values = NULL

The values the signals have to reach to terminate the simulation.

Definition at line 61 of file Definitions.hpp.

◆ externalBinaryInformation

std::vector<std::string> Software::SettingsStruct::externalBinaryInformation

contains path to binary, disassembled file and .map file in case of directly provided binary

Definition at line 115 of file Definitions.hpp.

◆ externalMake

std::string Software::SettingsStruct::externalMake

Definition at line 116 of file Definitions.hpp.

◆ flash

MemoryRange Software::SettingsStruct::flash

Flash memory region for emulator.

Definition at line 98 of file Definitions.hpp.

◆ funcContainingCipher

std::string Software::SettingsStruct::funcContainingCipher

name of function containing cipher to search in disassembled file

Definition at line 113 of file Definitions.hpp.

◆ Group_Values

int** Software::SettingsStruct::Group_Values = NULL

The values assigned to the user-defined groups.

Definition at line 37 of file Definitions.hpp.

◆ halt_addresses

std::vector<mulator::u32> Software::SettingsStruct::halt_addresses

Definition at line 103 of file Definitions.hpp.

◆ Hardware

int Software::SettingsStruct::Hardware = 0

Decistion whether PROLEAD will be used for software or hardware.

Definition at line 40 of file Definitions.hpp.

◆ InitialSim_InputName

char** Software::SettingsStruct::InitialSim_InputName = NULL

A list of input names to create a link for the emulator.

Definition at line 52 of file Definitions.hpp.

◆ InitialSim_Inputs

int** Software::SettingsStruct::InitialSim_Inputs = NULL

The indices of the initialization signals.

Definition at line 51 of file Definitions.hpp.

◆ InitialSim_InputsLength

int* Software::SettingsStruct::InitialSim_InputsLength = NULL

Definition at line 54 of file Definitions.hpp.

◆ InitialSim_IsInitialized

uint8_t* Software::SettingsStruct::InitialSim_IsInitialized = NULL

Definition at line 56 of file Definitions.hpp.

◆ InitialSim_NumberOfClockCycles

int Software::SettingsStruct::InitialSim_NumberOfClockCycles

The number of clock cycles to initialize the simulation.

Definition at line 50 of file Definitions.hpp.

◆ InitialSim_NumberOfInputs

int Software::SettingsStruct::InitialSim_NumberOfInputs

The number of inputs which are assigned to initialize the simulation.

Definition at line 49 of file Definitions.hpp.

◆ InitialSim_PositionInEmulatorRam

std::unordered_map<std::string, uint32_t> Software::SettingsStruct::InitialSim_PositionInEmulatorRam

Definition at line 53 of file Definitions.hpp.

◆ InitialSim_Values

uint64_t** Software::SettingsStruct::InitialSim_Values = NULL

The signal values during the initialization cycles.

Definition at line 55 of file Definitions.hpp.

◆ length_occupied_ram

mulator::u32 Software::SettingsStruct::length_occupied_ram

Definition at line 106 of file Definitions.hpp.

◆ main_address

mulator::u32 Software::SettingsStruct::main_address

start address of main function

Definition at line 101 of file Definitions.hpp.

◆ Max_No_ClockCycles

int Software::SettingsStruct::Max_No_ClockCycles = 0

The maximum number of clock cycles to simulate.

Definition at line 43 of file Definitions.hpp.

◆ Max_no_of_Threads

int Software::SettingsStruct::Max_no_of_Threads

The maximum number of threads PROLEAD can use for parallelism.

Definition at line 32 of file Definitions.hpp.

◆ Max_No_ReportEntries

int Software::SettingsStruct::Max_No_ReportEntries

The maximum number of entries in the report.

Definition at line 44 of file Definitions.hpp.

◆ MaxDistanceMultivariet

int Software::SettingsStruct::MaxDistanceMultivariet = 0

The maximum distance in time, i.e. clock cycles, for multivariate adversaries.

Definition at line 66 of file Definitions.hpp.

◆ MaxNumberOfSharesGroupValues

int* Software::SettingsStruct::MaxNumberOfSharesGroupValues

The number of shares per input bit.

Definition at line 38 of file Definitions.hpp.

◆ MinimizeProbeSets

char Software::SettingsStruct::MinimizeProbeSets

Decision whether the number of probing sets should be minimized before the evaluation.

Definition at line 36 of file Definitions.hpp.

◆ num_threads

mulator::u32 Software::SettingsStruct::num_threads

Definition at line 110 of file Definitions.hpp.

◆ NumberOfAlwaysRandomInputs

int Software::SettingsStruct::NumberOfAlwaysRandomInputs

Number of fresh random inputs.

Definition at line 46 of file Definitions.hpp.

◆ NumberOfGroups

int Software::SettingsStruct::NumberOfGroups

The number of user-defined groups.

Definition at line 33 of file Definitions.hpp.

◆ NumberOfGroupValues

int Software::SettingsStruct::NumberOfGroupValues

The size of the group values, i.e. their bit length.

Definition at line 34 of file Definitions.hpp.

◆ NumberOfPipelineStages

uint32_t Software::SettingsStruct::NumberOfPipelineStages

number of pipeline stages provided by the user

Definition at line 112 of file Definitions.hpp.

◆ NumberOfSimulations

uint64_t Software::SettingsStruct::NumberOfSimulations = 0

The total number of simulations.

Definition at line 70 of file Definitions.hpp.

◆ NumberOfStepSimulations

uint64_t Software::SettingsStruct::NumberOfStepSimulations = 0

The number of simulations before the simulations are evaluated.

Definition at line 71 of file Definitions.hpp.

◆ NumberOfStepSimulationsToWrite

uint64_t Software::SettingsStruct::NumberOfStepSimulationsToWrite = 0

The number of simulations before a report is written.

Definition at line 72 of file Definitions.hpp.

◆ NumberOfTestClockCycles

int Software::SettingsStruct::NumberOfTestClockCycles = 0

The number of clock cycles in which the adversary can place probes.

Definition at line 68 of file Definitions.hpp.

◆ ram

MemoryRange Software::SettingsStruct::ram

RAM memory region for emulator.

Definition at line 99 of file Definitions.hpp.

◆ randomness_end_addr

mulator::u32 Software::SettingsStruct::randomness_end_addr

end address of emulator internal randomness section

Definition at line 108 of file Definitions.hpp.

◆ randomness_segment_length

mulator::u32 Software::SettingsStruct::randomness_segment_length

length of emulator internal randomness section

Definition at line 109 of file Definitions.hpp.

◆ randomness_start_addr

mulator::u32 Software::SettingsStruct::randomness_start_addr

start address of emulator internal randomness section

Definition at line 107 of file Definitions.hpp.

◆ start_address

mulator::u32 Software::SettingsStruct::start_address

address of cipher where PROLEAD starts to evaluate

Definition at line 100 of file Definitions.hpp.

◆ symbol_addresses

std::vector<mulator::u32> Software::SettingsStruct::symbol_addresses

Definition at line 104 of file Definitions.hpp.

◆ symbol_names

std::unordered_map<mulator::u32, std::string> Software::SettingsStruct::symbol_names

Definition at line 105 of file Definitions.hpp.

◆ TestClockCycles

int* Software::SettingsStruct::TestClockCycles = NULL

The particular clock cycles the adversary can target.

Definition at line 69 of file Definitions.hpp.

◆ TestMultivariate

int Software::SettingsStruct::TestMultivariate = 0

Decision whether univariate or multivariate adversaries should be considered.

Definition at line 65 of file Definitions.hpp.

◆ TestOrder

int Software::SettingsStruct::TestOrder = 0

The security order to test.

Definition at line 64 of file Definitions.hpp.

◆ TestTransitional

int Software::SettingsStruct::TestTransitional = 0

Decision whether transitional leakage is included.

Definition at line 67 of file Definitions.hpp.


The documentation for this struct was generated from the following file: