• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

famoser / elliptic / 16238255757

12 Jul 2025 01:00PM UTC coverage: 84.857% (-6.3%) from 91.134%
16238255757

Pull #12

github

web-flow
Merge 97611838a into 5ce1049c0
Pull Request #12: WIP: Add montgomery

270 of 376 new or added lines in 17 files covered. (71.81%)

2 existing lines in 1 file now uncovered.

947 of 1116 relevant lines covered (84.86%)

23.02 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Math/Calculator/TE_ANeg1_Calculator.php
1
<?php
2

3
namespace Famoser\Elliptic\Math\Calculator;
4

5
use Famoser\Elliptic\Math\Calculator\Adder\SW_ANeg3_Jacobi_Adder;
6
use Famoser\Elliptic\Math\Calculator\Adder\TE_ANeg1_Extended_Adder;
7
use Famoser\Elliptic\Math\Calculator\Coordinator\ExtendedCoordinator;
8
use Famoser\Elliptic\Math\Calculator\Coordinator\JacobiCoordinator;
9
use Famoser\Elliptic\Math\Calculator\Multiplicator\DoubleAndAddAlwaysMultiplicator;
10
use Famoser\Elliptic\Math\Calculator\Swapper\ExtendedSwapper;
11
use Famoser\Elliptic\Math\Calculator\Swapper\JacobiSwapper;
12
use Famoser\Elliptic\Math\Primitives\ExtendedCoordinates;
13
use Famoser\Elliptic\Math\Primitives\JacobiPoint;
14
use Famoser\Elliptic\Primitives\Curve;
15
use Famoser\Elliptic\Primitives\CurveType;
16

17
/**
18
 * Calculator for twisted edwards curves with A = -1 mod p
19
 */
20
class TE_ANeg1_Calculator extends AbstractCalculator
21
{
22
    use ExtendedCoordinator;
23
    use TE_ANeg1_Extended_Adder;
24
    use ExtendedSwapper;
25
    /** @use DoubleAndAddAlwaysMultiplicator<ExtendedCoordinates> */
26
    use DoubleAndAddAlwaysMultiplicator;
27

NEW
28
    public function __construct(Curve $curve)
×
29
    {
NEW
30
        parent::__construct($curve);
×
31

32
        // check allowed to use this calculator
NEW
33
        $check = $curve->getType() === CurveType::TwistedEdwards;
×
NEW
34
        $check &= gmp_cmp($curve->getA(), gmp_sub($curve->getP(), 1)) === 0;
×
NEW
35
        if (!$check) {
×
NEW
36
            throw new \AssertionError('Cannot use this calculator with the chosen curve.');
×
37
        }
38
    }
39
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc