ParagonIE_Sodium_Core_Curve25519::ge_madd

Advertisement

Syntax Syntax

ParagonIE_Sodium_Core_Curve25519::ge_madd( ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $R, ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p, ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $q )

Parameters Parameters

$R

(ParagonIE_Sodium_Core_Curve25519_Ge_P1p1) (Required)

$p

(ParagonIE_Sodium_Core_Curve25519_Ge_P3) (Required)

$q

(ParagonIE_Sodium_Core_Curve25519_Ge_Precomp) (Required)

Return Return

(ParagonIE_Sodium_Core_Curve25519_Ge_P1p1)

Source Source

File: wp-includes/sodium_compat/src/Core/Curve25519.php

    public static function ge_madd(
        ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $R,
        ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p,
        ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $q
    ) {
        $r = clone $R;
        $r->X = self::fe_add($p->Y, $p->X);
        $r->Y = self::fe_sub($p->Y, $p->X);
        $r->Z = self::fe_mul($r->X, $q->yplusx);
        $r->Y = self::fe_mul($r->Y, $q->yminusx);
        $r->T = self::fe_mul($q->xy2d, $p->T);
        $t0 = self::fe_add(clone $p->Z, clone $p->Z);
        $r->X = self::fe_sub($r->Z, $r->Y);
        $r->Y = self::fe_add($r->Z, $r->Y);
        $r->Z = self::fe_add($t0, $r->T);
        $r->T = self::fe_sub($t0, $r->T);

        return $r;
    }

Advertisement

Advertisement

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.