ParagonIE_Sodium_Core_Ed25519::pk_to_curve25519()
{} Это метод класса: 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.9.3
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); }