Commit 8fe310f8 authored by Rémi Huguet's avatar Rémi Huguet
Browse files

fix: remove unused private APIs

parent 9358e52e
Loading
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -21,11 +21,10 @@ from .analysis import ( # noqa:F401
    BaseAttack, CPAAttack, DPAAttack,
    ANOVAAttack, NICVAttack, SNRAttack,
    BasePartitionedAttack, MIAAttack,
    _Attack,
    BaseReverse, CPAReverse, DPAReverse,
    ANOVAReverse, NICVReverse, SNRReverse,
    BasePartitionedReverse, MIAReverse,
    _Reverse, TemplateAttack, TemplateDPAAttack
    TemplateAttack, TemplateDPAAttack
)
from .preprocesses import preprocess, Preprocess, PreprocessError  # noqa:F401
from . import preprocesses  # noqa: F401
+1 −1
Original line number Diff line number Diff line
@@ -8,4 +8,4 @@ from ._analysis import ( # noqa: F401
    MIAAttack, MIAReverse
)
from .template import TemplateAttack, TemplateDPAAttack, BaseTemplateAttack  # noqa: F401
from .base import BaseAttack, BasePartitionedAttack, BasePartitionedReverse, BaseReverse, _Attack, _Reverse   # noqa: F401
from .base import BaseAttack, BasePartitionedAttack, BasePartitionedReverse, BaseReverse   # noqa: F401
+0 −34
Original line number Diff line number Diff line
@@ -250,40 +250,6 @@ class BaseReverse(_BaseAnalysis):
    pass


class _MetaAnalysis:

    def __new__(cls, distinguisher, *args, **kwargs):
        klass = type.__new__(type, f'{distinguisher.__class__.__name__}Analysis', (cls._base_klass, type(distinguisher).__bases__[1]), {})
        obj = klass(*args, **kwargs)
        init_args = inspect.getfullargspec(type(distinguisher)).args
        values = inspect.getmembers(distinguisher)
        for arg in init_args[1:]:
            val = list(filter(lambda t: t[0] == arg, values))[0]
            if val:
                setattr(obj, arg, val[1])
        return obj


class _Attack(_MetaAnalysis):
    """Returns an analysis object created from a standalone distinguisher.

    It has been implemented for backward compatibility with previous eshard libraries and is not intented as a public API.

    """

    _base_klass = BaseAttack


class _Reverse(_MetaAnalysis):
    """Returns an analysis object created from a standalone distinguisher.

    It has been implemented for backward compatibility with previous eshard libraries and is not intented as a public API.

    """

    _base_klass = BaseReverse


class BasePartitionedReverse(BaseReverse):
    def __init__(self, partitions=None, *args, **kwargs):
        distinguishers.partitioned._set_partitions(self, partitions)
+0 −23
Original line number Diff line number Diff line
@@ -518,26 +518,3 @@ def test_mia_bin_edges_init(sf):
    a = scared.MIAAttack(bin_edges=np.arange(258), selection_function=sf, model=scared.HammingWeight(), discriminant=scared.abssum)
    assert np.array_equal(a.bin_edges, np.arange(258))
    assert isinstance(str(a), str)


def test_analysis_created_with_standalone_distinguisher(sf, container):
    d = scared.CPADistinguisher()
    analysis = scared._Attack(distinguisher=d, selection_function=sf, discriminant=scared.maxabs, model=scared.Monobit(4), convergence_step=150)

    analysis.run(container)
    assert (256, 16, 2) == analysis.convergence_traces.shape
    assert (256, 16) == analysis.results.shape[0:2]
    assert (256, 16) == analysis.scores.shape
    assert np.array_equal(analysis.scores, analysis.convergence_traces[:, :, -1])
    assert isinstance(str(d), str)

    d = scared.ANOVADistinguisher(precision='float64', partitions=np.arange(2))
    analysis = scared._Attack(distinguisher=d, selection_function=sf, discriminant=scared.maxabs, model=scared.Monobit(4), convergence_step=150)
    analysis.run(container)
    assert analysis.precision == 'float64'
    assert np.array_equal(analysis.partitions, np.arange(2))
    assert (256, 16, 2) == analysis.convergence_traces.shape
    assert (256, 16) == analysis.results.shape[0:2]
    assert (256, 16) == analysis.scores.shape
    assert np.array_equal(analysis.scores, analysis.convergence_traces[:, :, -1])
    assert isinstance(str(d), str)
+0 −17
Original line number Diff line number Diff line
@@ -260,20 +260,3 @@ def test_mia_bin_edges_init(sf):
    a = scared.MIAReverse(bin_edges=np.arange(258), selection_function=sf, model=scared.HammingWeight())
    assert np.array_equal(a.bin_edges, np.arange(258))
    assert isinstance(str(a), str)


def test_analysis_created_with_standalone_distinguisher(sf, container):
    d = scared.CPADistinguisher()
    analysis = scared._Reverse(distinguisher=d, selection_function=sf, model=scared.Monobit(4))

    analysis.run(container)
    assert (16,) == analysis.results.shape[0:1]
    assert isinstance(str(d), str)

    d = scared.ANOVADistinguisher(precision='float64', partitions=np.arange(2))
    analysis = scared._Reverse(distinguisher=d, selection_function=sf, model=scared.Monobit(4))
    analysis.run(container)
    assert analysis.precision == 'float64'
    assert np.array_equal(analysis.partitions, np.arange(2))
    assert (16,) == analysis.results.shape[0:1]
    assert isinstance(str(d), str)