HAL  v4.5.0-83-g30c8f0afc
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
hal::hawkeye::SBoxCandidate Class Reference

An S-box candidate discovered within the round function of a round candidate. More...

#include </home/runner/work/hal/hal/plugins/hawkeye/include/hawkeye/sbox_lookup.h>

Collaboration diagram for hal::hawkeye::SBoxCandidate:
Collaboration graph

Public Member Functions

 SBoxCandidate ()=default
 Default constructor for SBoxCandidate. More...
 
 ~SBoxCandidate ()=default
 Default destructor for SBoxCandidate. More...
 

Public Attributes

const RoundCandidatem_candidate
 The RoundCandidate that the S-box candidate belongs to. More...
 
std::vector< Gate * > m_component
 The gates of the component which the S-box candidate is part of. More...
 
std::set< Gate * > m_input_gates
 The input gates of the S-box candidate (will be flip-flops). More...
 
std::set< Gate * > m_output_gates
 The output gates of the S-box candidate (usually combinational logic that is input to the linear layer). More...
 

Detailed Description

An S-box candidate discovered within the round function of a round candidate.

This class stores all information related to an S-box candidate discovered within the round function of a round candidate, such as the RoundCandidate it belongs to, the connected component it is part of, and its input and output gates.

Definition at line 57 of file sbox_lookup.h.

Constructor & Destructor Documentation

◆ SBoxCandidate()

hal::hawkeye::SBoxCandidate::SBoxCandidate ( )
default

Default constructor for SBoxCandidate.

◆ ~SBoxCandidate()

hal::hawkeye::SBoxCandidate::~SBoxCandidate ( )
default

Default destructor for SBoxCandidate.

Member Data Documentation

◆ m_candidate

const RoundCandidate* hal::hawkeye::SBoxCandidate::m_candidate

The RoundCandidate that the S-box candidate belongs to.

Definition at line 73 of file sbox_lookup.h.

Referenced by hal::hawkeye::identify_sbox(), hal::hawkeye::locate_sboxes(), and hal::PYBIND11_PLUGIN().

◆ m_component

std::vector<Gate*> hal::hawkeye::SBoxCandidate::m_component

The gates of the component which the S-box candidate is part of.

Definition at line 78 of file sbox_lookup.h.

Referenced by hal::hawkeye::identify_sbox(), hal::hawkeye::locate_sboxes(), and hal::PYBIND11_PLUGIN().

◆ m_input_gates

std::set<Gate*> hal::hawkeye::SBoxCandidate::m_input_gates

The input gates of the S-box candidate (will be flip-flops).

Definition at line 83 of file sbox_lookup.h.

Referenced by hal::hawkeye::identify_sbox(), hal::hawkeye::locate_sboxes(), and hal::PYBIND11_PLUGIN().

◆ m_output_gates

std::set<Gate*> hal::hawkeye::SBoxCandidate::m_output_gates

The output gates of the S-box candidate (usually combinational logic that is input to the linear layer).

Definition at line 88 of file sbox_lookup.h.

Referenced by hal::hawkeye::identify_sbox(), hal::hawkeye::locate_sboxes(), and hal::PYBIND11_PLUGIN().


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