0

I am trying to use Elliptic Curve Cryptography using Matyas Danter's phpecc libraries available in 1 . However, I am getting the following error when I create the variable Alice , although the passed argument is a Point.. please help..

Catchable fatal error: Argument 1 passed to EcDH::__construct() must be an instance of Point, string given, called in C:\xampp\htdocs\ECC-example.php on line 31 and defined in C:\xampp\htdocs\classes\EcDH.php on line 39

         include 'autoload.inc.php';
         include 'classes/EcDH.php';
         include 'classes/PHPECC.class.php';
         include 'classes/SECurve.class.php';
         $keypair = PHPECC::hex_keypair_genorate();

         $g = NISTcurve::generator_192();
         echo $g;
         $Alice = new EcDH(g);

..........................................

NISTcurve.php has the below function:

         public static function generator_192() {
         // NIST Curve P-192:
        if (extension_loaded('gmp') && USE_EXT == 'GMP') {
        $_p = '6277101735386680763835789423207666416083908700390324961279';
        $_r = '6277101735386680763835789423176059013767194773182842284081';
        $_b = gmp_Utils::gmp_hexdec('0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1');
        $_Gx = gmp_Utils::gmp_hexdec('0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012');
        $_Gy = gmp_Utils::gmp_hexdec('0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811');

        $curve_192 = new CurveFp($_p, -3, $_b);
        $generator_192 = new Point($curve_192, $_Gx, $_Gy, $_r);
    } else if (extension_loaded('bcmath') && USE_EXT == 'BCMATH') {
        $_p = '6277101735386680763835789423207666416083908700390324961279';
        $_r = '6277101735386680763835789423176059013767194773182842284081';
        $_b = bcmath_Utils::bchexdec('0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1');
        $_Gx = bcmath_Utils::bchexdec('0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012');
        $_Gy = bcmath_Utils::bchexdec('0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811');

        $curve_192 = new CurveFp($_p, -3, $_b);
        $generator_192 = new Point($curve_192, $_Gx, $_Gy, $_r);
    }
    return $generator_192;
}
Haya Raed
  • 5,921
  • 5
  • 16
  • 19

1 Answers1

0

The error was in the last line

$Alice = new EcDH(g) -> wrong

$Alice = new EcDH($g) -> correct

A sily mistake that caused a huge error..

Haya Raed
  • 5,921
  • 5
  • 16
  • 19