Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu.../sodium_c.../src/Core
File: Curve25519.php
$carry1 = ($h1 + (1 << 24)) >> 25;
[500] Fix | Delete
$h2 += $carry1;
[501] Fix | Delete
$h1 -= $carry1 << 25;
[502] Fix | Delete
$carry5 = ($h5 + (1 << 24)) >> 25;
[503] Fix | Delete
$h6 += $carry5;
[504] Fix | Delete
$h5 -= $carry5 << 25;
[505] Fix | Delete
[506] Fix | Delete
$carry2 = ($h2 + (1 << 25)) >> 26;
[507] Fix | Delete
$h3 += $carry2;
[508] Fix | Delete
$h2 -= $carry2 << 26;
[509] Fix | Delete
$carry6 = ($h6 + (1 << 25)) >> 26;
[510] Fix | Delete
$h7 += $carry6;
[511] Fix | Delete
$h6 -= $carry6 << 26;
[512] Fix | Delete
[513] Fix | Delete
$carry3 = ($h3 + (1 << 24)) >> 25;
[514] Fix | Delete
$h4 += $carry3;
[515] Fix | Delete
$h3 -= $carry3 << 25;
[516] Fix | Delete
$carry7 = ($h7 + (1 << 24)) >> 25;
[517] Fix | Delete
$h8 += $carry7;
[518] Fix | Delete
$h7 -= $carry7 << 25;
[519] Fix | Delete
[520] Fix | Delete
$carry4 = ($h4 + (1 << 25)) >> 26;
[521] Fix | Delete
$h5 += $carry4;
[522] Fix | Delete
$h4 -= $carry4 << 26;
[523] Fix | Delete
$carry8 = ($h8 + (1 << 25)) >> 26;
[524] Fix | Delete
$h9 += $carry8;
[525] Fix | Delete
$h8 -= $carry8 << 26;
[526] Fix | Delete
[527] Fix | Delete
$carry9 = ($h9 + (1 << 24)) >> 25;
[528] Fix | Delete
$h0 += self::mul($carry9, 19, 5);
[529] Fix | Delete
$h9 -= $carry9 << 25;
[530] Fix | Delete
[531] Fix | Delete
$carry0 = ($h0 + (1 << 25)) >> 26;
[532] Fix | Delete
$h1 += $carry0;
[533] Fix | Delete
$h0 -= $carry0 << 26;
[534] Fix | Delete
[535] Fix | Delete
return self::fe_normalize(
[536] Fix | Delete
ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
[537] Fix | Delete
array(
[538] Fix | Delete
(int) $h0,
[539] Fix | Delete
(int) $h1,
[540] Fix | Delete
(int) $h2,
[541] Fix | Delete
(int) $h3,
[542] Fix | Delete
(int) $h4,
[543] Fix | Delete
(int) $h5,
[544] Fix | Delete
(int) $h6,
[545] Fix | Delete
(int) $h7,
[546] Fix | Delete
(int) $h8,
[547] Fix | Delete
(int) $h9
[548] Fix | Delete
)
[549] Fix | Delete
)
[550] Fix | Delete
);
[551] Fix | Delete
}
[552] Fix | Delete
[553] Fix | Delete
/**
[554] Fix | Delete
* Get the negative values for each piece of the field element.
[555] Fix | Delete
*
[556] Fix | Delete
* h = -f
[557] Fix | Delete
*
[558] Fix | Delete
* @internal You should not use this directly from another application
[559] Fix | Delete
*
[560] Fix | Delete
* @param ParagonIE_Sodium_Core_Curve25519_Fe $f
[561] Fix | Delete
* @return ParagonIE_Sodium_Core_Curve25519_Fe
[562] Fix | Delete
* @psalm-suppress MixedAssignment
[563] Fix | Delete
*/
[564] Fix | Delete
public static function fe_neg(ParagonIE_Sodium_Core_Curve25519_Fe $f)
[565] Fix | Delete
{
[566] Fix | Delete
$h = new ParagonIE_Sodium_Core_Curve25519_Fe();
[567] Fix | Delete
for ($i = 0; $i < 10; ++$i) {
[568] Fix | Delete
$h[$i] = -$f[$i];
[569] Fix | Delete
}
[570] Fix | Delete
return self::fe_normalize($h);
[571] Fix | Delete
}
[572] Fix | Delete
[573] Fix | Delete
/**
[574] Fix | Delete
* Square a field element
[575] Fix | Delete
*
[576] Fix | Delete
* h = f * f
[577] Fix | Delete
*
[578] Fix | Delete
* @internal You should not use this directly from another application
[579] Fix | Delete
*
[580] Fix | Delete
* @param ParagonIE_Sodium_Core_Curve25519_Fe $f
[581] Fix | Delete
* @return ParagonIE_Sodium_Core_Curve25519_Fe
[582] Fix | Delete
*/
[583] Fix | Delete
public static function fe_sq(ParagonIE_Sodium_Core_Curve25519_Fe $f)
[584] Fix | Delete
{
[585] Fix | Delete
$f = self::fe_normalize($f);
[586] Fix | Delete
$f0 = (int) $f[0];
[587] Fix | Delete
$f1 = (int) $f[1];
[588] Fix | Delete
$f2 = (int) $f[2];
[589] Fix | Delete
$f3 = (int) $f[3];
[590] Fix | Delete
$f4 = (int) $f[4];
[591] Fix | Delete
$f5 = (int) $f[5];
[592] Fix | Delete
$f6 = (int) $f[6];
[593] Fix | Delete
$f7 = (int) $f[7];
[594] Fix | Delete
$f8 = (int) $f[8];
[595] Fix | Delete
$f9 = (int) $f[9];
[596] Fix | Delete
[597] Fix | Delete
$f0_2 = $f0 << 1;
[598] Fix | Delete
$f1_2 = $f1 << 1;
[599] Fix | Delete
$f2_2 = $f2 << 1;
[600] Fix | Delete
$f3_2 = $f3 << 1;
[601] Fix | Delete
$f4_2 = $f4 << 1;
[602] Fix | Delete
$f5_2 = $f5 << 1;
[603] Fix | Delete
$f6_2 = $f6 << 1;
[604] Fix | Delete
$f7_2 = $f7 << 1;
[605] Fix | Delete
$f5_38 = self::mul($f5, 38, 6);
[606] Fix | Delete
$f6_19 = self::mul($f6, 19, 5);
[607] Fix | Delete
$f7_38 = self::mul($f7, 38, 6);
[608] Fix | Delete
$f8_19 = self::mul($f8, 19, 5);
[609] Fix | Delete
$f9_38 = self::mul($f9, 38, 6);
[610] Fix | Delete
$f0f0 = self::mul($f0, $f0, 26);
[611] Fix | Delete
$f0f1_2 = self::mul($f0_2, $f1, 26);
[612] Fix | Delete
$f0f2_2 = self::mul($f0_2, $f2, 26);
[613] Fix | Delete
$f0f3_2 = self::mul($f0_2, $f3, 26);
[614] Fix | Delete
$f0f4_2 = self::mul($f0_2, $f4, 26);
[615] Fix | Delete
$f0f5_2 = self::mul($f0_2, $f5, 26);
[616] Fix | Delete
$f0f6_2 = self::mul($f0_2, $f6, 26);
[617] Fix | Delete
$f0f7_2 = self::mul($f0_2, $f7, 26);
[618] Fix | Delete
$f0f8_2 = self::mul($f0_2, $f8, 26);
[619] Fix | Delete
$f0f9_2 = self::mul($f0_2, $f9, 26);
[620] Fix | Delete
$f1f1_2 = self::mul($f1_2, $f1, 26);
[621] Fix | Delete
$f1f2_2 = self::mul($f1_2, $f2, 26);
[622] Fix | Delete
$f1f3_4 = self::mul($f1_2, $f3_2, 26);
[623] Fix | Delete
$f1f4_2 = self::mul($f1_2, $f4, 26);
[624] Fix | Delete
$f1f5_4 = self::mul($f1_2, $f5_2, 26);
[625] Fix | Delete
$f1f6_2 = self::mul($f1_2, $f6, 26);
[626] Fix | Delete
$f1f7_4 = self::mul($f1_2, $f7_2, 26);
[627] Fix | Delete
$f1f8_2 = self::mul($f1_2, $f8, 26);
[628] Fix | Delete
$f1f9_76 = self::mul($f9_38, $f1_2, 27);
[629] Fix | Delete
$f2f2 = self::mul($f2, $f2, 27);
[630] Fix | Delete
$f2f3_2 = self::mul($f2_2, $f3, 27);
[631] Fix | Delete
$f2f4_2 = self::mul($f2_2, $f4, 27);
[632] Fix | Delete
$f2f5_2 = self::mul($f2_2, $f5, 27);
[633] Fix | Delete
$f2f6_2 = self::mul($f2_2, $f6, 27);
[634] Fix | Delete
$f2f7_2 = self::mul($f2_2, $f7, 27);
[635] Fix | Delete
$f2f8_38 = self::mul($f8_19, $f2_2, 27);
[636] Fix | Delete
$f2f9_38 = self::mul($f9_38, $f2, 26);
[637] Fix | Delete
$f3f3_2 = self::mul($f3_2, $f3, 26);
[638] Fix | Delete
$f3f4_2 = self::mul($f3_2, $f4, 26);
[639] Fix | Delete
$f3f5_4 = self::mul($f3_2, $f5_2, 26);
[640] Fix | Delete
$f3f6_2 = self::mul($f3_2, $f6, 26);
[641] Fix | Delete
$f3f7_76 = self::mul($f7_38, $f3_2, 26);
[642] Fix | Delete
$f3f8_38 = self::mul($f8_19, $f3_2, 26);
[643] Fix | Delete
$f3f9_76 = self::mul($f9_38, $f3_2, 26);
[644] Fix | Delete
$f4f4 = self::mul($f4, $f4, 26);
[645] Fix | Delete
$f4f5_2 = self::mul($f4_2, $f5, 26);
[646] Fix | Delete
$f4f6_38 = self::mul($f6_19, $f4_2, 27);
[647] Fix | Delete
$f4f7_38 = self::mul($f7_38, $f4, 26);
[648] Fix | Delete
$f4f8_38 = self::mul($f8_19, $f4_2, 27);
[649] Fix | Delete
$f4f9_38 = self::mul($f9_38, $f4, 26);
[650] Fix | Delete
$f5f5_38 = self::mul($f5_38, $f5, 26);
[651] Fix | Delete
$f5f6_38 = self::mul($f6_19, $f5_2, 26);
[652] Fix | Delete
$f5f7_76 = self::mul($f7_38, $f5_2, 26);
[653] Fix | Delete
$f5f8_38 = self::mul($f8_19, $f5_2, 26);
[654] Fix | Delete
$f5f9_76 = self::mul($f9_38, $f5_2, 26);
[655] Fix | Delete
$f6f6_19 = self::mul($f6_19, $f6, 26);
[656] Fix | Delete
$f6f7_38 = self::mul($f7_38, $f6, 26);
[657] Fix | Delete
$f6f8_38 = self::mul($f8_19, $f6_2, 27);
[658] Fix | Delete
$f6f9_38 = self::mul($f9_38, $f6, 26);
[659] Fix | Delete
$f7f7_38 = self::mul($f7_38, $f7, 26);
[660] Fix | Delete
$f7f8_38 = self::mul($f8_19, $f7_2, 26);
[661] Fix | Delete
$f7f9_76 = self::mul($f9_38, $f7_2, 26);
[662] Fix | Delete
$f8f8_19 = self::mul($f8_19, $f8, 26);
[663] Fix | Delete
$f8f9_38 = self::mul($f9_38, $f8, 26);
[664] Fix | Delete
$f9f9_38 = self::mul($f9_38, $f9, 26);
[665] Fix | Delete
$h0 = $f0f0 + $f1f9_76 + $f2f8_38 + $f3f7_76 + $f4f6_38 + $f5f5_38;
[666] Fix | Delete
$h1 = $f0f1_2 + $f2f9_38 + $f3f8_38 + $f4f7_38 + $f5f6_38;
[667] Fix | Delete
$h2 = $f0f2_2 + $f1f1_2 + $f3f9_76 + $f4f8_38 + $f5f7_76 + $f6f6_19;
[668] Fix | Delete
$h3 = $f0f3_2 + $f1f2_2 + $f4f9_38 + $f5f8_38 + $f6f7_38;
[669] Fix | Delete
$h4 = $f0f4_2 + $f1f3_4 + $f2f2 + $f5f9_76 + $f6f8_38 + $f7f7_38;
[670] Fix | Delete
$h5 = $f0f5_2 + $f1f4_2 + $f2f3_2 + $f6f9_38 + $f7f8_38;
[671] Fix | Delete
$h6 = $f0f6_2 + $f1f5_4 + $f2f4_2 + $f3f3_2 + $f7f9_76 + $f8f8_19;
[672] Fix | Delete
$h7 = $f0f7_2 + $f1f6_2 + $f2f5_2 + $f3f4_2 + $f8f9_38;
[673] Fix | Delete
$h8 = $f0f8_2 + $f1f7_4 + $f2f6_2 + $f3f5_4 + $f4f4 + $f9f9_38;
[674] Fix | Delete
$h9 = $f0f9_2 + $f1f8_2 + $f2f7_2 + $f3f6_2 + $f4f5_2;
[675] Fix | Delete
[676] Fix | Delete
$carry0 = ($h0 + (1 << 25)) >> 26;
[677] Fix | Delete
$h1 += $carry0;
[678] Fix | Delete
$h0 -= $carry0 << 26;
[679] Fix | Delete
$carry4 = ($h4 + (1 << 25)) >> 26;
[680] Fix | Delete
$h5 += $carry4;
[681] Fix | Delete
$h4 -= $carry4 << 26;
[682] Fix | Delete
[683] Fix | Delete
$carry1 = ($h1 + (1 << 24)) >> 25;
[684] Fix | Delete
$h2 += $carry1;
[685] Fix | Delete
$h1 -= $carry1 << 25;
[686] Fix | Delete
$carry5 = ($h5 + (1 << 24)) >> 25;
[687] Fix | Delete
$h6 += $carry5;
[688] Fix | Delete
$h5 -= $carry5 << 25;
[689] Fix | Delete
[690] Fix | Delete
$carry2 = ($h2 + (1 << 25)) >> 26;
[691] Fix | Delete
$h3 += $carry2;
[692] Fix | Delete
$h2 -= $carry2 << 26;
[693] Fix | Delete
$carry6 = ($h6 + (1 << 25)) >> 26;
[694] Fix | Delete
$h7 += $carry6;
[695] Fix | Delete
$h6 -= $carry6 << 26;
[696] Fix | Delete
[697] Fix | Delete
$carry3 = ($h3 + (1 << 24)) >> 25;
[698] Fix | Delete
$h4 += $carry3;
[699] Fix | Delete
$h3 -= $carry3 << 25;
[700] Fix | Delete
$carry7 = ($h7 + (1 << 24)) >> 25;
[701] Fix | Delete
$h8 += $carry7;
[702] Fix | Delete
$h7 -= $carry7 << 25;
[703] Fix | Delete
[704] Fix | Delete
$carry4 = ($h4 + (1 << 25)) >> 26;
[705] Fix | Delete
$h5 += $carry4;
[706] Fix | Delete
$h4 -= $carry4 << 26;
[707] Fix | Delete
$carry8 = ($h8 + (1 << 25)) >> 26;
[708] Fix | Delete
$h9 += $carry8;
[709] Fix | Delete
$h8 -= $carry8 << 26;
[710] Fix | Delete
[711] Fix | Delete
$carry9 = ($h9 + (1 << 24)) >> 25;
[712] Fix | Delete
$h0 += self::mul($carry9, 19, 5);
[713] Fix | Delete
$h9 -= $carry9 << 25;
[714] Fix | Delete
[715] Fix | Delete
$carry0 = ($h0 + (1 << 25)) >> 26;
[716] Fix | Delete
$h1 += $carry0;
[717] Fix | Delete
$h0 -= $carry0 << 26;
[718] Fix | Delete
[719] Fix | Delete
return self::fe_normalize(
[720] Fix | Delete
ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
[721] Fix | Delete
array(
[722] Fix | Delete
(int) $h0,
[723] Fix | Delete
(int) $h1,
[724] Fix | Delete
(int) $h2,
[725] Fix | Delete
(int) $h3,
[726] Fix | Delete
(int) $h4,
[727] Fix | Delete
(int) $h5,
[728] Fix | Delete
(int) $h6,
[729] Fix | Delete
(int) $h7,
[730] Fix | Delete
(int) $h8,
[731] Fix | Delete
(int) $h9
[732] Fix | Delete
)
[733] Fix | Delete
)
[734] Fix | Delete
);
[735] Fix | Delete
}
[736] Fix | Delete
[737] Fix | Delete
[738] Fix | Delete
/**
[739] Fix | Delete
* Square and double a field element
[740] Fix | Delete
*
[741] Fix | Delete
* h = 2 * f * f
[742] Fix | Delete
*
[743] Fix | Delete
* @internal You should not use this directly from another application
[744] Fix | Delete
*
[745] Fix | Delete
* @param ParagonIE_Sodium_Core_Curve25519_Fe $f
[746] Fix | Delete
* @return ParagonIE_Sodium_Core_Curve25519_Fe
[747] Fix | Delete
*/
[748] Fix | Delete
public static function fe_sq2(ParagonIE_Sodium_Core_Curve25519_Fe $f)
[749] Fix | Delete
{
[750] Fix | Delete
$f = self::fe_normalize($f);
[751] Fix | Delete
$f0 = (int) $f[0];
[752] Fix | Delete
$f1 = (int) $f[1];
[753] Fix | Delete
$f2 = (int) $f[2];
[754] Fix | Delete
$f3 = (int) $f[3];
[755] Fix | Delete
$f4 = (int) $f[4];
[756] Fix | Delete
$f5 = (int) $f[5];
[757] Fix | Delete
$f6 = (int) $f[6];
[758] Fix | Delete
$f7 = (int) $f[7];
[759] Fix | Delete
$f8 = (int) $f[8];
[760] Fix | Delete
$f9 = (int) $f[9];
[761] Fix | Delete
[762] Fix | Delete
$f0_2 = $f0 << 1;
[763] Fix | Delete
$f1_2 = $f1 << 1;
[764] Fix | Delete
$f2_2 = $f2 << 1;
[765] Fix | Delete
$f3_2 = $f3 << 1;
[766] Fix | Delete
$f4_2 = $f4 << 1;
[767] Fix | Delete
$f5_2 = $f5 << 1;
[768] Fix | Delete
$f6_2 = $f6 << 1;
[769] Fix | Delete
$f7_2 = $f7 << 1;
[770] Fix | Delete
$f5_38 = self::mul($f5, 38, 6); /* 1.959375*2^30 */
[771] Fix | Delete
$f6_19 = self::mul($f6, 19, 5); /* 1.959375*2^30 */
[772] Fix | Delete
$f7_38 = self::mul($f7, 38, 6); /* 1.959375*2^30 */
[773] Fix | Delete
$f8_19 = self::mul($f8, 19, 5); /* 1.959375*2^30 */
[774] Fix | Delete
$f9_38 = self::mul($f9, 38, 6); /* 1.959375*2^30 */
[775] Fix | Delete
$f0f0 = self::mul($f0, $f0, 24);
[776] Fix | Delete
$f0f1_2 = self::mul($f0_2, $f1, 24);
[777] Fix | Delete
$f0f2_2 = self::mul($f0_2, $f2, 24);
[778] Fix | Delete
$f0f3_2 = self::mul($f0_2, $f3, 24);
[779] Fix | Delete
$f0f4_2 = self::mul($f0_2, $f4, 24);
[780] Fix | Delete
$f0f5_2 = self::mul($f0_2, $f5, 24);
[781] Fix | Delete
$f0f6_2 = self::mul($f0_2, $f6, 24);
[782] Fix | Delete
$f0f7_2 = self::mul($f0_2, $f7, 24);
[783] Fix | Delete
$f0f8_2 = self::mul($f0_2, $f8, 24);
[784] Fix | Delete
$f0f9_2 = self::mul($f0_2, $f9, 24);
[785] Fix | Delete
$f1f1_2 = self::mul($f1_2, $f1, 24);
[786] Fix | Delete
$f1f2_2 = self::mul($f1_2, $f2, 24);
[787] Fix | Delete
$f1f3_4 = self::mul($f1_2, $f3_2, 24);
[788] Fix | Delete
$f1f4_2 = self::mul($f1_2, $f4, 24);
[789] Fix | Delete
$f1f5_4 = self::mul($f1_2, $f5_2, 24);
[790] Fix | Delete
$f1f6_2 = self::mul($f1_2, $f6, 24);
[791] Fix | Delete
$f1f7_4 = self::mul($f1_2, $f7_2, 24);
[792] Fix | Delete
$f1f8_2 = self::mul($f1_2, $f8, 24);
[793] Fix | Delete
$f1f9_76 = self::mul($f9_38, $f1_2, 24);
[794] Fix | Delete
$f2f2 = self::mul($f2, $f2, 24);
[795] Fix | Delete
$f2f3_2 = self::mul($f2_2, $f3, 24);
[796] Fix | Delete
$f2f4_2 = self::mul($f2_2, $f4, 24);
[797] Fix | Delete
$f2f5_2 = self::mul($f2_2, $f5, 24);
[798] Fix | Delete
$f2f6_2 = self::mul($f2_2, $f6, 24);
[799] Fix | Delete
$f2f7_2 = self::mul($f2_2, $f7, 24);
[800] Fix | Delete
$f2f8_38 = self::mul($f8_19, $f2_2, 25);
[801] Fix | Delete
$f2f9_38 = self::mul($f9_38, $f2, 24);
[802] Fix | Delete
$f3f3_2 = self::mul($f3_2, $f3, 24);
[803] Fix | Delete
$f3f4_2 = self::mul($f3_2, $f4, 24);
[804] Fix | Delete
$f3f5_4 = self::mul($f3_2, $f5_2, 24);
[805] Fix | Delete
$f3f6_2 = self::mul($f3_2, $f6, 24);
[806] Fix | Delete
$f3f7_76 = self::mul($f7_38, $f3_2, 24);
[807] Fix | Delete
$f3f8_38 = self::mul($f8_19, $f3_2, 24);
[808] Fix | Delete
$f3f9_76 = self::mul($f9_38, $f3_2, 24);
[809] Fix | Delete
$f4f4 = self::mul($f4, $f4, 24);
[810] Fix | Delete
$f4f5_2 = self::mul($f4_2, $f5, 24);
[811] Fix | Delete
$f4f6_38 = self::mul($f6_19, $f4_2, 25);
[812] Fix | Delete
$f4f7_38 = self::mul($f7_38, $f4, 24);
[813] Fix | Delete
$f4f8_38 = self::mul($f8_19, $f4_2, 25);
[814] Fix | Delete
$f4f9_38 = self::mul($f9_38, $f4, 24);
[815] Fix | Delete
$f5f5_38 = self::mul($f5_38, $f5, 24);
[816] Fix | Delete
$f5f6_38 = self::mul($f6_19, $f5_2, 24);
[817] Fix | Delete
$f5f7_76 = self::mul($f7_38, $f5_2, 24);
[818] Fix | Delete
$f5f8_38 = self::mul($f8_19, $f5_2, 24);
[819] Fix | Delete
$f5f9_76 = self::mul($f9_38, $f5_2, 24);
[820] Fix | Delete
$f6f6_19 = self::mul($f6_19, $f6, 24);
[821] Fix | Delete
$f6f7_38 = self::mul($f7_38, $f6, 24);
[822] Fix | Delete
$f6f8_38 = self::mul($f8_19, $f6_2, 25);
[823] Fix | Delete
$f6f9_38 = self::mul($f9_38, $f6, 24);
[824] Fix | Delete
$f7f7_38 = self::mul($f7_38, $f7, 24);
[825] Fix | Delete
$f7f8_38 = self::mul($f8_19, $f7_2, 24);
[826] Fix | Delete
$f7f9_76 = self::mul($f9_38, $f7_2, 24);
[827] Fix | Delete
$f8f8_19 = self::mul($f8_19, $f8, 24);
[828] Fix | Delete
$f8f9_38 = self::mul($f9_38, $f8, 24);
[829] Fix | Delete
$f9f9_38 = self::mul($f9_38, $f9, 24);
[830] Fix | Delete
[831] Fix | Delete
$h0 = (int) ($f0f0 + $f1f9_76 + $f2f8_38 + $f3f7_76 + $f4f6_38 + $f5f5_38) << 1;
[832] Fix | Delete
$h1 = (int) ($f0f1_2 + $f2f9_38 + $f3f8_38 + $f4f7_38 + $f5f6_38) << 1;
[833] Fix | Delete
$h2 = (int) ($f0f2_2 + $f1f1_2 + $f3f9_76 + $f4f8_38 + $f5f7_76 + $f6f6_19) << 1;
[834] Fix | Delete
$h3 = (int) ($f0f3_2 + $f1f2_2 + $f4f9_38 + $f5f8_38 + $f6f7_38) << 1;
[835] Fix | Delete
$h4 = (int) ($f0f4_2 + $f1f3_4 + $f2f2 + $f5f9_76 + $f6f8_38 + $f7f7_38) << 1;
[836] Fix | Delete
$h5 = (int) ($f0f5_2 + $f1f4_2 + $f2f3_2 + $f6f9_38 + $f7f8_38) << 1;
[837] Fix | Delete
$h6 = (int) ($f0f6_2 + $f1f5_4 + $f2f4_2 + $f3f3_2 + $f7f9_76 + $f8f8_19) << 1;
[838] Fix | Delete
$h7 = (int) ($f0f7_2 + $f1f6_2 + $f2f5_2 + $f3f4_2 + $f8f9_38) << 1;
[839] Fix | Delete
$h8 = (int) ($f0f8_2 + $f1f7_4 + $f2f6_2 + $f3f5_4 + $f4f4 + $f9f9_38) << 1;
[840] Fix | Delete
$h9 = (int) ($f0f9_2 + $f1f8_2 + $f2f7_2 + $f3f6_2 + $f4f5_2) << 1;
[841] Fix | Delete
[842] Fix | Delete
$carry0 = ($h0 + (1 << 25)) >> 26;
[843] Fix | Delete
$h1 += $carry0;
[844] Fix | Delete
$h0 -= $carry0 << 26;
[845] Fix | Delete
$carry4 = ($h4 + (1 << 25)) >> 26;
[846] Fix | Delete
$h5 += $carry4;
[847] Fix | Delete
$h4 -= $carry4 << 26;
[848] Fix | Delete
[849] Fix | Delete
$carry1 = ($h1 + (1 << 24)) >> 25;
[850] Fix | Delete
$h2 += $carry1;
[851] Fix | Delete
$h1 -= $carry1 << 25;
[852] Fix | Delete
$carry5 = ($h5 + (1 << 24)) >> 25;
[853] Fix | Delete
$h6 += $carry5;
[854] Fix | Delete
$h5 -= $carry5 << 25;
[855] Fix | Delete
[856] Fix | Delete
$carry2 = ($h2 + (1 << 25)) >> 26;
[857] Fix | Delete
$h3 += $carry2;
[858] Fix | Delete
$h2 -= $carry2 << 26;
[859] Fix | Delete
$carry6 = ($h6 + (1 << 25)) >> 26;
[860] Fix | Delete
$h7 += $carry6;
[861] Fix | Delete
$h6 -= $carry6 << 26;
[862] Fix | Delete
[863] Fix | Delete
$carry3 = ($h3 + (1 << 24)) >> 25;
[864] Fix | Delete
$h4 += $carry3;
[865] Fix | Delete
$h3 -= $carry3 << 25;
[866] Fix | Delete
$carry7 = ($h7 + (1 << 24)) >> 25;
[867] Fix | Delete
$h8 += $carry7;
[868] Fix | Delete
$h7 -= $carry7 << 25;
[869] Fix | Delete
[870] Fix | Delete
$carry4 = ($h4 + (1 << 25)) >> 26;
[871] Fix | Delete
$h5 += $carry4;
[872] Fix | Delete
$h4 -= $carry4 << 26;
[873] Fix | Delete
$carry8 = ($h8 + (1 << 25)) >> 26;
[874] Fix | Delete
$h9 += $carry8;
[875] Fix | Delete
$h8 -= $carry8 << 26;
[876] Fix | Delete
[877] Fix | Delete
$carry9 = ($h9 + (1 << 24)) >> 25;
[878] Fix | Delete
$h0 += self::mul($carry9, 19, 5);
[879] Fix | Delete
$h9 -= $carry9 << 25;
[880] Fix | Delete
[881] Fix | Delete
$carry0 = ($h0 + (1 << 25)) >> 26;
[882] Fix | Delete
$h1 += $carry0;
[883] Fix | Delete
$h0 -= $carry0 << 26;
[884] Fix | Delete
[885] Fix | Delete
return self::fe_normalize(
[886] Fix | Delete
ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
[887] Fix | Delete
array(
[888] Fix | Delete
(int) $h0,
[889] Fix | Delete
(int) $h1,
[890] Fix | Delete
(int) $h2,
[891] Fix | Delete
(int) $h3,
[892] Fix | Delete
(int) $h4,
[893] Fix | Delete
(int) $h5,
[894] Fix | Delete
(int) $h6,
[895] Fix | Delete
(int) $h7,
[896] Fix | Delete
(int) $h8,
[897] Fix | Delete
(int) $h9
[898] Fix | Delete
)
[899] Fix | Delete
)
[900] Fix | Delete
);
[901] Fix | Delete
}
[902] Fix | Delete
[903] Fix | Delete
/**
[904] Fix | Delete
* @internal You should not use this directly from another application
[905] Fix | Delete
*
[906] Fix | Delete
* @param ParagonIE_Sodium_Core_Curve25519_Fe $Z
[907] Fix | Delete
* @return ParagonIE_Sodium_Core_Curve25519_Fe
[908] Fix | Delete
*/
[909] Fix | Delete
public static function fe_invert(ParagonIE_Sodium_Core_Curve25519_Fe $Z)
[910] Fix | Delete
{
[911] Fix | Delete
$z = clone $Z;
[912] Fix | Delete
$t0 = self::fe_sq($z);
[913] Fix | Delete
$t1 = self::fe_sq($t0);
[914] Fix | Delete
$t1 = self::fe_sq($t1);
[915] Fix | Delete
$t1 = self::fe_mul($z, $t1);
[916] Fix | Delete
$t0 = self::fe_mul($t0, $t1);
[917] Fix | Delete
$t2 = self::fe_sq($t0);
[918] Fix | Delete
$t1 = self::fe_mul($t1, $t2);
[919] Fix | Delete
$t2 = self::fe_sq($t1);
[920] Fix | Delete
for ($i = 1; $i < 5; ++$i) {
[921] Fix | Delete
$t2 = self::fe_sq($t2);
[922] Fix | Delete
}
[923] Fix | Delete
$t1 = self::fe_mul($t2, $t1);
[924] Fix | Delete
$t2 = self::fe_sq($t1);
[925] Fix | Delete
for ($i = 1; $i < 10; ++$i) {
[926] Fix | Delete
$t2 = self::fe_sq($t2);
[927] Fix | Delete
}
[928] Fix | Delete
$t2 = self::fe_mul($t2, $t1);
[929] Fix | Delete
$t3 = self::fe_sq($t2);
[930] Fix | Delete
for ($i = 1; $i < 20; ++$i) {
[931] Fix | Delete
$t3 = self::fe_sq($t3);
[932] Fix | Delete
}
[933] Fix | Delete
$t2 = self::fe_mul($t3, $t2);
[934] Fix | Delete
$t2 = self::fe_sq($t2);
[935] Fix | Delete
for ($i = 1; $i < 10; ++$i) {
[936] Fix | Delete
$t2 = self::fe_sq($t2);
[937] Fix | Delete
}
[938] Fix | Delete
$t1 = self::fe_mul($t2, $t1);
[939] Fix | Delete
$t2 = self::fe_sq($t1);
[940] Fix | Delete
for ($i = 1; $i < 50; ++$i) {
[941] Fix | Delete
$t2 = self::fe_sq($t2);
[942] Fix | Delete
}
[943] Fix | Delete
$t2 = self::fe_mul($t2, $t1);
[944] Fix | Delete
$t3 = self::fe_sq($t2);
[945] Fix | Delete
for ($i = 1; $i < 100; ++$i) {
[946] Fix | Delete
$t3 = self::fe_sq($t3);
[947] Fix | Delete
}
[948] Fix | Delete
$t2 = self::fe_mul($t3, $t2);
[949] Fix | Delete
$t2 = self::fe_sq($t2);
[950] Fix | Delete
for ($i = 1; $i < 50; ++$i) {
[951] Fix | Delete
$t2 = self::fe_sq($t2);
[952] Fix | Delete
}
[953] Fix | Delete
$t1 = self::fe_mul($t2, $t1);
[954] Fix | Delete
$t1 = self::fe_sq($t1);
[955] Fix | Delete
for ($i = 1; $i < 5; ++$i) {
[956] Fix | Delete
$t1 = self::fe_sq($t1);
[957] Fix | Delete
}
[958] Fix | Delete
return self::fe_mul($t1, $t0);
[959] Fix | Delete
}
[960] Fix | Delete
[961] Fix | Delete
/**
[962] Fix | Delete
* @internal You should not use this directly from another application
[963] Fix | Delete
*
[964] Fix | Delete
* @ref https://github.com/jedisct1/libsodium/blob/68564326e1e9dc57ef03746f85734232d20ca6fb/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c#L1054-L1106
[965] Fix | Delete
*
[966] Fix | Delete
* @param ParagonIE_Sodium_Core_Curve25519_Fe $z
[967] Fix | Delete
* @return ParagonIE_Sodium_Core_Curve25519_Fe
[968] Fix | Delete
*/
[969] Fix | Delete
public static function fe_pow22523(ParagonIE_Sodium_Core_Curve25519_Fe $z)
[970] Fix | Delete
{
[971] Fix | Delete
$z = self::fe_normalize($z);
[972] Fix | Delete
# fe_sq(t0, z);
[973] Fix | Delete
# fe_sq(t1, t0);
[974] Fix | Delete
# fe_sq(t1, t1);
[975] Fix | Delete
# fe_mul(t1, z, t1);
[976] Fix | Delete
# fe_mul(t0, t0, t1);
[977] Fix | Delete
# fe_sq(t0, t0);
[978] Fix | Delete
# fe_mul(t0, t1, t0);
[979] Fix | Delete
# fe_sq(t1, t0);
[980] Fix | Delete
$t0 = self::fe_sq($z);
[981] Fix | Delete
$t1 = self::fe_sq($t0);
[982] Fix | Delete
$t1 = self::fe_sq($t1);
[983] Fix | Delete
$t1 = self::fe_mul($z, $t1);
[984] Fix | Delete
$t0 = self::fe_mul($t0, $t1);
[985] Fix | Delete
$t0 = self::fe_sq($t0);
[986] Fix | Delete
$t0 = self::fe_mul($t1, $t0);
[987] Fix | Delete
$t1 = self::fe_sq($t0);
[988] Fix | Delete
[989] Fix | Delete
# for (i = 1; i < 5; ++i) {
[990] Fix | Delete
# fe_sq(t1, t1);
[991] Fix | Delete
# }
[992] Fix | Delete
for ($i = 1; $i < 5; ++$i) {
[993] Fix | Delete
$t1 = self::fe_sq($t1);
[994] Fix | Delete
}
[995] Fix | Delete
[996] Fix | Delete
# fe_mul(t0, t1, t0);
[997] Fix | Delete
# fe_sq(t1, t0);
[998] Fix | Delete
$t0 = self::fe_mul($t1, $t0);
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function