ParagonIE_Sodium_Core32_SecretStream_State example


    public static function secretstream_xchacha20poly1305_init_push($key)
    {
        # randombytes_buf(out, crypto_secretstream_xchacha20poly1305_HEADERBYTES);         $out = random_bytes(24);

        # crypto_core_hchacha20(state->k, out, k, NULL);         $subkey = ParagonIE_Sodium_Core32_HChaCha20::hChaCha20($out$key);
        $state = new ParagonIE_Sodium_Core32_SecretStream_State(
            $subkey,
            ParagonIE_Sodium_Core32_Util::substr($out, 16, 8) . str_repeat("\0", 4)
        );

        # _crypto_secretstream_xchacha20poly1305_counter_reset(state);         $state->counterReset();

        # memcpy(STATE_INONCE(state), out + crypto_core_hchacha20_INPUTBYTES,         # crypto_secretstream_xchacha20poly1305_INONCEBYTES);         # memset(state->_pad, 0, sizeof state->_pad);         return array(
            

        );
        return $this;
    }

    /** * @param string $string * @return self */
    public static function fromString($string)
    {
        $state = new ParagonIE_Sodium_Core32_SecretStream_State(
            ParagonIE_Sodium_Core32_Util::substr($string, 0, 32)
        );
        $state->counter = ParagonIE_Sodium_Core32_Util::load_4(
            ParagonIE_Sodium_Core32_Util::substr($string, 32, 4)
        );
        $state->nonce = ParagonIE_Sodium_Core32_Util::substr($string, 36, 12);
        $state->_pad = ParagonIE_Sodium_Core32_Util::substr($string, 48, 8);
        return $state;
    }

    /** * @return string */
Home | Imprint | This part of the site doesn't use cookies.