cloud9_root/src/cloud9/lib/Core/CacheDriver.cpp
/* This is an entry-level wrapper for checking all potential (side-channel) leaks and
 * attacks in the software under test */
This is an entry-level wrapper for checking all potential (side-channel) leaks and
attacks in the software under test
This is an entry - level wrapper for checking all potential ( side - channel ) leaks and attacks in the software under test
void CacheDriver::checkForAttackAndLeak(ExecutionState& state, TimingSolver* solver) {
#define __CACHE_CHECK_COUNTING
#ifdef __CACHE_CHECK_COUNTING
	checkForTimingAttack(state, solver);
	checkForSeqAttack(state, solver);
#endif
#ifdef __CACHE_CHECK_TIMING_LEAK
	checkForByteLeakFromMissCount(state, solver);
#endif
#ifdef __CACHE_CHECK_SEQ_LEAK
	checkForByteLeakFromSequence(state, solver, seqConstraintLog);
#endif
#ifdef __CACHE_CHECK_SEQ_LEAK_LRU
	checkForByteLeakFromSequence(state, solver, CacheChannelLRU::seqConstraintLogLRU);
#endif
}
void CacheDriver :: checkForAttackAndLeak ( ExecutionState & state , TimingSolver * solver ) { #define __CACHE_CHECK_COUNTING #ifdef __CACHE_CHECK_COUNTING checkForTimingAttack ( state , solver ) ; checkForSeqAttack ( state , solver ) ; #endif #ifdef __CACHE_CHECK_TIMING_LEAK checkForByteLeakFromMissCount ( state , solver ) ; #endif #ifdef __CACHE_CHECK_SEQ_LEAK checkForByteLeakFromSequence ( state , solver , seqConstraintLog ) ; #endif #ifdef __CACHE_CHECK_SEQ_LEAK_LRU checkForByteLeakFromSequence ( state , solver , CacheChannelLRU :: seqConstraintLogLRU ) ; #endif }
This is an entry-level wrapper for checking all potential (side-channel) leaks and
 attacks in the software under test
This is an entry - level wrapper for checking all potential ( side - channel ) leaks and attacks in the software under test
 // Daniel. /* call checkers to detect (1) timing attacks and/or (2) seq-based attack */ /* **** these are checkers based on counting the potential number of keys */ /* check for information leaks at bit-level and byte-level */ /* **** does not count keys, check whether the observation differs by changing bits */ //checkForBitLeakFromMissCount(state, solver); /* check whether observation differs by changing bytes */ /* check whether the observation of hit/miss sequence differs by changing bit */ //checkForBitLeakFromSequence(state, solver, seqConstraintLog); /* check whether the observation of hit/miss sequence differs by changing byte */ /* check whether the observation of hit/miss sequence differs by changing bit */ //checkForBitLeakFromSequence(state, solver, CacheChannelLRU::seqConstraintLogLRU); /* check whether the observation of hit/miss sequence differs by changing byte */