diff options
| author | J08nY | 2020-07-05 18:37:53 +0200 |
|---|---|---|
| committer | J08nY | 2020-07-05 18:37:53 +0200 |
| commit | 525716254614439cf32e5720bf4c2f2f4aac0f71 (patch) | |
| tree | afea64d782bf1f375cd5a0936be0a30e300c50f7 | |
| parent | a6a4ed2095dcdb3f569726eeea3332644a10699d (diff) | |
| download | pyecsca-525716254614439cf32e5720bf4c2f2f4aac0f71.tar.gz pyecsca-525716254614439cf32e5720bf4c2f2f4aac0f71.tar.zst pyecsca-525716254614439cf32e5720bf4c2f2f4aac0f71.zip | |
More tests for HDF5 and some codestyle fixes.
| -rw-r--r-- | pyecsca/ec/curve.py | 2 | ||||
| -rw-r--r-- | pyecsca/sca/scope/picoscope_sdk.py | 17 | ||||
| -rw-r--r-- | pyecsca/sca/trace/combine.py | 6 | ||||
| -rw-r--r-- | pyecsca/sca/trace/process.py | 2 | ||||
| -rw-r--r-- | pyecsca/sca/trace/sampling.py | 2 | ||||
| -rw-r--r-- | test/sca/test_traceset.py | 8 |
6 files changed, 21 insertions, 16 deletions
diff --git a/pyecsca/ec/curve.py b/pyecsca/ec/curve.py index 4e41931..1514c92 100644 --- a/pyecsca/ec/curve.py +++ b/pyecsca/ec/curve.py @@ -154,7 +154,7 @@ class EllipticCurve(object): """Generate a random affine point on the curve.""" while True: x = Mod.random(self.prime) - loc = {**self.parameters, "x":x} + loc = {**self.parameters, "x": x} ysquared = eval(compile(self.model.ysquared, "", mode="eval"), loc) if ysquared.is_residue(): y = ysquared.sqrt() diff --git a/pyecsca/sca/scope/picoscope_sdk.py b/pyecsca/sca/scope/picoscope_sdk.py index 7752450..fe23e5e 100644 --- a/pyecsca/sca/scope/picoscope_sdk.py +++ b/pyecsca/sca/scope/picoscope_sdk.py @@ -226,9 +226,9 @@ if isinstance(ps3000, CannotFindPicoSDKError): def __init__(self, variant: Optional[str] = None): super().__init__(variant) raise ps3000 -else: +else: # pragma: no cover @public - class PS3000Scope(PicoScopeSdk): # pragma: no cover + class PS3000Scope(PicoScopeSdk): # type: ignore MODULE = ps3000 PREFIX = "ps3000" CHANNELS = { @@ -276,16 +276,15 @@ else: raise NotImplementedError - if isinstance(ps4000, CannotFindPicoSDKError): @public class PS4000Scope(PicoScopeSdk): # pragma: no cover def __init__(self, variant: Optional[str] = None): super().__init__(variant) raise ps4000 -else: +else: # pragma: no cover @public - class PS4000Scope(PicoScopeSdk): # pragma: no cover + class PS4000Scope(PicoScopeSdk): # type: ignore MODULE = ps4000 PREFIX = "ps4000" CHANNELS = { @@ -336,9 +335,9 @@ if isinstance(ps5000, CannotFindPicoSDKError): def __init__(self, variant: Optional[str] = None): super().__init__(variant) raise ps5000 -else: +else: # pragma: no cover @public - class PS5000Scope(PicoScopeSdk): # pragma: no cover + class PS5000Scope(PicoScopeSdk): # type: ignore MODULE = ps5000 PREFIX = "ps5000" CHANNELS = { @@ -381,9 +380,9 @@ if isinstance(ps6000, CannotFindPicoSDKError): def __init__(self, variant: Optional[str] = None): super().__init__(variant) raise ps6000 -else: +else: # pragma: no cover @public - class PS6000Scope(PicoScopeSdk): # pragma: no cover + class PS6000Scope(PicoScopeSdk): # type: ignore MODULE = ps6000 PREFIX = "ps6000" CHANNELS = { diff --git a/pyecsca/sca/trace/combine.py b/pyecsca/sca/trace/combine.py index 26cf19d..04b1a70 100644 --- a/pyecsca/sca/trace/combine.py +++ b/pyecsca/sca/trace/combine.py @@ -19,7 +19,7 @@ def average(*traces: Trace) -> Optional[CombinedTrace]: if len(traces) == 1: return CombinedTrace(traces[0].samples.copy()) dtype = traces[0].samples.dtype - result_samples = np.mean(np.stack([trace.samples for trace in traces]), axis=0).astype(dtype) + result_samples = np.mean(np.stack([trace.samples for trace in traces]), axis=0).astype(dtype, copy=False) return CombinedTrace(result_samples) @@ -46,7 +46,7 @@ def standard_deviation(*traces: Trace) -> Optional[CombinedTrace]: if not traces: return None dtype = traces[0].samples.dtype - result_samples = np.std(np.stack([trace.samples for trace in traces]), axis=0).astype(dtype) + result_samples = np.std(np.stack([trace.samples for trace in traces]), axis=0).astype(dtype, copy=False) return CombinedTrace(result_samples) @@ -63,7 +63,7 @@ def add(*traces: Trace) -> Optional[CombinedTrace]: if len(traces) == 1: return CombinedTrace(traces[0].samples.copy()) dtype = traces[0].samples.dtype - result_samples = np.sum(np.stack([trace.samples for trace in traces]), axis=0).astype(dtype) + result_samples = np.sum(np.stack([trace.samples for trace in traces]), axis=0).astype(dtype, copy=False) return CombinedTrace(result_samples) diff --git a/pyecsca/sca/trace/process.py b/pyecsca/sca/trace/process.py index dccccc2..66dfe73 100644 --- a/pyecsca/sca/trace/process.py +++ b/pyecsca/sca/trace/process.py @@ -57,7 +57,7 @@ def rolling_mean(trace: Trace, window: int) -> Trace: :return: """ return trace.with_samples(np.mean(rolling_window(trace.samples, window), -1).astype( - dtype=trace.samples.dtype)) + dtype=trace.samples.dtype, copy=False)) @public diff --git a/pyecsca/sca/trace/sampling.py b/pyecsca/sca/trace/sampling.py index 0a32c28..5a4d271 100644 --- a/pyecsca/sca/trace/sampling.py +++ b/pyecsca/sca/trace/sampling.py @@ -16,7 +16,7 @@ def downsample_average(trace: Trace, factor: int = 2) -> Trace: :return: """ resized = np.resize(trace.samples, len(trace.samples) - (len(trace.samples) % factor)) - result_samples = resized.reshape(-1, factor).mean(axis=1).astype(trace.samples.dtype) + result_samples = resized.reshape(-1, factor).mean(axis=1).astype(trace.samples.dtype, copy=False) return trace.with_samples(result_samples) diff --git a/test/sca/test_traceset.py b/test/sca/test_traceset.py index ebf6c3d..7adff41 100644 --- a/test/sca/test_traceset.py +++ b/test/sca/test_traceset.py @@ -9,7 +9,7 @@ import numpy as np from pyecsca.sca import (TraceSet, InspectorTraceSet, ChipWhispererTraceSet, PickleTraceSet, HDF5TraceSet, Trace) -EXAMPLE_TRACES = [Trace(np.array([20, 40, 50, 50, 10], dtype=np.dtype("i1"))), +EXAMPLE_TRACES = [Trace(np.array([20, 40, 50, 50, 10], dtype=np.dtype("i1")), {"something": 5}), Trace(np.array([1, 2, 3, 4, 5], dtype=np.dtype("i1"))), Trace(np.array([6, 7, 8, 9, 10], dtype=np.dtype("i1")))] EXAMPLE_KWARGS = {"num_traces": 3, "thingy": "abc"} @@ -98,11 +98,17 @@ class HDF5TraceSetTests(TestCase): trace_set = HDF5TraceSet.inplace(path) self.assertIsNotNone(trace_set) test_trace = Trace(np.array([6, 7], dtype=np.dtype("i1")), meta={"thing": "ring"}) + other_trace = Trace(np.array([15, 7], dtype=np.dtype("i1")), meta={"a": "b"}) trace_set.append(test_trace) + self.assertEqual(len(trace_set), 4) + trace_set.append(other_trace) + trace_set.remove(other_trace) + self.assertEqual(len(trace_set), 4) trace_set.save() trace_set.close() test_set = HDF5TraceSet.read(path) + self.assertEqual(test_set.get(3), test_set[3]) self.assertTrue(np.array_equal(test_set[3].samples, test_trace.samples)) self.assertEqual(test_set[3].meta["thing"], test_trace.meta["thing"]) self.assertEqual(test_set[3], test_trace) |
