PROLEAD
A Probing-Based Leakage Detection Tool for Hardware and Software
|
Functions | |
void | GetProbingSets (Software::ThreadSimulationStruct &ThreadSimulation, SettingsStruct &Settings, Software::TestStruct &Test, std::vector< std::tuple< uint32_t, uint32_t > > &OrderOverTwoCombination, std::vector< std::vector< uint32_t > > &ProbeInfoToStandardProbe, uint64_t SimulationIndex) |
Generate probing sets from single probes, does it for any order and univariate and multivariate. | |
void | GetMultivariateProbingSets (std::vector< std::vector< Software::ProbesStruct > > &OneSimulationStandardProbes, SettingsStruct &Settings, Software::TestStruct &Test, std::vector< std::tuple< uint32_t, uint32_t > > &OrderOverTwoCombination, std::vector< std::vector< uint32_t > > &ProbeInfoToStandardProbe, uint32_t ThreadIndex, uint32_t SimulationIndex) |
Get the Multivariate Probing Sets object. | |
bool | InDistance (Software::SettingsStruct &Settings, std::vector< Software::ProbesStruct > &ProbingSet) |
uint32_t | MemoryConsumption () |
void | CreateNormalProbe (std::vector< uint8_t > &NormalProbesRegister, std::vector< Software::ProbesStruct > &StandardProbes, std::vector< std::vector< uint8_t > > &ProbeValueRegister, uint32_t &ProbeIndex, uint64_t &ProbeInfo, uint32_t RegisterTransitionCycle, uint32_t InstrNr, uint64_t SimulationIdx, uint32_t DestinationRegisterValue, uint8_t RegNr) |
Create a Normal Probe object. | |
void | CreateHorizontalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint32_t RegisterTransitionCycle, uint8_t ExtensionSize, uint32_t &ProbeIndex, uint32_t InstrNr, uint8_t RegisterNumber) |
Create a Horizontal Probe. | |
void | CreateLargeVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint64_t &ProbeInfo, uint32_t &ProbeIndex, uint32_t TransCycleRegNr, uint32_t TransCyclePartnerRegNr) |
Create a Large Vertical Probe. | |
void | CreateSmallVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint64_t &ProbeInfo, uint32_t &ProbeIndex, uint32_t TransCycleRegNr, uint32_t CyclePartnerRegNr) |
Create a Small Vertical Probe. | |
void | CreateLargeFullHorizontalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint64_t &ProbeInfo, uint32_t &ProbeIndex, uint32_t TransCycleRegNr, uint32_t TransCyclePartnerRegNr) |
Create a Large Full Horizontal Probe. | |
void | CreateSmallFullHorizontalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint64_t &ProbeInfo, uint32_t &ProbeIndex, uint32_t TransCycleRegNr, uint32_t CyclePartnerRegNr) |
Create a Small Full Horizontal Probe. | |
void | CreateLargeFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t RegNr, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueRegNr, uint32_t TransValuePC, uint32_t TransValuePSR) |
Create a Large Full Vertical Probe. | |
void | CreateSmallFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t RegNr1, uint8_t RegNr2, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueReg1, uint32_t TransValueReg2) |
Create a Small Full Vertical Probe object. | |
void | CreateOneRegisterOnlyFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t RegNr1, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueRegNr) |
Create a One Register Only Full Vertical Probe object. | |
void | CreateDSPLargeFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t low_RegNr, uint8_t high_RegNr, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueLowRegNr, uint32_t TransValueHighRegNr, uint32_t TransValuePC, uint32_t TransValuePSR) |
void | CreateDSPSmallFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t low_RegNr, uint8_t high_RegNr, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueLowRegNr, uint32_t TransValueHighRegNr, uint32_t TransValuePC) |
Create a. | |
void | CreateMemoryProbe () |
void | CreateMemShadowProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &MemoryShadowRegisterProbesIncluded, uint64_t ProbeInfo, uint32_t &ProbeIndex, uint32_t memory_shadow_register, uint32_t next_shadow_register_value, uint32_t TransitionCycle) |
Create a Mem Shadow Probe probe. | |
void | CreateSeperateLoadStoreMemShadowProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &MemoryShadowRegisterProbesIncluded, uint32_t RegNr, uint32_t InstrNr, uint32_t &ProbeIndex, uint32_t load_store_memory_shadow_register, uint32_t next_load_store_shadow_register_value, uint32_t TransitionCycle, uint32_t ExtensionSize, uint32_t LoadStoreFlag) |
Create a Seperate Load Store Mem Shadow Probe probe. | |
void | CreateHorizontalMemShadowProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint32_t InstrNr, uint32_t &ProbeIndex, uint8_t RegNr, uint32_t memory_shadow_register, uint32_t next_shadow_register_value, uint32_t TransitionCycle, uint32_t ExtensionSize) |
Create a Horizontal Mem Shadow Probe probe. | |
void | CreatePipelineForwardingProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &PipelineForwardingProbes, uint8_t BitIdx, uint32_t &ProbeIndex, uint64_t ProbeInfo, uint32_t NrOfPipelineStages, std::vector<::mulator::CPU_State > &pipeline_cpu_states) |
Create a Pipeline Forwarding Probe probe. | |
void | ExtractAllProbeInfo (uint8_t &Register, uint8_t &Id, uint8_t &PartnerRegister, uint32_t &Cycle, uint8_t &Bit, uint16_t &ExtensionSize, uint8_t &Dependency, Software::ProbesStruct &ProbeFromProbingSet) |
extract all informations from probe info | |
void | ExtractBitProbeInfo (uint8_t &Bit, Software::ProbesStruct &ProbeFromProbingSet) |
extract bit index from probe info | |
void | ExtractCycleProbeInfo (uint32_t &Cycle, Software::ProbesStruct &ProbeFromProbingSet) |
extract cycle from probe info | |
void | ExtractIdProbeInfo (uint8_t &Id, Software::ProbesStruct &ProbeFromProbingSet) |
extract id from probe info | |
void | ExtractRegisterProbeInfo (uint8_t &Register, Software::ProbesStruct &ProbeFromProbingSet) |
extract register from probe info | |
void | ExtractDependencyProbeInfo (uint8_t &Dependency, Software::ProbesStruct &ProbeFromProbingSet) |
Extract the dependency from probe info. | |
void | ExtractExtensionSizeProbeInfo (uint16_t &ExtensionSize, Software::ProbesStruct &ProbeFromProbingSet) |
Extract the extension size from probe info. | |
void | FillHigherOrderRedundantCases (std::vector< std::vector< uint32_t > > &) |
void | RedundancyNormalProbe (std::vector< std::vector< uint32_t > > &) |
void | RedundancyHorizontalProbe (std::vector< std::vector< uint32_t > > &) |
void | RedundancyVerticalProbe (std::vector< std::vector< uint32_t > > &) |
void | RedundancyFullHorizontalProbe (std::vector< std::vector< uint32_t > > &) |
void | RedundancyFullVerticalProbe (std::vector< std::vector< uint32_t > > &) |
void | ProbeInfoToStandardProbeMapping (std::vector< std::vector< uint32_t > > &ProbeMapping, Software::HelperStruct &Helper, Software::SettingsStruct &Setting) |
void | Univariate_AddCombinationToProbingSet (Software::ProbingSetStruct &ProbingSet, std::vector< Software::ProbesStruct > &Combination, std::vector< std::tuple< uint32_t, uint32_t > > &OrderOverTwoCombination, std::vector< std::vector< uint32_t > > &ProbeMapping, std::vector< std::vector< uint32_t > > &ResolvedProbes, uint32_t TestOrder) |
void | Multivariate_AddCombinationToProbingSet (Software::ProbingSetStruct &ProbingSet, std::vector< Software::ProbesStruct > &Combination, std::vector< std::tuple< uint32_t, uint32_t > > &OrderOverTwoCombination, std::vector< std::vector< uint32_t > > &ProbeMapping, std::vector< std::vector< uint32_t > > &ResolvedProbes, uint32_t TestOrder) |
void Software::Probing::CreateDSPLargeFullVerticalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
std::vector< uint8_t > & | FullVerticalProbes, | ||
uint8_t | BitIdx, | ||
uint8_t | low_RegNr, | ||
uint8_t | high_RegNr, | ||
uint32_t & | ProbeIndex, | ||
uint64_t | ProbeInfo, | ||
std::vector< uint32_t > & | RegisterValues, | ||
uint32_t | TransValueLowRegNr, | ||
uint32_t | TransValueHighRegNr, | ||
uint32_t | TransValuePC, | ||
uint32_t | TransValuePSR | ||
) |
StandardProbes | list of generated probes |
FullVerticalProbes | all register indices that are used in the probe |
BitIdx | bit index of probed register |
low_RegNr | lower register number of dsp instruction |
high_RegNr | higher register number of dsp instruction |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
ProbeInfo | probe information of ProbesStruct that will be filled |
RegisterValues | values of all probed registers for this probe |
TransValueLowRegNr | old value of lower register |
TransValueHighRegNr | old value of higher register |
TransValuePC | old value of pc register |
TransValuePSR | old value of psr register |
void Software::Probing::CreateDSPSmallFullVerticalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
std::vector< uint8_t > & | FullVerticalProbes, | ||
uint8_t | BitIdx, | ||
uint8_t | low_RegNr, | ||
uint8_t | high_RegNr, | ||
uint32_t & | ProbeIndex, | ||
uint64_t | ProbeInfo, | ||
std::vector< uint32_t > & | RegisterValues, | ||
uint32_t | TransValueLowRegNr, | ||
uint32_t | TransValueHighRegNr, | ||
uint32_t | TransValuePC | ||
) |
Create a.
StandardProbes | list of generated probes |
FullVerticalProbes | all register indices that are used in the probe |
BitIdx | bit index of probed register |
low_RegNr | lower register number of dsp instruction |
high_RegNr | higher register number of dsp instruction |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
ProbeInfo | probe information of ProbesStruct that will be filled |
RegisterValues | values of all probed registers for this probe |
TransValueLowRegNr | old value of lower register |
TransValueHighRegNr | old value of higher register |
TransValuePC | old value of pc register |
void Software::Probing::CreateHorizontalMemShadowProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
uint32_t | InstrNr, | ||
uint32_t & | ProbeIndex, | ||
uint8_t | RegNr, | ||
uint32_t | memory_shadow_register, | ||
uint32_t | next_shadow_register_value, | ||
uint32_t | TransitionCycle, | ||
uint32_t | ExtensionSize | ||
) |
Create a Horizontal Mem Shadow Probe probe.
StandardProbes | list of generated probes |
InstrNr | instruction number when probe was generated |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
RegNr | register number if multiple probes in one instructions are generated to ensure sorted order |
memory_shadow_register | old value of memory shadow register |
next_shadow_register_value | new value of memory shadow register |
TransitionCycle | transition cycle of register |
ExtensionSize | How many standard probes will be created when resolving the probe |
void Software::Probing::CreateHorizontalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
uint32_t | RegisterTransitionCycle, | ||
uint8_t | ExtensionSize, | ||
uint32_t & | ProbeIndex, | ||
uint32_t | InstrNr, | ||
uint8_t | RegisterNumber | ||
) |
Create a Horizontal Probe.
StandardProbes | list of generated probes |
RegisterTransitionCycle | transition cycle of register |
ExtensionSize | How many standard probes will be created when resolving the probe |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
InstrNr | instruction number when probe was generated |
RegisterNumber | Number of Register that is probed |
void Software::Probing::CreateLargeFullHorizontalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
uint64_t & | ProbeInfo, | ||
uint32_t & | ProbeIndex, | ||
uint32_t | TransCycleRegNr, | ||
uint32_t | TransCyclePartnerRegNr | ||
) |
Create a Large Full Horizontal Probe.
StandardProbes | list of generated probes |
ProbeInfo | probe information of ProbesStruct that will be filled |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
TransCycleRegNr | transition cycle of register |
TransCyclePartnerRegNr | transition cycle of partner register |
void Software::Probing::CreateLargeFullVerticalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
std::vector< uint8_t > & | FullVerticalProbes, | ||
uint8_t | BitIdx, | ||
uint8_t | RegNr, | ||
uint32_t & | ProbeIndex, | ||
uint64_t | ProbeInfo, | ||
std::vector< uint32_t > & | RegisterValues, | ||
uint32_t | TransValueRegNr, | ||
uint32_t | TransValuePC, | ||
uint32_t | TransValuePSR | ||
) |
Create a Large Full Vertical Probe.
StandardProbes | list of generated probes |
FullVerticalProbes | all register indices that are used in the probe |
BitIdx | bit index of probed register |
RegNr | Number of Register that is probed |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
ProbeInfo | probe information of ProbesStruct that will be filled |
RegisterValues | values of all probed registers for this probe |
TransValueRegNr | old value of register |
TransValuePC | old value of PC |
TransValuePSR | old value of PSR |
void Software::Probing::CreateLargeVerticalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
uint64_t & | ProbeInfo, | ||
uint32_t & | ProbeIndex, | ||
uint32_t | TransCycleRegNr, | ||
uint32_t | TransCyclePartnerRegNr | ||
) |
Create a Large Vertical Probe.
StandardProbes | list of generated probes |
ProbeInfo | probe information of ProbesStruct that will be filled |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
TransCycleRegNr | transition cycle of register |
TransCyclePartnerRegNr | transition cycle of partner register |
void Software::Probing::CreateMemoryProbe | ( | ) |
void Software::Probing::CreateMemShadowProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
std::vector< uint8_t > & | MemoryShadowRegisterProbesIncluded, | ||
uint64_t | ProbeInfo, | ||
uint32_t & | ProbeIndex, | ||
uint32_t | memory_shadow_register, | ||
uint32_t | next_shadow_register_value, | ||
uint32_t | TransitionCycle | ||
) |
Create a Mem Shadow Probe probe.
StandardProbes | list of generated probes |
MemoryShadowRegisterProbesIncluded | bits that are considered when probing memory shadow register |
ProbeInfo | probe information of ProbesStruct that will be filled |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
memory_shadow_register | old value of memory shadow register |
next_shadow_register_value | new value of memory shadow register |
TransitionCycle | transition cycle of register |
void Software::Probing::CreateNormalProbe | ( | std::vector< uint8_t > & | NormalProbesRegister, |
std::vector< Software::ProbesStruct > & | StandardProbes, | ||
std::vector< std::vector< uint8_t > > & | ProbeValueRegister, | ||
uint32_t & | ProbeIndex, | ||
uint64_t & | ProbeInfo, | ||
uint32_t | RegisterTransitionCycle, | ||
uint32_t | InstrNr, | ||
uint64_t | SimulationIdx, | ||
uint32_t | DestinationRegisterValue, | ||
uint8_t | RegNr | ||
) |
Create a Normal Probe object.
NormalProbesRegister | list of bit indices that will be probed for this register |
StandardProbes | list of generated probes |
ProbeValueRegister | list to store probed values of probed register in this probed cycle |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
ProbeInfo | probe information of ProbesStruct that will be filled |
RegisterTransitionCycle | transition cycle of register |
InstrNr | instruction number when probe was generated |
SimulationIdx | current simulation number |
DestinationRegisterValue | value of probed destination register |
RegNr | Number of Register that is probed |
void Software::Probing::CreateOneRegisterOnlyFullVerticalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
std::vector< uint8_t > & | FullVerticalProbes, | ||
uint8_t | BitIdx, | ||
uint8_t | RegNr1, | ||
uint32_t & | ProbeIndex, | ||
uint64_t | ProbeInfo, | ||
std::vector< uint32_t > & | RegisterValues, | ||
uint32_t | TransValueRegNr | ||
) |
Create a One Register Only Full Vertical Probe object.
StandardProbes | list of generated probes |
FullVerticalProbes | all register indices that are used in the probe |
BitIdx | bit index of probed register |
RegNr1 | Number of Register that is probed |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
ProbeInfo | probe information of ProbesStruct that will be filled |
RegisterValues | values of all probed registers for this probe |
TransValueRegNr | old value of register |
void Software::Probing::CreatePipelineForwardingProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
std::vector< uint8_t > & | PipelineForwardingProbes, | ||
uint8_t | BitIdx, | ||
uint32_t & | ProbeIndex, | ||
uint64_t | ProbeInfo, | ||
uint32_t | NrOfPipelineStages, | ||
std::vector<::mulator::CPU_State > & | pipeline_cpu_states | ||
) |
Create a Pipeline Forwarding Probe probe.
StandardProbes | list of generated probes |
PipelineForwardingProbes | |
BitIdx | bit index for pipeline forwarding probe (i-th bit of registers) |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
ProbeInfo | probe information of ProbesStruct that will be filled |
NrOfPipelineStages | number of pipeline stages |
pipeline_cpu_states | cpu states of last #NrOfPipelineStages cycles |
void Software::Probing::CreateSeperateLoadStoreMemShadowProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
std::vector< uint8_t > & | MemoryShadowRegisterProbesIncluded, | ||
uint32_t | RegNr, | ||
uint32_t | InstrNr, | ||
uint32_t & | ProbeIndex, | ||
uint32_t | load_store_memory_shadow_register, | ||
uint32_t | next_load_store_shadow_register_value, | ||
uint32_t | TransitionCycle, | ||
uint32_t | ExtensionSize, | ||
uint32_t | LoadStoreFlag | ||
) |
Create a Seperate Load Store Mem Shadow Probe probe.
StandardProbes | list of generated probes |
MemoryShadowRegisterProbesIncluded | bits that are considered when probing memory shadow register |
RegNr | register number if multiple probes in one instructions are generated to ensure sorted order |
InstrNr | instruction number when probe was generated |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
load_store_memory_shadow_register | old value of load/store memory shadow register |
next_load_store_shadow_register_value | new value of load/store memory shadow register |
TransitionCycle | transition cycle of memory shadow register |
ExtensionSize | How many standard probes will be created when resolving the probe |
LoadStoreFlag | Decide memory register is for load or store operation |
void Software::Probing::CreateSmallFullHorizontalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
uint64_t & | ProbeInfo, | ||
uint32_t & | ProbeIndex, | ||
uint32_t | TransCycleRegNr, | ||
uint32_t | CyclePartnerRegNr | ||
) |
Create a Small Full Horizontal Probe.
StandardProbes | list of generated probes |
ProbeInfo | probe information of ProbesStruct that will be filled |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
TransCycleRegNr | transition cycle of register |
CyclePartnerRegNr | cycle of partner register |
void Software::Probing::CreateSmallFullVerticalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
std::vector< uint8_t > & | FullVerticalProbes, | ||
uint8_t | BitIdx, | ||
uint8_t | RegNr1, | ||
uint8_t | RegNr2, | ||
uint32_t & | ProbeIndex, | ||
uint64_t | ProbeInfo, | ||
std::vector< uint32_t > & | RegisterValues, | ||
uint32_t | TransValueReg1, | ||
uint32_t | TransValueReg2 | ||
) |
Create a Small Full Vertical Probe object.
StandardProbes | list of generated probes |
FullVerticalProbes | all register indices that are used in the probe |
BitIdx | bit index of probed register |
RegNr1 | Number of Register that is probed |
RegNr2 | Number of Register that is probed |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
ProbeInfo | probe information of ProbesStruct that will be filled |
RegisterValues | values of all probed registers for this probe |
TransValueReg1 | old value of first register |
TransValueReg2 | old value of second register |
void Software::Probing::CreateSmallVerticalProbe | ( | std::vector< Software::ProbesStruct > & | StandardProbes, |
uint64_t & | ProbeInfo, | ||
uint32_t & | ProbeIndex, | ||
uint32_t | TransCycleRegNr, | ||
uint32_t | CyclePartnerRegNr | ||
) |
Create a Small Vertical Probe.
StandardProbes | list of generated probes |
ProbeInfo | probe information of ProbesStruct that will be filled |
ProbeIndex | index of probe in list of standard probes where new probe will be inserted |
TransCycleRegNr | transition cycle of register |
CyclePartnerRegNr | cycle of partner register |
void Software::Probing::ExtractAllProbeInfo | ( | uint8_t & | Register, |
uint8_t & | Id, | ||
uint8_t & | PartnerRegister, | ||
uint32_t & | Cycle, | ||
uint8_t & | Bit, | ||
uint16_t & | ExtensionSize, | ||
uint8_t & | Dependency, | ||
Software::ProbesStruct & | ProbeFromProbingSet | ||
) |
extract all informations from probe info
Register | register information of probe |
Id | id information of probe |
PartnerRegister | partner register information of probe |
Cycle | cycle information of probe |
Bit | bit information of probe |
ExtensionSize | How many standard probes will be created when resolving the probe |
Dependency | dependency information of probe |
ProbeFromProbingSet | probe to extract the dependency information |
void Software::Probing::ExtractBitProbeInfo | ( | uint8_t & | Bit, |
Software::ProbesStruct & | ProbeFromProbingSet | ||
) |
extract bit index from probe info
Bit | bit information of probe |
ProbeFromProbingSet | probe to extract the dependency information |
void Software::Probing::ExtractCycleProbeInfo | ( | uint32_t & | Cycle, |
Software::ProbesStruct & | ProbeFromProbingSet | ||
) |
extract cycle from probe info
Cycle | cycle information of probe |
ProbeFromProbingSet | probe to extract the dependency information |
void Software::Probing::ExtractDependencyProbeInfo | ( | uint8_t & | Dependency, |
Software::ProbesStruct & | ProbeFromProbingSet | ||
) |
Extract the dependency from probe info.
Dependency | dependency information of probe |
ProbeFromProbingSet | probe to extract the dependency information |
void Software::Probing::ExtractExtensionSizeProbeInfo | ( | uint16_t & | ExtensionSize, |
Software::ProbesStruct & | ProbeFromProbingSet | ||
) |
Extract the extension size from probe info.
ExtensionSize | extension size information of probe |
ProbeFromProbingSet | probe to extract the dependency information |
void Software::Probing::ExtractIdProbeInfo | ( | uint8_t & | Id, |
Software::ProbesStruct & | ProbeFromProbingSet | ||
) |
extract id from probe info
Id | id information of probe |
ProbeFromProbingSet | probe to extract the dependency information |
void Software::Probing::ExtractRegisterProbeInfo | ( | uint8_t & | Register, |
Software::ProbesStruct & | ProbeFromProbingSet | ||
) |
extract register from probe info
Register | register information of probe |
ProbeFromProbingSet | probe to extract the register information |
void Software::Probing::FillHigherOrderRedundantCases | ( | std::vector< std::vector< uint32_t > > & | ) |
void Software::Probing::GetMultivariateProbingSets | ( | std::vector< std::vector< Software::ProbesStruct > > & | OneSimulationStandardProbes, |
SettingsStruct & | Settings, | ||
Software::TestStruct & | Test, | ||
std::vector< std::tuple< uint32_t, uint32_t > > & | OrderOverTwoCombination, | ||
std::vector< std::vector< uint32_t > > & | ProbeInfoToStandardProbe, | ||
uint32_t | ThreadIndex, | ||
uint32_t | SimulationIndex | ||
) |
Get the Multivariate Probing Sets object.
OneSimulationStandardProbes | standard probes of one full simulation |
Settings | The general settings, i.e. parameters for statistical power analysis. |
Test | The test settings, i.e. the unique probes and the contingency tables. |
OrderOverTwoCombination | all pairwise combintions of possible probes |
ProbeInfoToStandardProbe | mapping between probes generated by prolead and resolved standard probes |
ThreadIndex | thread number |
SimulationIndex | current simulation number |
void Software::Probing::GetProbingSets | ( | Software::ThreadSimulationStruct & | ThreadSimulation, |
SettingsStruct & | Settings, | ||
Software::TestStruct & | Test, | ||
std::vector< std::tuple< uint32_t, uint32_t > > & | OrderOverTwoCombination, | ||
std::vector< std::vector< uint32_t > > & | ProbeInfoToStandardProbe, | ||
uint64_t | SimulationIndex | ||
) |
Generate probing sets from single probes, does it for any order and univariate and multivariate.
ThreadSimulation | thread simulation struct to get the probes from |
Settings | The general settings, i.e. parameters for statistical power analysis. |
Test | The test settings, i.e. the unique probes and the contingency tables. |
OrderOverTwoCombination | all pairwise combintions of possible probes |
ProbeInfoToStandardProbe | mapping between probes generated by prolead and resolved standard probes |
SimulationIndex | current simulation number |
bool Software::Probing::InDistance | ( | Software::SettingsStruct & | Settings, |
std::vector< Software::ProbesStruct > & | ProbingSet | ||
) |
Settings | The general settings, i.e. parameters for statistical power analysis. |
ProbingSet | probing set, consisting of d probes |
uint32_t Software::Probing::MemoryConsumption | ( | ) |
void Software::Probing::Multivariate_AddCombinationToProbingSet | ( | Software::ProbingSetStruct & | ProbingSet, |
std::vector< Software::ProbesStruct > & | Combination, | ||
std::vector< std::tuple< uint32_t, uint32_t > > & | OrderOverTwoCombination, | ||
std::vector< std::vector< uint32_t > > & | ProbeMapping, | ||
std::vector< std::vector< uint32_t > > & | ResolvedProbes, | ||
uint32_t | TestOrder | ||
) |
ProbingSet | probing set that will be filled with d probes |
Combination | combinations of d probes |
OrderOverTwoCombination | all pairwise combintions of possible probes |
ProbeMapping | mapping between probes generated by prolead and resolved standard probes |
ResolvedProbes | resolved standard probes from generated probes |
TestOrder | The security order to test. |
void Software::Probing::ProbeInfoToStandardProbeMapping | ( | std::vector< std::vector< uint32_t > > & | ProbeMapping, |
Software::HelperStruct & | Helper, | ||
Software::SettingsStruct & | Setting | ||
) |
ProbeMapping | mapping between probes generated by prolead and resolved standard probes |
Helper | helper struct that track meta information for probes |
Setting | settings regarding simulations |
void Software::Probing::RedundancyFullHorizontalProbe | ( | std::vector< std::vector< uint32_t > > & | ) |
void Software::Probing::RedundancyFullVerticalProbe | ( | std::vector< std::vector< uint32_t > > & | ) |
void Software::Probing::RedundancyHorizontalProbe | ( | std::vector< std::vector< uint32_t > > & | ) |
void Software::Probing::RedundancyNormalProbe | ( | std::vector< std::vector< uint32_t > > & | ) |
void Software::Probing::RedundancyVerticalProbe | ( | std::vector< std::vector< uint32_t > > & | ) |
void Software::Probing::Univariate_AddCombinationToProbingSet | ( | Software::ProbingSetStruct & | ProbingSet, |
std::vector< Software::ProbesStruct > & | Combination, | ||
std::vector< std::tuple< uint32_t, uint32_t > > & | OrderOverTwoCombination, | ||
std::vector< std::vector< uint32_t > > & | ProbeMapping, | ||
std::vector< std::vector< uint32_t > > & | ResolvedProbes, | ||
uint32_t | TestOrder | ||
) |
ProbingSet | probing set that will be filled with d probes |
Combination | combinations of d probes |
OrderOverTwoCombination | all pairwise combintions of possible probes |
ProbeMapping | mapping between probes generated by prolead and resolved standard probes |
ResolvedProbes | resolved standard probes from generated probes |
TestOrder | The security order to test. |