ParagonIE_Sodium_Core_Ed25519::pk_to_curve25519() public WP 1.0
{} Это метод класса: ParagonIE_Sodium_Core_Ed25519{}
Хуков нет.
Возвращает
Строку.
Использование
$result = ParagonIE_Sodium_Core_Ed25519::pk_to_curve25519( $pk );
- $pk(строка) (обязательный)
- -
Код ParagonIE_Sodium_Core_Ed25519::pk_to_curve25519() ParagonIE Sodium Core Ed25519::pk to curve25519 WP 5.6.2
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(self::substr($pk, 0, 32));
$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);
}