pyecsca.codegen.common module

class pyecsca.codegen.common.Platform(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: EnumDefine

Platform to build for.

HOST = 'HOST'
XMEGA = 'CW308_XMEGA'
STM32F0 = 'CW308_STM32F0'
STM32F3 = 'CW308_STM32F3'
NANO = 'CWNANO'
class pyecsca.codegen.common.DeviceConfiguration(model, coords, formulas, scalarmult, hash_type, mod_rand, mult, sqr, red, inv, platform, keygen, ecdh, ecdsa, defines=None)[source]

Bases: Configuration

A device configuration that includes the platform and choices specific to the pyecsca-codegened implementations.

platform: Platform

The platform to build for.

keygen: bool

Whether the key-generation command is present.

ecdh: bool

Whether the ECDH command is present.

ecdsa: bool

Whether the ECDSA command is present.

defines: Optional[MutableMapping[str, Any]] = None

Optional defines passed to the compilation.

model: CurveModel
coords: CoordinateModel
formulas: FrozenSet[Formula]
scalarmult: ScalarMultiplier
hash_type: HashType
mod_rand: RandomMod
mult: Multiplication
sqr: Squaring
red: Reduction
inv: Inversion
pyecsca.codegen.common.wrap_enum(enum_class)[source]