ParagonIE_Sodium_Core32_ChaCha20_IetfCtx::__construct

Advertisement

Summery Summery

ParagonIE_Sodium_Core_ChaCha20_IetfCtx constructor.

Syntax Syntax

ParagonIE_Sodium_Core32_ChaCha20_IetfCtx::__construct( string $key = '', string $iv = '', string $counter = '' )

Parameters Parameters

$key

(Optional) ChaCha20 key.

Default value: ''

$iv

(Optional) Initialization Vector (a.k.a. nonce).

Default value: ''

$counter

(Optional) The initial counter value. Defaults to 4 0x00 bytes.

Default value: ''

Source Source

File: wp-includes/sodium_compat/src/Core32/ChaCha20/IetfCtx.php

    public function __construct($key = '', $iv = '', $counter = '')
    {
        if (self::strlen($iv) !== 12) {
            throw new InvalidArgumentException('ChaCha20 expects a 96-bit nonce in IETF mode.');
        }
        parent::__construct($key, self::substr($iv, 0, 8), $counter);

        if (!empty($counter)) {
            $this->container[12] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($counter, 0, 4));
        }
        $this->container[13] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($iv, 0, 4));
        $this->container[14] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($iv, 4, 4));
        $this->container[15] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($iv, 8, 4));
    }

Advertisement

Advertisement

Leave a Reply