sc_muladd example

self::hash_update($hs, self::substr($pk, 0, 32));
        /** @var resource $hs */
        $hs = self::updateHashWithFile($hs$fp$size);

        /** @var string $hramHash */
        $hramHash = hash_final($hs, true);

        /** @var string $hram */
        $hram = ParagonIE_Sodium_Core_Ed25519::sc_reduce($hramHash);

        /** @var string $sigAfter */
        $sigAfter = ParagonIE_Sodium_Core_Ed25519::sc_muladd($hram$az$nonce);

        /** @var string $sig */
        $sig = self::substr($sig, 0, 32) . self::substr($sigAfter, 0, 32);

        try {
            ParagonIE_Sodium_Compat::memzero($az);
        } catch (SodiumException $ex) {
            $az = null;
        }
        fclose($fp);
        return $sig;
    }
        # crypto_hash_sha512_update(&hs, m, mlen);         # crypto_hash_sha512_final(&hs, hram);         $hs = hash_init('sha512');
        hash_update($hs, self::substr($sig, 0, 32));
        hash_update($hs, self::substr($pk, 0, 32));
        hash_update($hs$message);
        $hramHash = hash_final($hs, true);

        # sc_reduce(hram);         # sc_muladd(sig + 32, hram, az, nonce);         $hram = self::sc_reduce($hramHash);
        $sigAfter = self::sc_muladd($hram$az$nonce);
        $sig = self::substr($sig, 0, 32) . self::substr($sigAfter, 0, 32);

        try {
            ParagonIE_Sodium_Compat::memzero($az);
        } catch (SodiumException $ex) {
            $az = null;
        }
        return $sig;
    }

    /** * @internal You should not use this directly from another application * * @param string $sig * @param string $message * @param string $pk * @return bool * @throws SodiumException * @throws TypeError */
        # crypto_hash_sha512_update(&hs, m, mlen);         # crypto_hash_sha512_final(&hs, hram);         $hs = hash_init('sha512');
        self::hash_update($hs, self::substr($sig, 0, 32));
        self::hash_update($hs, self::substr($pk, 0, 32));
        self::hash_update($hs$message);
        $hramHash = hash_final($hs, true);

        # sc_reduce(hram);         # sc_muladd(sig + 32, hram, az, nonce);         $hram = self::sc_reduce($hramHash);
        $sigAfter = self::sc_muladd($hram$az$nonce);
        $sig = self::substr($sig, 0, 32) . self::substr($sigAfter, 0, 32);

        try {
            ParagonIE_Sodium_Compat::memzero($az);
        } catch (SodiumException $ex) {
            $az = null;
        }
        return $sig;
    }

    /** * @internal You should not use this directly from another application * * @param string $sig * @param string $message * @param string $pk * @return bool * @throws SodiumException * @throws TypeError */
Home | Imprint | This part of the site doesn't use cookies.