WordPress at a glance
function is not described

ParagonIE_Sodium_Core32_Ed25519::pk_to_curve25519() public WP 1.0

{} It's a method of the class: ParagonIE_Sodium_Core32_Ed25519{}

No Hooks.

Return

String. Null. Nothing.

Usage

$result = ParagonIE_Sodium_Core32_Ed25519::pk_to_curve25519( $pk );
$pk(string) (required)
-

Code of ParagonIE_Sodium_Core32_Ed25519::pk_to_curve25519() WP 5.7

<?php
public static function pk_to_curve25519($pk)
{
    if (self::small_order($pk)) {
        throw new SodiumException('Public key is on a small order');
    }
    $A = self::ge_frombytes_negate_vartime($pk);
    $p1 = self::ge_mul_l($A);
    if (!self::fe_isnonzero($p1->X)) {
        throw new SodiumException('Unexpected zero result');
    }

    # fe_1(one_minus_y);
    # fe_sub(one_minus_y, one_minus_y, A.Y);
    # fe_invert(one_minus_y, one_minus_y);
    $one_minux_y = self::fe_invert(
        self::fe_sub(
            self::fe_1(),
            $A->Y
        )
    );


    # fe_1(x);
    # fe_add(x, x, A.Y);
    # fe_mul(x, x, one_minus_y);
    $x = self::fe_mul(
        self::fe_add(self::fe_1(), $A->Y),
        $one_minux_y
    );

    # fe_tobytes(curve25519_pk, x);
    return self::fe_tobytes($x);
}