aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca/sca/target/ectester.py
diff options
context:
space:
mode:
authorJ08nY2021-01-20 20:24:11 +0100
committerJ08nY2021-01-20 20:24:11 +0100
commit9ec68bdb56882777e5b3670380bf1e1ad7d0a7a3 (patch)
treebb695e485808e4d0517d84053019e2f7ddb03679 /pyecsca/sca/target/ectester.py
parentadc3cd52147f35e0a7cc9008ac96619dd89cda48 (diff)
downloadpyecsca-9ec68bdb56882777e5b3670380bf1e1ad7d0a7a3.tar.gz
pyecsca-9ec68bdb56882777e5b3670380bf1e1ad7d0a7a3.tar.zst
pyecsca-9ec68bdb56882777e5b3670380bf1e1ad7d0a7a3.zip
The big documentation patch.
Diffstat (limited to 'pyecsca/sca/target/ectester.py')
-rw-r--r--pyecsca/sca/target/ectester.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/pyecsca/sca/target/ectester.py b/pyecsca/sca/target/ectester.py
index 8391e32..6ab10be 100644
--- a/pyecsca/sca/target/ectester.py
+++ b/pyecsca/sca/target/ectester.py
@@ -1,3 +1,6 @@
+"""
+This module provides an `ECTester <https://github.com/crocs-muni/ECTester/>`_ target class.
+"""
from abc import ABC
from binascii import hexlify
from enum import IntEnum, IntFlag
@@ -45,6 +48,7 @@ class ShiftableFlag(IntFlag): # pragma: no cover
@public
class KeypairEnum(ShiftableFlag): # pragma: no cover
+ """ECTester's KeyPair type."""
KEYPAIR_LOCAL = 0x01
KEYPAIR_REMOTE = 0x02
KEYPAIR_BOTH = KEYPAIR_LOCAL | KEYPAIR_REMOTE
@@ -52,6 +56,7 @@ class KeypairEnum(ShiftableFlag): # pragma: no cover
@public
class InstructionEnum(IntEnum): # pragma: no cover
+ """ECTester's instruction (INS)."""
INS_ALLOCATE = 0x5a
INS_CLEAR = 0x5b
INS_SET = 0x5c
@@ -74,12 +79,14 @@ class InstructionEnum(IntEnum): # pragma: no cover
@public
class KeyBuildEnum(IntEnum): # pragma: no cover
+ """ECTester's key builder type."""
BUILD_KEYPAIR = 0x01
BUILD_KEYBUILDER = 0x02
@public
class ExportEnum(IntEnum): # pragma: no cover
+ """ECTester's export boolean."""
EXPORT_TRUE = 0xff
EXPORT_FALSE = 0x00
@@ -90,12 +97,14 @@ class ExportEnum(IntEnum): # pragma: no cover
@public
class RunModeEnum(IntEnum): # pragma: no cover
+ """ECTester's run mode."""
MODE_NORMAL = 0xaa
MODE_DRY_RUN = 0xbb
@public
class KeyEnum(ShiftableFlag): # pragma: no cover
+ """ECTester's key enum."""
PUBLIC = 0x01
PRIVATE = 0x02
BOTH = PRIVATE | PUBLIC
@@ -103,18 +112,21 @@ class KeyEnum(ShiftableFlag): # pragma: no cover
@public
class AppletBaseEnum(IntEnum): # pragma: no cover
+ """ECTester's JavaCard applet base version."""
BASE_221 = 0x0221
BASE_222 = 0x0222
@public
class KeyClassEnum(IntEnum): # pragma: no cover
+ """JavaCard EC-based key class."""
ALG_EC_F2M = 4
ALG_EC_FP = 5
@public
class KeyAgreementEnum(IntEnum): # pragma: no cover
+ """JavaCard `KeyAgreement` type values."""
ALG_EC_SVDP_DH = 1
ALG_EC_SVDP_DH_KDF = 1
ALG_EC_SVDP_DHC = 2
@@ -127,6 +139,7 @@ class KeyAgreementEnum(IntEnum): # pragma: no cover
@public
class SignatureEnum(IntEnum): # pragma: no cover
+ """JavaCard `Signature` type values."""
ALG_ECDSA_SHA = 17
ALG_ECDSA_SHA_224 = 37
ALG_ECDSA_SHA_256 = 33
@@ -136,6 +149,7 @@ class SignatureEnum(IntEnum): # pragma: no cover
@public
class TransformationEnum(ShiftableFlag): # pragma: no cover
+ """ECTester's point/value transformation types."""
NONE = 0x00
FIXED = 0x01
FULLRANDOM = 0x02
@@ -152,6 +166,7 @@ class TransformationEnum(ShiftableFlag): # pragma: no cover
@public
class FormatEnum(IntEnum): # pragma: no cover
+ """ECTester's point format types."""
UNCOMPRESSED = 0
COMPRESSED = 1
HYBRID = 2
@@ -159,6 +174,7 @@ class FormatEnum(IntEnum): # pragma: no cover
@public
class CurveEnum(IntEnum): # pragma: no cover
+ """ECTester's curve constants."""
default = 0x00
external = 0xff
secp112r1 = 0x01
@@ -178,6 +194,7 @@ class CurveEnum(IntEnum): # pragma: no cover
@public
class ParameterEnum(ShiftableFlag): # pragma: no cover
+ """ECTester's parameter ids."""
NONE = 0x00
FP = 0x01
F2M = 0x02
@@ -196,10 +213,12 @@ class ParameterEnum(ShiftableFlag): # pragma: no cover
@public
class ChunkingException(Exception): # pragma: no cover
+ """An exception that is raised if an error happened during the chunking process of a large APDU."""
pass
class Response(ABC): # pragma: no cover
+ """An abstract base class of a response APDU."""
resp: ResponseAPDU
sws: List[int]
params: List[bytes]