diff options
| author | J08nY | 2020-02-15 14:55:48 +0100 |
|---|---|---|
| committer | J08nY | 2020-02-15 14:55:48 +0100 |
| commit | b57f8b21f5ff49657d4d052dc179d2d3831200ea (patch) | |
| tree | 9409952d1f1dd3d9e34184bd8f748806a71f2db3 | |
| parent | ddbc1b6d5cc5d5275b623b7f7315828ddf340c85 (diff) | |
| download | pyecsca-notebook-b57f8b21f5ff49657d4d052dc179d2d3831200ea.tar.gz pyecsca-notebook-b57f8b21f5ff49657d4d052dc179d2d3831200ea.tar.zst pyecsca-notebook-b57f8b21f5ff49657d4d052dc179d2d3831200ea.zip | |
Add simulation and codegen notebooks.
| -rw-r--r-- | codegen.ipynb | 468 | ||||
| -rw-r--r-- | configuration_space.ipynb | 318 | ||||
| -rw-r--r-- | dpa.ipynb | 58 | ||||
| -rw-r--r-- | leakage_testing.ipynb | 68 | ||||
| -rw-r--r-- | simulation.ipynb | 3038 |
5 files changed, 3708 insertions, 242 deletions
diff --git a/codegen.ipynb b/codegen.ipynb new file mode 100644 index 0000000..83ccc3a --- /dev/null +++ b/codegen.ipynb @@ -0,0 +1,468 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "pycharm": { + "name": "#%% md\n" + } + }, + "source": [ + "# Code generation\n", + "\n", + "**pyecsca** can generate C implementations of ECC crypto for several microprocessor targets, which\n", + "are defined by the `Platform` enum." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "outputs": [ + { + "data": { + "text/plain": "['HOST', 'XMEGA', 'STM32F0', 'STM32F3']" + }, + "metadata": {}, + "output_type": "execute_result", + "execution_count": 3 + } + ], + "source": [ + "from pyecsca.codegen.common import Platform\n", + "\n", + "\n", + "Platform.names()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n", + "is_executing": false + } + } + }, + { + "cell_type": "markdown", + "source": [ + "To generate an implementation we need an actual configuration which the implementation should\n", + "implement, which is stored inside the `Configuration` and `DeviceConfiguration` classes. " + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 8, + "outputs": [ + { + "name": "stdout", + "text": [ + "model <class 'pyecsca.ec.model.CurveModel'>\n", + " A model(form) of an elliptic curve.\n", + "\n", + "coords <class 'pyecsca.ec.coordinates.CoordinateModel'>\n", + " A coordinate system for a particular model(form) of an elliptic curve.\n", + "\n", + "formulas typing.Set[pyecsca.ec.formula.Formula]\n", + " A formula operating on points.\n", + "\n", + "scalarmult <class 'pyecsca.ec.mult.ScalarMultiplier'>\n", + " \n", + " A scalar multiplication algorithm.\n", + "\n", + " :param short_circuit: Whether the use of formulas will be guarded by short-circuit on inputs\n", + " of the point at infinity.\n", + " :param formulas: Formulas this instance will use.\n", + " \n", + "\n", + "hash_type <enum 'HashType'>\n", + " Hash algorithm used in ECDH and ECDSA.\n", + " NONE\n", + " SHA1\n", + " SHA224\n", + " SHA256\n", + " SHA384\n", + " SHA512\n", + "\n", + "mod_rand <enum 'RandomMod'>\n", + " Method of sampling a uniform integer modulo order.\n", + " SAMPLE\n", + " REDUCE\n", + "\n", + "mult <enum 'Multiplication'>\n", + " Base multiplication algorithm to use.\n", + " TOOM_COOK\n", + " KARATSUBA\n", + " COMBA\n", + " BASE\n", + "\n", + "sqr <enum 'Squaring'>\n", + " Base squaring algorithm to use.\n", + " TOOM_COOK\n", + " KARATSUBA\n", + " COMBA\n", + " BASE\n", + "\n", + "red <enum 'Reduction'>\n", + " Modular reduction method used.\n", + " BARRETT\n", + " MONTGOMERY\n", + " BASE\n", + "\n", + "platform <enum 'Platform'>\n", + " Platform to build for.\n", + " HOST\n", + " XMEGA\n", + " STM32F0\n", + " STM32F3\n", + "\n", + "keygen <class 'bool'>\n", + " \n", + "\n", + "ecdh <class 'bool'>\n", + " \n", + "\n", + "ecdsa <class 'bool'>\n", + " \n", + "\n" + ], + "output_type": "stream" + } + ], + "source": [ + "from typing import get_args\n", + "from pyecsca.codegen.common import DeviceConfiguration\n", + "from dataclasses import fields\n", + "\n", + "for field in fields(DeviceConfiguration):\n", + "\tname = field.name\n", + "\ttp = field.type\n", + "\tdoc = tp.__doc__\n", + "\tif get_args(field.type):\n", + "\t\tdoc = get_args(field.type)[0].__doc__\n", + "\tif tp == bool:\n", + "\t\tdoc = \"\"\n", + "\tprint(name, tp)\n", + "\tprint(\" \", doc)\n", + "\tif hasattr(tp, \"names\"):\n", + "\t\tfor enum_name in tp.names():\n", + "\t\t\tprint(\" \", enum_name)\n", + "\tprint()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n", + "is_executing": false + } + } + }, + { + "cell_type": "markdown", + "source": [ + "The `DeviceConfiguration` class contains a few additional attributes apart from those\n", + "in the `Configuration` class: `platform`, `keygen`, `ecdh` and `ecdsa`.\n", + "\n", + "The `platform` attribute defines for which target the implementation\n", + "should be built. The other boolean attributes specify whether particular\n", + "functionality should be implemented and enabled in the implementation." + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Generating\n", + "\n", + "We will first create a `DeviceConfiguration`, which we will then generate and build." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 13, + "outputs": [ + { + "data": { + "text/plain": "DeviceConfiguration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=[AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))], scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7fb1da4ddd00>, hash_type=HASH_SHA1, mod_rand=MOD_RAND_REDUCE, mult=MUL_BASE, sqr=SQR_BASE, red=RED_BASE, platform=HOST, keygen=True, ecdh=True, ecdsa=True)" + }, + "metadata": {}, + "output_type": "execute_result", + "execution_count": 13 + } + ], + "source": [ + "from pyecsca.ec.model import ShortWeierstrassModel\n", + "from pyecsca.ec.mult import LTRMultiplier\n", + "from pyecsca.ec.configuration import *\n", + "\n", + "platform = Platform.HOST\n", + "hash_type = HashType.SHA1\n", + "mod_rand = RandomMod.REDUCE\n", + "mult = Multiplication.BASE\n", + "sqr = Squaring.BASE\n", + "red = Reduction.BASE\n", + "\n", + "model = ShortWeierstrassModel()\n", + "coords = model.coordinates[\"projective\"]\n", + "add = coords.formulas[\"add-1998-cmo\"]\n", + "dbl = coords.formulas[\"dbl-1998-cmo\"]\n", + "scl = coords.formulas[\"z\"]\n", + "formulas = [add, dbl, scl]\n", + "scalarmult = LTRMultiplier(add, dbl, scl)\n", + "\n", + "config = DeviceConfiguration(model, coords, formulas, scalarmult, \n", + "\t\t\t\t\t\t\t hash_type, mod_rand, mult, sqr, red,\n", + "\t\t\t\t\t\t\t platform, True, True, True)\n", + "\n", + "config" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n", + "is_executing": false + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Now we can render the configuration, which will generate the source files into a\n", + "randomly created temporary directory, and return the path to the directory as\n", + "well as names of the elf and hex files which will be built in that directory." + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 12, + "outputs": [ + { + "name": "stdout", + "text": [ + "/tmp/tmpszimqnob\n" + ], + "output_type": "stream" + } + ], + "source": [ + "from pyecsca.codegen.builder import render\n", + "\n", + "directory, elf_name, hex_name = render(config)\n", + "\n", + "print(directory)" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n", + "is_executing": false + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Building\n", + "\n", + "When we have the implementation rendered, we can build it using make." + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 15, + "outputs": [ + { + "name": "stdout", + "text": [ + "rm -f -- pyecsca-codegen-HOST.hex\n", + "rm -f -- pyecsca-codegen-HOST.eep\n", + "rm -f -- pyecsca-codegen-HOST.cof\n", + "rm -f -- pyecsca-codegen-HOST.elf\n", + "rm -f -- pyecsca-codegen-HOST.map\n", + "rm -f -- pyecsca-codegen-HOST.sym\n", + "rm -f -- pyecsca-codegen-HOST.lss\n", + "rm -f -- objdir/*.o\n", + "rm -f -- objdir/*.lst\n", + "rm -f -- main.s bn/bn.s asn1/asn1.s hash/hash.s prng/prng.s gen/point.s gen/curve.s gen/mult.s simpleserial.s uart.s host_hal.s\n", + "rm -f -- main.d bn/bn.d asn1/asn1.d hash/hash.d prng/prng.d gen/point.d gen/curve.d gen/mult.d simpleserial.d uart.d host_hal.d\n", + "rm -f -- main.i bn/bn.i asn1/asn1.i hash/hash.i prng/prng.i gen/point.i gen/curve.i gen/mult.i simpleserial.i uart.i host_hal.i\n", + ".\n", + "-------- begin --------\n", + "gcc (GCC) 9.2.0\n", + "Copyright (C) 2019 Free Software Foundation, Inc.\n", + "This is free software; see the source for copying conditions. There is NO\n", + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", + "\n", + ".\n", + "Compiling C: main.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/main.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o objdir/main.o \n", + ".\n", + "Compiling C: bn/bn.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/bn.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/bn.o.d bn/bn.c -o objdir/bn/bn.o \n", + ".\n", + "Compiling C: asn1/asn1.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/asn1.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/asn1.o.d asn1/asn1.c -o objdir/asn1/asn1.o \n", + ".\n", + "Compiling C: hash/hash.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/hash.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/hash.o.d hash/hash.c -o objdir/hash/hash.o \n", + ".\n", + "Compiling C: prng/prng.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/prng.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/prng.o.d prng/prng.c -o objdir/prng/prng.o \n", + ".\n", + "Compiling C: gen/point.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/point.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/point.o.d gen/point.c -o objdir/gen/point.o \n", + ".\n", + "Compiling C: gen/curve.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/curve.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/curve.o.d gen/curve.c -o objdir/gen/curve.o \n", + ".\n", + "Compiling C: gen/mult.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/mult.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/mult.o.d gen/mult.c -o objdir/gen/mult.o \n", + ".\n", + "Compiling C: ./simpleserial/simpleserial.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/simpleserial.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/simpleserial.o.d ./simpleserial/simpleserial.c -o objdir/simpleserial.o \n", + ".\n", + "Compiling C: ./hal/host/uart.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/uart.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/uart.o.d ./hal/host/uart.c -o objdir/uart.o \n", + ".\n", + "Compiling C: ./hal/host/host_hal.c\n", + "gcc -c -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/host_hal.lst -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/host_hal.o.d ./hal/host/host_hal.c -o objdir/host_hal.o \n", + ".\n", + "Linking: pyecsca-codegen-HOST.elf\n", + "gcc -I. -gdwarf-2 -DHASH=HASH_SHA1 -DMOD_RAND=MOD_RAND_REDUCE -DSS_VER=SS_VER_1_1 -DHAL=HAL_host -DPLATFORM=HOST -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=objdir/main.o -Ihash -Iprng -Iasn1 -Ibn -Igen -Itommath -I./simpleserial/ -I./hal -I./hal/host -std=gnu99 -MMD -MP -MF .dep/pyecsca-codegen-HOST.elf.d objdir/main.o objdir/bn/bn.o objdir/asn1/asn1.o objdir/hash/hash.o objdir/prng/prng.o objdir/gen/point.o objdir/gen/curve.o objdir/gen/mult.o objdir/simpleserial.o objdir/uart.o objdir/host_hal.o --output pyecsca-codegen-HOST.elf tommath/libtommath-HOST.a -Wl,-Map=pyecsca-codegen-HOST.map,--cref -lm \n", + ".\n", + "Creating load file for Flash: pyecsca-codegen-HOST.hex\n", + "objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature pyecsca-codegen-HOST.elf pyecsca-codegen-HOST.hex\n", + ".\n", + "Creating load file for EEPROM: pyecsca-codegen-HOST.eep\n", + "objcopy -j .eeprom --set-section-flags=.eeprom=\"alloc,load\" \\\n", + "--change-section-lma .eeprom=0 --no-change-warnings -O ihex pyecsca-codegen-HOST.elf pyecsca-codegen-HOST.eep || exit 0\n", + ".\n", + "Creating Extended Listing: pyecsca-codegen-HOST.lss\n", + "objdump -h -S -z pyecsca-codegen-HOST.elf > pyecsca-codegen-HOST.lss\n", + ".\n", + "Creating Symbol Table: pyecsca-codegen-HOST.sym\n", + "nm -n pyecsca-codegen-HOST.elf > pyecsca-codegen-HOST.sym\n", + "Size after:\n", + " text\t data\t bss\t dec\t hex\tfilename\n", + " 82833\t 744\t 576\t 84153\t 148b9\tpyecsca-codegen-HOST.elf\n", + "+--------------------------------------------------------\n", + "+ Built for platform HOST: Host machine target\n", + "+--------------------------------------------------------\n", + "\n" + ], + "output_type": "stream" + } + ], + "source": [ + "from subprocess import run\n", + "\n", + "res = run([\"make\"], cwd=directory, capture_output=True)\n", + "print(res.stdout.decode())" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n", + "is_executing": false + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Now the files `elf_name` and `hex_name` in the directory contain the ELF file and HEX file built.\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 17, + "outputs": [ + { + "name": "stdout", + "text": [ + "pyecsca-codegen-HOST.elf: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b120c193e0d3f480bec86e817c0b08e3f9ed74c7, for GNU/Linux 3.2.0, with debug_info, not stripped\n", + "\n", + "pyecsca-codegen-HOST.hex: ASCII text, with CRLF line terminators\n", + "\n" + ], + "output_type": "stream" + } + ], + "source": [ + "res = run([\"file\", elf_name], cwd=directory, capture_output=True)\n", + "print(res.stdout.decode())\n", + "\n", + "res = run([\"file\", hex_name], cwd=directory, capture_output=True)\n", + "print(res.stdout.decode())" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n", + "is_executing": false + } + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "source": [], + "metadata": { + "collapsed": false + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}
\ No newline at end of file diff --git a/configuration_space.ipynb b/configuration_space.ipynb index 19b3c27..c1b45c8 100644 --- a/configuration_space.ipynb +++ b/configuration_space.ipynb @@ -16,22 +16,28 @@ }, { "cell_type": "markdown", - "source": [ - "An ECC implementation configuration in `pyecsca` has the following attributes: " - ], "metadata": { - "collapsed": false, "pycharm": { "name": "#%% md\n" } - } + }, + "source": [ + "An ECC implementation configuration in **pyecsca** has the following attributes: " + ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 1, + "metadata": { + "pycharm": { + "is_executing": false, + "name": "#%%\n" + } + }, "outputs": [ { "name": "stdout", + "output_type": "stream", "text": [ "model <class 'pyecsca.ec.model.CurveModel'>\n", " A model(form) of an elliptic curve.\n", @@ -85,13 +91,12 @@ " MONTGOMERY\n", " BASE\n", "\n" - ], - "output_type": "stream" + ] } ], "source": [ "from typing import get_args\n", - "from pyecsca.ec.configuration import Configuration, EnumDefine\n", + "from pyecsca.ec.configuration import Configuration\n", "from dataclasses import fields\n", "\n", "for field in fields(Configuration):\n", @@ -106,69 +111,64 @@ "\t\tfor enum_name in tp.names():\n", "\t\t\tprint(\" \", enum_name)\n", "\tprint()" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n", - "is_executing": false - } - } + ] }, { "cell_type": "markdown", - "source": [ - "It is represented by the `Configuration` class." - ], "metadata": { - "collapsed": false, "pycharm": { "name": "#%% md\n" } - } + }, + "source": [ + "It is represented by the `Configuration` class." + ] }, { "cell_type": "markdown", + "metadata": { + "pycharm": { + "name": "#%% md\n" + } + }, "source": [ "## Enumerating configurations\n", "\n", "The possible configurations can be generated using the `all_configurations()` function.\n", "The whole space of configurations is quite huge:" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } - } + ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 2, + "metadata": { + "pycharm": { + "is_executing": false, + "name": "#%%\n" + } + }, "outputs": [ { "name": "stdout", + "output_type": "stream", "text": [ "16056576\n" - ], - "output_type": "stream" + ] } ], "source": [ "from pyecsca.ec.configuration import all_configurations\n", "\n", "print(sum(1 for _ in all_configurations()))" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n", - "is_executing": false - } - } + ] }, { "cell_type": "markdown", + "metadata": { + "pycharm": { + "name": "#%% md\n" + } + }, "source": [ "A large part of the configuration space is due to the independent options which consist of:\n", " \n", @@ -180,25 +180,25 @@ "\n", "To restrict the generated configurations, pass keyword arguments to the\n", "`all_configurations` matching the names of the attributes of the `Configuration` object." - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } - } + ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 3, + "metadata": { + "pycharm": { + "is_executing": false, + "name": "#%%\n" + } + }, "outputs": [ { "name": "stdout", + "output_type": "stream", "text": [ - "[Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615042b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615adc40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615ad9a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615adeb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615adcd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6157bb50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6157b160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6157bd60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6024cb20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6024c490>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6024cee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60255c70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60255df0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60255a30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60255340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615d7af0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602554c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602497f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60249760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60247550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602472b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60247af0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60245d60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60245ca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f7130>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f71f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f7340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f7910>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f7d30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f7b50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f75b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f7640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f7190>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614f7040>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60242070>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60242940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60242b50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61557af0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61557c40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61557340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61557ca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe619a6fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60252520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60252670>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60252130>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602520d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60252880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b310>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b220>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b130>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b3a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b0d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b400>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156bc40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60242a30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602429a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60245640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60245a30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602479a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b0a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b610>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b9a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156bd90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156bc10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b5e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156bd60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156bf70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156bdc0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b8b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61651850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156b280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61575550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61575be0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6158d160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615e8eb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6158df70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61676d60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61676f10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61676cd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61631580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe616aaf10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe617f2640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe617f2910>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d04f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d08b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d01f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d06d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d06a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d0f70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d0970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d0be0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d09a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d0370>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d0040>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d0850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d0730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615699a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61569bb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61569400>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61569f40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61569ee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61569fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61569190>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61569af0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61569ca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61569610>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6162eee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6162e850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6162ee50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6162eac0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f9a60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f9c70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f96a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f90a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f9e50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f9b80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f9520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f9be0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f9c10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe601f9f70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe617079a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61632af0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6153c610>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6153c100>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6153c7f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61a2d700>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d4880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d4940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d4d60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d4af0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d4fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d41c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe604d40a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156e3d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156e6d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6156e730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe617cf280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa8e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa8b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614faa90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa910>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa2e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa2b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa1c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa0d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa190>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614faa00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fad30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fab50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa3a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa400>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa250>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa220>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fa460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fafa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fae50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614faeb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fad90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fae80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614faca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614fabe0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe614faf70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503be0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503910>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503c10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615030d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503cd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615030a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503f10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503490>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503130>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503220>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503370>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615034f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503820>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503700>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503e50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503b20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503d90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503d60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503bb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61503ca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615038b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615036d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509ca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509e50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509b20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509250>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509610>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615090a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615092e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509400>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615098e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615092b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615097f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509a00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509c40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615099d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509a30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509c10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509b80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509cd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509df0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509ee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615099a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61509be0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150fa00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150feb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150fac0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61597df0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61583fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615af250>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150fd90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150ffa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150ff40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150fa30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150fb20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150fd60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150fdf0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150fc40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f820>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f8b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f6a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f310>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f0d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f4f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f370>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f1c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6150f070>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61541910>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61541d90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61541c40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61541070>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61541160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61541880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501af0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501d90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501310>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615011f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501370>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501ee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615017f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501dc0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615019d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501f10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615015e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501670>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61501d00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505a00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505b50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505a90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505040>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505f70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505be0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615055e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505d00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505610>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505df0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61505d30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518f70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518790>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518ca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615186d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518df0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518d60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615189d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615183d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518400>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518670>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe615185b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518eb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61518880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61577100>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe61577f70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6157a9a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6157a970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6157a2e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b4f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b130>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b040>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b3d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b2b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b5b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b3a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b7c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b8e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025b940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025ba00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025bac0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025bb50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025bbe0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025bc70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025bd00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025bd60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025be20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025beb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025bf40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025bfd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6025bc40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209100>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209190>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209220>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209310>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602093a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209430>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602094c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602095e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209670>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602097c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe602098e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209a00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209a90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209b20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209b80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209c10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209ca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209d30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209dc0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209e50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209ee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209f70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe60209e20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f100>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f190>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f220>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f2b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f3d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f4c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f5e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f670>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f700>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f790>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f820>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f8b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020f970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020fa00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020fa90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020fb20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020fbb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020fc40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7efe6020fcd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY)]\n", + "[Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6b8fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6460a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646130>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6461c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646250>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6462e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646370>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646400>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646490>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6465b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6466d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6467f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6468e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6469d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646a60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646af0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646bb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646c40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646cd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646d60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646df0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646e80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646f10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c646ee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6450d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6451f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645310>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6453a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645430>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6454c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6455e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645670>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645700>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6457f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645910>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6459a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645a30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645ac0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645b50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645be0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645c70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645d00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645d90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645e20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645eb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645f40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c645fd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d0d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d1f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d310>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d3a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(madd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d430>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d4c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d5b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d6d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d7f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d8b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64da00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64da90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64db20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64dbb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64dc40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64dcd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64dd60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64ddf0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64de50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64dee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64df70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64ddc0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6530d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6531f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6533d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6534f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653610>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6536a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6537c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6538e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653a00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653a90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653b20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653bb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653c10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653ca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653d30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653dc0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653e50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653ee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653f70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c653f10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6580d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6581f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658310>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6583a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658430>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6584c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658610>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6586a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6587c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6588e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6589d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658a60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658af0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658b80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658c10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658ca0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658d30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658dc0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658e80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658f10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c658ee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e100>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e190>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e220>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e2b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e310>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e3a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e430>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e4c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e5e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e670>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e700>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e7c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e8e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65e970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65ea00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65ea90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65eb20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65ebb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65ec40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65ecd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65ed60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65edf0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65ee80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65ef10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65efa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c65eb80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6630d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6631f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663310>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6633a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663430>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6634c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6635e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663670>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663700>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663790>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663820>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6638b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663a00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663a90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663b20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663bb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663c40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663cd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-2002-bj for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663d60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663df0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663e50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663ee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663f70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c663dc0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a0d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a160>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a1f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a280>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a3d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a4f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a610>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a6a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a790>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a820>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a8b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a940>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66a9d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66aa60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66aaf0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66ab80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66ac40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66acd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66ad60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66adf0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66ae80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66af10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66afa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66aee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f100>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f190>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f220>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f2b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f3d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f4f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c64d490>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f6a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f7c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f8e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66f970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66fa00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66fa90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66fb20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66fbb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66fc40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66fcd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66fd60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66fe20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66feb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66ff40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66fe80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c66ffa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674130>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(mmadd-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6741c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674250>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6742b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6743d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6744f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674610>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6746a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6747f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674910>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6749a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674a30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674ac0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674b50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674bb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674c40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674cd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674d60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674df0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674e80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674f10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c674b20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb130>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb1c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb250>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb2e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb370>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb400>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb490>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb5b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb6d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb7f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb910>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fb970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fba00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fba90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbb20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbbb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbc40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbcd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbd60>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbdf0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbe80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbf10>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbfa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c5fbd90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600100>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600190>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600220>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6002e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600370>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600400>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600490>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6005b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6006d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600730>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6007c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600850>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6008e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600970>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600a00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600a90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600b20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600be0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600c70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600d00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600d90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600e20>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600eb0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), DoublingEFDFormula(dbl-1998-cmo for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600f40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600e80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c600fa0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606100>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606190>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606220>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6062b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606340>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6063d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606460>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606520>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6065b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606640>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6066d0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606760>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6067f0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606880>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606910>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c6069a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606a30>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606ac0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606b50>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606be0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606c70>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606d00>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606d90>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606df0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c24325ee0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c256e09a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c256ef370>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c2467e580>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606e80>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(mdbl-2007-bl for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606f40>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c606fd0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c0a0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c130>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c1c0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c250>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c2e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c370>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), ScalingEFDFormula(z for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c400>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c490>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c550>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c5e0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c670>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c700>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c790>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c820>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY), Configuration(model=ShortWeierstrassModel(), coords=EFDCoordinateModel(\"projective\" on short Weierstrass curves), formulas=frozenset({DoublingEFDFormula(dbl-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves)), AdditionEFDFormula(add-1998-cmo-2 for EFDCoordinateModel(\"projective\" on short Weierstrass curves))}), scalarmult=<pyecsca.ec.mult.LTRMultiplier object at 0x7f4c1c60c8b0>, hash_type=HASH_SHA256, mod_rand=MOD_RAND_SAMPLE, mult=MUL_KARATSUBA, sqr=SQR_KARATSUBA, red=RED_MONTGOMERY)]\n", "384\n" - ], - "output_type": "stream" + ] } ], "source": [ @@ -221,42 +221,52 @@ "\t\t\t\t\t\t\t \t **independent_opts))\n", "print(configs)\n", "print(len(configs))" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n", - "is_executing": false - } - } + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "We see that when we fixed all parameters except for the scalar multiplier arguments \n", "(see the `LTRMultiplier` constructor) we obtained 384 configurations." - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "### Models" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 4, + "metadata": { + "pycharm": { + "is_executing": false, + "name": "#%%\n" + } + }, "outputs": [ { "data": { - "text/plain": "<IPython.core.display.HTML object>", - "text/html": "<table>\n<thead>\n<tr><th>Model </th><th style=\"text-align: right;\"> All</th><th style=\"text-align: right;\"> Without independent options</th><th style=\"text-align: right;\"> Without independent options and scaling</th><th style=\"text-align: right;\"> Without independent options and scalarmult options</th></tr>\n</thead>\n<tbody>\n<tr><td>ShortWeierstrassModel</td><td style=\"text-align: right;\">13008384</td><td style=\"text-align: right;\"> 22584</td><td style=\"text-align: right;\"> 11720</td><td style=\"text-align: right;\"> 2924</td></tr>\n<tr><td>MontgomeryModel </td><td style=\"text-align: right;\"> 156672</td><td style=\"text-align: right;\"> 272</td><td style=\"text-align: right;\"> 136</td><td style=\"text-align: right;\"> 32</td></tr>\n<tr><td>EdwardsModel </td><td style=\"text-align: right;\"> 2117376</td><td style=\"text-align: right;\"> 3676</td><td style=\"text-align: right;\"> 1838</td><td style=\"text-align: right;\"> 456</td></tr>\n<tr><td>TwistedEdwardsModel </td><td style=\"text-align: right;\"> 774144</td><td style=\"text-align: right;\"> 1344</td><td style=\"text-align: right;\"> 1344</td><td style=\"text-align: right;\"> 336</td></tr>\n<tr><td>Total </td><td style=\"text-align: right;\">16056576</td><td style=\"text-align: right;\"> 27876</td><td style=\"text-align: right;\"> 15038</td><td style=\"text-align: right;\"> 3748</td></tr>\n</tbody>\n</table>" + "text/html": [ + "<table>\n", + "<thead>\n", + "<tr><th>Model </th><th style=\"text-align: right;\"> All</th><th style=\"text-align: right;\"> Without independent options</th><th style=\"text-align: right;\"> Without independent options and scaling</th><th style=\"text-align: right;\"> Without independent options and scalarmult options</th></tr>\n", + "</thead>\n", + "<tbody>\n", + "<tr><td>ShortWeierstrassModel</td><td style=\"text-align: right;\">13008384</td><td style=\"text-align: right;\"> 22584</td><td style=\"text-align: right;\"> 11720</td><td style=\"text-align: right;\"> 2522</td></tr>\n", + "<tr><td>MontgomeryModel </td><td style=\"text-align: right;\"> 156672</td><td style=\"text-align: right;\"> 272</td><td style=\"text-align: right;\"> 136</td><td style=\"text-align: right;\"> 32</td></tr>\n", + "<tr><td>EdwardsModel </td><td style=\"text-align: right;\"> 2117376</td><td style=\"text-align: right;\"> 3676</td><td style=\"text-align: right;\"> 1838</td><td style=\"text-align: right;\"> 396</td></tr>\n", + "<tr><td>TwistedEdwardsModel </td><td style=\"text-align: right;\"> 774144</td><td style=\"text-align: right;\"> 1344</td><td style=\"text-align: right;\"> 1344</td><td style=\"text-align: right;\"> 288</td></tr>\n", + "<tr><td>Total </td><td style=\"text-align: right;\">16056576</td><td style=\"text-align: right;\"> 27876</td><td style=\"text-align: right;\"> 15038</td><td style=\"text-align: right;\"> 3238</td></tr>\n", + "</tbody>\n", + "</table>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] }, "metadata": {}, "output_type": "display_data" @@ -273,7 +283,7 @@ "\tname = model.__class__.__name__\n", "\tcount = sum(1 for _ in all_configurations(model=model, **independent_opts))\n", "\tcount_no_scl = sum(1 for _ in all_configurations(model=model, **independent_opts, scalarmult={\"scl\": None}))\n", - "\tcount_no_opts = sum(1 for _ in all_configurations(model=model, **independent_opts, scalarmult={\"scl\": None, \"always\": True, \"short_circuit\": True, \"complete\": False, \"precompute_negation\": True}))\n", + "\tcount_no_opts = sum(1 for _ in all_configurations(model=model, **independent_opts, scalarmult={\"scl\": None, \"always\": True, \"short_circuit\": True, \"complete\": False, \"precompute_negation\": True, \"width\": 3}))\n", "\tmodel_counts.append([name, count * (6*2*4*4*3), count, count_no_scl, count_no_opts])\n", "\ttotals[1] += count * (6*2*4*4*3)\n", "\ttotals[2] += count\n", @@ -281,35 +291,67 @@ "\ttotals[4] += count_no_opts\n", "model_counts.append(totals)\n", "display(HTML(tabulate.tabulate(model_counts, tablefmt=\"html\", headers=\"firstrow\")))" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n", - "is_executing": false - } - } + ] }, { "cell_type": "markdown", - "source": [ - "### Coordinate systems" - ], "metadata": { - "collapsed": false, "pycharm": { "name": "#%% md\n" } - } + }, + "source": [ + "### Coordinate systems" + ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 5, + "metadata": { + "pycharm": { + "is_executing": false, + "name": "#%%\n" + } + }, "outputs": [ { "data": { - "text/plain": "<IPython.core.display.HTML object>", - "text/html": "<table>\n<thead>\n<tr><th>Model </th><th>Coords </th><th>All </th><th>Without independent options </th><th>Without independent options and scaling </th><th>Without independent options and scalarmult options </th></tr>\n</thead>\n<tbody>\n<tr><td>ShortWeierstrassModel</td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>\n<tr><td> </td><td>jacobian </td><td>2322432</td><td>4032 </td><td>2016 </td><td>504 </td></tr>\n<tr><td> </td><td>jacobian-0 </td><td>3096576</td><td>5376 </td><td>2688 </td><td>672 </td></tr>\n<tr><td> </td><td>jacobian-3 </td><td>3870720</td><td>6720 </td><td>3360 </td><td>840 </td></tr>\n<tr><td> </td><td>modified </td><td>193536 </td><td>336 </td><td>336 </td><td>84 </td></tr>\n<tr><td> </td><td>projective </td><td>774144 </td><td>1344 </td><td>672 </td><td>168 </td></tr>\n<tr><td> </td><td>projective-1</td><td>903168 </td><td>1568 </td><td>784 </td><td>196 </td></tr>\n<tr><td> </td><td>projective-3</td><td>967680 </td><td>1680 </td><td>840 </td><td>210 </td></tr>\n<tr><td> </td><td>w12-0 </td><td>32256 </td><td>56 </td><td>56 </td><td>14 </td></tr>\n<tr><td> </td><td>xyzz </td><td>193536 </td><td>336 </td><td>168 </td><td>42 </td></tr>\n<tr><td> </td><td>xyzz-3 </td><td>387072 </td><td>672 </td><td>336 </td><td>84 </td></tr>\n<tr><td> </td><td>xz </td><td>267264 </td><td>464 </td><td>464 </td><td>110 </td></tr>\n<tr><td>MontgomeryModel </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>\n<tr><td> </td><td>xz </td><td>156672 </td><td>272 </td><td>136 </td><td>32 </td></tr>\n<tr><td>EdwardsModel </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>\n<tr><td> </td><td>inverted </td><td>387072 </td><td>672 </td><td>336 </td><td>84 </td></tr>\n<tr><td> </td><td>projective </td><td>1548288</td><td>2688 </td><td>1344 </td><td>336 </td></tr>\n<tr><td> </td><td>yz </td><td>117504 </td><td>204 </td><td>102 </td><td>24 </td></tr>\n<tr><td> </td><td>yzsquared </td><td>64512 </td><td>112 </td><td>56 </td><td>12 </td></tr>\n<tr><td>TwistedEdwardsModel </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>\n<tr><td> </td><td>extended </td><td>193536 </td><td>336 </td><td>336 </td><td>84 </td></tr>\n<tr><td> </td><td>extended-1 </td><td>387072 </td><td>672 </td><td>672 </td><td>168 </td></tr>\n<tr><td> </td><td>inverted </td><td>96768 </td><td>168 </td><td>168 </td><td>42 </td></tr>\n<tr><td> </td><td>projective </td><td>96768 </td><td>168 </td><td>168 </td><td>42 </td></tr>\n</tbody>\n</table>" + "text/html": [ + "<table>\n", + "<thead>\n", + "<tr><th>Model </th><th>Coords </th><th>All </th><th>Without independent options </th><th>Without independent options and scaling </th><th>Without independent options and scalarmult options </th></tr>\n", + "</thead>\n", + "<tbody>\n", + "<tr><td>ShortWeierstrassModel</td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>\n", + "<tr><td> </td><td>jacobian </td><td>2322432</td><td>4032 </td><td>2016 </td><td>432 </td></tr>\n", + "<tr><td> </td><td>jacobian-0 </td><td>3096576</td><td>5376 </td><td>2688 </td><td>576 </td></tr>\n", + "<tr><td> </td><td>jacobian-3 </td><td>3870720</td><td>6720 </td><td>3360 </td><td>720 </td></tr>\n", + "<tr><td> </td><td>modified </td><td>193536 </td><td>336 </td><td>336 </td><td>72 </td></tr>\n", + "<tr><td> </td><td>projective </td><td>774144 </td><td>1344 </td><td>672 </td><td>144 </td></tr>\n", + "<tr><td> </td><td>projective-1</td><td>903168 </td><td>1568 </td><td>784 </td><td>168 </td></tr>\n", + "<tr><td> </td><td>projective-3</td><td>967680 </td><td>1680 </td><td>840 </td><td>180 </td></tr>\n", + "<tr><td> </td><td>w12-0 </td><td>32256 </td><td>56 </td><td>56 </td><td>12 </td></tr>\n", + "<tr><td> </td><td>xyzz </td><td>193536 </td><td>336 </td><td>168 </td><td>36 </td></tr>\n", + "<tr><td> </td><td>xyzz-3 </td><td>387072 </td><td>672 </td><td>336 </td><td>72 </td></tr>\n", + "<tr><td> </td><td>xz </td><td>267264 </td><td>464 </td><td>464 </td><td>110 </td></tr>\n", + "<tr><td>MontgomeryModel </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>\n", + "<tr><td> </td><td>xz </td><td>156672 </td><td>272 </td><td>136 </td><td>32 </td></tr>\n", + "<tr><td>EdwardsModel </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>\n", + "<tr><td> </td><td>inverted </td><td>387072 </td><td>672 </td><td>336 </td><td>72 </td></tr>\n", + "<tr><td> </td><td>projective </td><td>1548288</td><td>2688 </td><td>1344 </td><td>288 </td></tr>\n", + "<tr><td> </td><td>yz </td><td>117504 </td><td>204 </td><td>102 </td><td>24 </td></tr>\n", + "<tr><td> </td><td>yzsquared </td><td>64512 </td><td>112 </td><td>56 </td><td>12 </td></tr>\n", + "<tr><td>TwistedEdwardsModel </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>\n", + "<tr><td> </td><td>extended </td><td>193536 </td><td>336 </td><td>336 </td><td>72 </td></tr>\n", + "<tr><td> </td><td>extended-1 </td><td>387072 </td><td>672 </td><td>672 </td><td>144 </td></tr>\n", + "<tr><td> </td><td>inverted </td><td>96768 </td><td>168 </td><td>168 </td><td>36 </td></tr>\n", + "<tr><td> </td><td>projective </td><td>96768 </td><td>168 </td><td>168 </td><td>36 </td></tr>\n", + "</tbody>\n", + "</table>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] }, "metadata": {}, "output_type": "display_data" @@ -324,35 +366,50 @@ "\t\tcoords_name = coords.name\n", "\t\tcount = sum(1 for _ in all_configurations(model=model, coords=coords, **independent_opts))\n", "\t\tcount_no_scl = sum(1 for _ in all_configurations(model=model, coords=coords, **independent_opts, scalarmult={\"scl\": None}))\n", - "\t\tcount_no_opts = sum(1 for _ in all_configurations(model=model, coords=coords, **independent_opts, scalarmult={\"scl\": None, \"always\": True, \"short_circuit\": True, \"complete\": False, \"precompute_negation\": True}))\n", + "\t\tcount_no_opts = sum(1 for _ in all_configurations(model=model, coords=coords, **independent_opts, scalarmult={\"scl\": None, \"always\": True, \"short_circuit\": True, \"complete\": False, \"precompute_negation\": True, \"width\": 3}))\n", "\t\tcoords_counts.append([\"\", coords_name, count * (6*2*4*4*3), count, count_no_scl, count_no_opts])\n", "display(HTML(tabulate.tabulate(coords_counts, tablefmt=\"html\", headers=\"firstrow\")))" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n", - "is_executing": false - } - } + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "### Scalar multipliers" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 6, + "metadata": { + "pycharm": { + "is_executing": false, + "name": "#%%\n" + } + }, "outputs": [ { "data": { - "text/plain": "<IPython.core.display.HTML object>", - "text/html": "<table>\n<thead>\n<tr><th>ScalarMultiplier </th><th style=\"text-align: right;\"> All</th><th style=\"text-align: right;\"> Without independent options</th><th style=\"text-align: right;\"> Without independent options and scaling</th><th style=\"text-align: right;\"> Without independent options and scalarmult options</th></tr>\n</thead>\n<tbody>\n<tr><td>LTRMultiplier </td><td style=\"text-align: right;\">4414464</td><td style=\"text-align: right;\"> 7664</td><td style=\"text-align: right;\"> 4080</td><td style=\"text-align: right;\"> 510</td></tr>\n<tr><td>RTLMultiplier </td><td style=\"text-align: right;\">2207232</td><td style=\"text-align: right;\"> 3832</td><td style=\"text-align: right;\"> 2040</td><td style=\"text-align: right;\"> 510</td></tr>\n<tr><td>CoronMultiplier </td><td style=\"text-align: right;\">1103616</td><td style=\"text-align: right;\"> 1916</td><td style=\"text-align: right;\"> 1020</td><td style=\"text-align: right;\"> 510</td></tr>\n<tr><td>LadderMultiplier </td><td style=\"text-align: right;\"> 343296</td><td style=\"text-align: right;\"> 596</td><td style=\"text-align: right;\"> 430</td><td style=\"text-align: right;\"> 96</td></tr>\n<tr><td>SimpleLadderMultiplier </td><td style=\"text-align: right;\">2207232</td><td style=\"text-align: right;\"> 3832</td><td style=\"text-align: right;\"> 2040</td><td style=\"text-align: right;\"> 510</td></tr>\n<tr><td>DifferentialLadderMultiplier</td><td style=\"text-align: right;\"> 262656</td><td style=\"text-align: right;\"> 456</td><td style=\"text-align: right;\"> 328</td><td style=\"text-align: right;\"> 82</td></tr>\n<tr><td>BinaryNAFMultiplier </td><td style=\"text-align: right;\">1103616</td><td style=\"text-align: right;\"> 1916</td><td style=\"text-align: right;\"> 1020</td><td style=\"text-align: right;\"> 510</td></tr>\n<tr><td>WindowNAFMultiplier </td><td style=\"text-align: right;\">4414464</td><td style=\"text-align: right;\"> 7664</td><td style=\"text-align: right;\"> 4080</td><td style=\"text-align: right;\"> 1020</td></tr>\n</tbody>\n</table>" + "text/html": [ + "<table>\n", + "<thead>\n", + "<tr><th>ScalarMultiplier </th><th style=\"text-align: right;\"> All</th><th style=\"text-align: right;\"> Without independent options</th><th style=\"text-align: right;\"> Without independent options and scaling</th><th style=\"text-align: right;\"> Without independent options and scalarmult options</th></tr>\n", + "</thead>\n", + "<tbody>\n", + "<tr><td>LTRMultiplier </td><td style=\"text-align: right;\">4414464</td><td style=\"text-align: right;\"> 7664</td><td style=\"text-align: right;\"> 4080</td><td style=\"text-align: right;\"> 510</td></tr>\n", + "<tr><td>RTLMultiplier </td><td style=\"text-align: right;\">2207232</td><td style=\"text-align: right;\"> 3832</td><td style=\"text-align: right;\"> 2040</td><td style=\"text-align: right;\"> 510</td></tr>\n", + "<tr><td>CoronMultiplier </td><td style=\"text-align: right;\">1103616</td><td style=\"text-align: right;\"> 1916</td><td style=\"text-align: right;\"> 1020</td><td style=\"text-align: right;\"> 510</td></tr>\n", + "<tr><td>LadderMultiplier </td><td style=\"text-align: right;\"> 343296</td><td style=\"text-align: right;\"> 596</td><td style=\"text-align: right;\"> 430</td><td style=\"text-align: right;\"> 96</td></tr>\n", + "<tr><td>SimpleLadderMultiplier </td><td style=\"text-align: right;\">2207232</td><td style=\"text-align: right;\"> 3832</td><td style=\"text-align: right;\"> 2040</td><td style=\"text-align: right;\"> 510</td></tr>\n", + "<tr><td>DifferentialLadderMultiplier</td><td style=\"text-align: right;\"> 262656</td><td style=\"text-align: right;\"> 456</td><td style=\"text-align: right;\"> 328</td><td style=\"text-align: right;\"> 82</td></tr>\n", + "<tr><td>BinaryNAFMultiplier </td><td style=\"text-align: right;\">1103616</td><td style=\"text-align: right;\"> 1916</td><td style=\"text-align: right;\"> 1020</td><td style=\"text-align: right;\"> 510</td></tr>\n", + "<tr><td>WindowNAFMultiplier </td><td style=\"text-align: right;\">4414464</td><td style=\"text-align: right;\"> 7664</td><td style=\"text-align: right;\"> 4080</td><td style=\"text-align: right;\"> 510</td></tr>\n", + "</tbody>\n", + "</table>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] }, "metadata": {}, "output_type": "display_data" @@ -365,20 +422,18 @@ "for mult_cls in ScalarMultiplier.__subclasses__():\n", "\tcount = sum(1 for _ in all_configurations(**independent_opts, scalarmult=mult_cls))\n", "\tcount_no_scl = sum(1 for _ in all_configurations(**independent_opts, scalarmult={\"cls\": mult_cls, \"scl\": None}))\n", - "\tcount_no_opts = sum(1 for _ in all_configurations(**independent_opts, scalarmult={\"cls\": mult_cls, \"scl\": None, \"always\": True, \"short_circuit\": True, \"complete\": False, \"precompute_negation\": True}))\n", + "\tcount_no_opts = sum(1 for _ in all_configurations(**independent_opts, scalarmult={\"cls\": mult_cls, \"scl\": None, \"always\": True, \"short_circuit\": True, \"complete\": False, \"precompute_negation\": True, \"width\": 3}))\n", "\tmult_counts.append([mult_cls.__name__, count * (6*2*4*4*3), count, count_no_scl, count_no_opts])\n", "display(HTML(tabulate.tabulate(mult_counts, tablefmt=\"html\", headers=\"firstrow\")))\n" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n", - "is_executing": false - } - } + ] } ], "metadata": { + "@webio": { + "lastCommId": "8843001558264e7282a4df364e8e6d97", + "lastKernelId": "a90cf15a-f462-4126-bbfb-09bcab8bc1ff" + }, + "hide_input": false, "kernelspec": { "display_name": "Python 3", "language": "python", @@ -387,14 +442,32 @@ "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.8.1" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false }, "pycharm": { "stem_cell": { @@ -404,8 +477,21 @@ "collapsed": false } } + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 }
\ No newline at end of file diff --git a/dpa.ipynb b/dpa.ipynb deleted file mode 100644 index c1ddaa0..0000000 --- a/dpa.ipynb +++ /dev/null @@ -1,58 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "collapsed": true, - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# DPA\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } - } - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.1" - }, - "pycharm": { - "stem_cell": { - "cell_type": "raw", - "source": [], - "metadata": { - "collapsed": false - } - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -}
\ No newline at end of file diff --git a/leakage_testing.ipynb b/leakage_testing.ipynb deleted file mode 100644 index 7831f2a..0000000 --- a/leakage_testing.ipynb +++ /dev/null @@ -1,68 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "collapsed": true, - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Leakage testing\n", - "This notebook showcases using `pyecsca` for leakage testing using\n", - "Welch's t-test." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sthing\n" - ] - } - ], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.1" - }, - "pycharm": { - "stem_cell": { - "cell_type": "raw", - "source": [], - "metadata": { - "collapsed": false - } - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -}
\ No newline at end of file diff --git a/simulation.ipynb b/simulation.ipynb new file mode 100644 index 0000000..cabe589 --- /dev/null +++ b/simulation.ipynb @@ -0,0 +1,3038 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Simulation\n", + "\n", + "**pyecsca** is able to simulate computation of key generation, ECDH and ECDSA while tracing particular actions performed by the implementation as well as intermediate values. These traces are collected by the context (see the `Context` and `DefaultContext` classes). There is always one context active. For performance reasons, by default it is a `NullContext` instance, which does not trace anything.\n", + "\n", + "These traces are useful for attacks which rely on computing particular intermediate values during the ECC computation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Initialisation" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "pycharm": { + "is_executing": false + } + }, + "outputs": [], + "source": [ + "from binascii import hexlify\n", + "from copy import copy\n", + "\n", + "from pyecsca.ec.key_generation import KeyGeneration\n", + "from pyecsca.ec.key_agreement import ECDH_SHA1\n", + "from pyecsca.ec.signature import ECDSA_SHA1\n", + "from pyecsca.ec.curves import get_params\n", + "from pyecsca.ec.mult import LTRMultiplier\n", + "from pyecsca.ec.context import DefaultContext, local" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "pycharm": { + "is_executing": false + } + }, + "outputs": [], + "source": [ + "p256 = get_params(\"secg\", \"secp256r1\", \"projective\")\n", + "model = p256.curve.model\n", + "coords = p256.curve.coordinate_model\n", + "\n", + "add = coords.formulas[\"add-2007-bl\"]\n", + "dbl = coords.formulas[\"dbl-2007-bl\"]\n", + "\n", + "mult = LTRMultiplier(add, dbl, None)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Key generation" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "pycharm": { + "is_executing": false + } + }, + "outputs": [], + "source": [ + "keygen = KeyGeneration(copy(mult), p256, False)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true, + "pycharm": { + "is_executing": false + } + }, + "outputs": [ + { + "name": "stdout", + "text": [ + "27534349110771347155923075045818046165979888998818651586000312719216910833318\n", + "[X=83933898411588104793089377774707107506941266646933982525624598759013717245621, Y=26527425049573216561448628629620140099790717296630687777633119014160647664021, Z=64088794318210508120032658643489914503426087501574872600975980808063169111279]\n", + "KeygenAction(DomainParameters(secg/secp256r1))\n", + "\tRandomModAction(ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551)\n", + "\tScalarMultiplicationAction([X=48439561293906451759052585252797914202762949526041747995844080717082404635286, Y=36134250956749795798585127919587881956611106672985015071877198253568414405109, Z=1], 27534349110771347155923075045818046165979888998818651586000312719216910833318)\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\n" + ], + "output_type": "stream" + } + ], + "source": [ + "with local(DefaultContext()) as keygen_ctx:\n", + " private, public = keygen.generate()\n", + "print(private)\n", + "print(public)\n", + "print(keygen_ctx.actions)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Signing" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "pycharm": { + "is_executing": false + } + }, + "outputs": [], + "source": [ + "ecdsa = ECDSA_SHA1(copy(mult), p256, add, public, private)\n", + "data = b\"something\"" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": true, + "pycharm": { + "is_executing": false + } + }, + "outputs": [ + { + "name": "stdout", + "text": [ + "b'something'\n", + "(r=94431243472779457770181078394757042074208310087471629129794997149179235279505, s=89619810655289534561305906670069498479061576363695717048711157188366011214888)\n", + "ECDSASignAction(DomainParameters(secg/secp256r1), <built-in function openssl_sha1>, b'something', 27534349110771347155923075045818046165979888998818651586000312719216910833318)\n", + "\tRandomModAction(ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551)\n", + "\tScalarMultiplicationAction([X=48439561293906451759052585252797914202762949526041747995844080717082404635286, Y=36134250956749795798585127919587881956611106672985015071877198253568414405109, Z=1], 16976072681883240233350541036004334878693289354054036605340296754667307900719)\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\tCoordinateMappingAction(from=EFDCoordinateModel(\"projective\" on short Weierstrass curves), to=AffineCoordinateModel(\"affine\" on short Weierstrass curves), [X=112181343443676207839673239944150309423558811854593502506697340789120198013818, Y=26590797280311007970786578848912844749689034405618877005795309015688745953663, Z=89717118871975200382010216044865446574455808651213331300687232215082114512213])\n", + "\n" + ], + "output_type": "stream" + } + ], + "source": [ + "with local(DefaultContext()) as sign_ctx:\n", + " signature = ecdsa.sign_data(data)\n", + "print(data)\n", + "print(signature)\n", + "print(sign_ctx.actions)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": true, + "pycharm": { + "is_executing": false + } + }, + "outputs": [ + { + "name": "stdout", + "text": [ + "True\n", + "ECDSAVerifyAction(DomainParameters(secg/secp256r1), <built-in function openssl_sha1>, b'something', (r=94431243472779457770181078394757042074208310087471629129794997149179235279505, s=89619810655289534561305906670069498479061576363695717048711157188366011214888), [X=83933898411588104793089377774707107506941266646933982525624598759013717245621, Y=26527425049573216561448628629620140099790717296630687777633119014160647664021, Z=64088794318210508120032658643489914503426087501574872600975980808063169111279])\n", + "\tScalarMultiplicationAction([X=48439561293906451759052585252797914202762949526041747995844080717082404635286, Y=36134250956749795798585127919587881956611106672985015071877198253568414405109, Z=1], 111701592732851471232423665291050553644989131547247713497227113418554581357191)\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\tScalarMultiplicationAction([X=83933898411588104793089377774707107506941266646933982525624598759013717245621, Y=26527425049573216561448628629620140099790717296630687777633119014160647664021, Z=64088794318210508120032658643489914503426087501574872600975980808063169111279], 50884739991402261722019439145912660354347752085629610148560262003195356694068)\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\tFormulaAction(add[add-2007-bl])\n", + "\tCoordinateMappingAction(from=EFDCoordinateModel(\"projective\" on short Weierstrass curves), to=AffineCoordinateModel(\"affine\" on short Weierstrass curves), [X=33220268646786012505635481950879642660999122034358327496103877225589837169128, Y=59047526405730729177958669924853809268519572571217073090908067030251985436204, Z=34642077428797388431535005955445808886681144927993619852316966053895246929620])\n", + "\n" + ], + "output_type": "stream" + } + ], + "source": [ + "with local(DefaultContext()) as verify_ctx:\n", + " verified = ecdsa.verify_data(signature, data)\n", + "print(verified)\n", + "print(verify_ctx.actions)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Key agreement" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "pycharm": { + "is_executing": false + } + }, + "outputs": [ + { + "name": "stdout", + "text": [ + "b'2306c549dfd8ff5a3315058491f05553af5e9af3'\n", + "b'2306c549dfd8ff5a3315058491f05553af5e9af3'\n", + "True\n", + "ECDHAction(DomainParameters(secg/secp256r1), <built-in function openssl_sha1>, 103438430940984774541828939544194320318457161320409005542664649093940739658887, [X=83933898411588104793089377774707107506941266646933982525624598759013717245621, Y=26527425049573216561448628629620140099790717296630687777633119014160647664021, Z=64088794318210508120032658643489914503426087501574872600975980808063169111279])\n", + "\tScalarMultiplicationAction([X=83933898411588104793089377774707107506941266646933982525624598759013717245621, Y=26527425049573216561448628629620140099790717296630687777633119014160647664021, Z=64088794318210508120032658643489914503426087501574872600975980808063169111279], 103438430940984774541828939544194320318457161320409005542664649093940739658887)\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\tCoordinateMappingAction(from=EFDCoordinateModel(\"projective\" on short Weierstrass curves), to=AffineCoordinateModel(\"affine\" on short Weierstrass curves), [X=40948568256083210564540727912654344852109520200919257442046729954666452205245, Y=6366196186345033428194912414976049955453074270985211902964131864960984443183, Z=80360534560280695310701608559656697246765616773519079982406291343716933042195])\n", + "ECDHAction(DomainParameters(secg/secp256r1), <built-in function openssl_sha1>, 27534349110771347155923075045818046165979888998818651586000312719216910833318, [X=94168775821425128025123356315870720268353785464412205108359316086219225962740, Y=89860887660942421780987238129326016281190906659933626958676811792200957428223, Z=107859243248362617524174156417645290219377867667119220732976494094454534205090])\n", + "\tScalarMultiplicationAction([X=94168775821425128025123356315870720268353785464412205108359316086219225962740, Y=89860887660942421780987238129326016281190906659933626958676811792200957428223, Z=107859243248362617524174156417645290219377867667119220732976494094454534205090], 27534349110771347155923075045818046165979888998818651586000312719216910833318)\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\t\tFormulaAction(add[add-2007-bl])\n", + "\t\tFormulaAction(dbl[dbl-2007-bl])\n", + "\tCoordinateMappingAction(from=EFDCoordinateModel(\"projective\" on short Weierstrass curves), to=AffineCoordinateModel(\"affine\" on short Weierstrass curves), [X=100384205237909480277933729488509491559941388631896756478278927787576061696216, Y=89454618352420160944043005478058627104629404729419865180753014723760630901144, Z=113999128464209288294133431971280289020726881968616500425343582653141041181105])\n", + "\n" + ], + "output_type": "stream" + } + ], + "source": [ + "other_private, other_public = keygen.generate()\n", + "\n", + "ecdh_a = ECDH_SHA1(copy(mult), p256, public, other_private)\n", + "ecdh_b = ECDH_SHA1(copy(mult), p256, other_public, private)\n", + "with local(DefaultContext()) as ecdh_ctx:\n", + " ecdh_a_result = ecdh_a.perform()\n", + " ecdh_b_result = ecdh_b.perform()\n", + "print(hexlify(ecdh_a_result))\n", + "print(hexlify(ecdh_b_result))\n", + "print(ecdh_a_result == ecdh_b_result)\n", + "print(ecdh_ctx.actions)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Walking the trace" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As visible from the outputs above, `DefaultContext` traces the actions performed by the implementation in an ordered tree where the child relationship means that some actions happened during another action and order of children gives the order of operations. In the above example of ECDH, two ECDH executions are visible, each consisting of one scalar multuplication which consists of several applications of `add` and `dbl` formulas.\n", + "\n", + "We can examine this tree in the first ECDH execution and see that the scalar multiplier used was not setup to be regular (see `LTRMultiplier` argument `always`) and that the order of operations leaks bits of the scalar. This fact will be easily exploitable on a power trace via SPA." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "dbl\n", + "dbl\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "dbl\n", + "add\n", + "0b111101110110100110100100111010010000001111001000100010011010101111011011100101001010101110011101011001010010100101011100001011100101101001101100001100100111001100111100011111011111101100100101110011010110110001101111110001100011010111000001111011011000111\n", + "0b111101110110100110100100111010010000001111001000100010011010101111011011100101001010101110011101011001010010100101011100001011100101101001101100001100100111001100111100011111011111101100100101110011010110110001101111110001100011010111000001111011011000111\n", + "True\n" + ] + } + ], + "source": [ + "tree = ecdh_ctx.actions\n", + "\n", + "ecdh_action, subtree = tree.get_by_index([0])\n", + "\n", + "scalarmult_action, subtree = subtree.get_by_index([0])\n", + "recovered_private = 1\n", + "for formula_call in subtree:\n", + " if formula_call.formula.shortname == \"add\":\n", + " recovered_private |= 1\n", + " elif formula_call.formula.shortname == \"dbl\":\n", + " recovered_private <<= 1\n", + " print(formula_call.formula.shortname)\n", + "\n", + "print(bin(int(other_private)))\n", + "print(bin(int(recovered_private)))\n", + "print(other_private == recovered_private)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can navigate the tree by indices, to get the second formula call of the second ECDH scalar multiplication:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FormulaAction(add[add-2007-bl], [Point([[X=383960763982903169689995079657542701951957535427344849026282264593569529481, Y=97816494580647658973605082832672362195798387552766223950530555908406646227345, Z=33112635526968736033324232912483052826450752467533070394363196286451437973911]] in EFDCoordinateModel(\"projective\" on short Weierstrass curves)), Point([[X=24901324827761941171665406740352491860459252998228148257353674203781522895658, Y=1469593958564832835035565462147741560916652661670762870816949405978440504767, Z=42322585263999539773352738483857501665285392542933346948286130835216078214252]] in EFDCoordinateModel(\"projective\" on short Weierstrass curves))]) = [Point([[X=106865350531828665272902459426695837837271776535211872763482234212642743419841, Y=102436521985123267638908548470272192599523323303084800549610360200950579480875, Z=14605232732661913809514868772836150792927623835013731687411437319958240413794]] in EFDCoordinateModel(\"projective\" on short Weierstrass curves))]\n" + ] + } + ], + "source": [ + "action, subtree = tree.get_by_index([1, 0, 1])\n", + "print(repr(action))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `[1,0,1]` path given above represented a walk through the execution trace, taking the second child of the root, then the first child then the second again." + ] + } + ], + "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, + "hide_input": false, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.1" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "source": [], + "metadata": { + "collapsed": false + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}
\ No newline at end of file |
