Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
ge_scalarmult example
if
(
self::
strlen
(
$p
)
!== 32
)
{
throw
new
SodiumException
(
'Point must be 32 bytes, ' . self::
strlen
(
$p
)
. ' given.'
)
;
}
$result
= self::
ristretto255_frombytes
(
$p
)
;
if
(
$result
[
'res'
]
!== 0
)
{
throw
new
SodiumException
(
'Could not multiply points'
)
;
}
$P
=
$result
[
'h'
]
;
$t
= self::
stringToIntArray
(
$n
)
;
$t
[
31
]
&= 0x7f;
$Q
= self::
ge_scalarmult
(
self::
intArrayToString
(
$t
)
,
$P
)
;
$q
= self::
ristretto255_p3_tobytes
(
$Q
)
;
if
(
ParagonIE_Sodium_Compat::
is_zero
(
$q
)
)
{
throw
new
SodiumException
(
'An unknown error has occurred'
)
;
}
return
$q
;
}
/** * @param string $n * @return string * @throws SodiumException */