sodium_crypto_stream_xchacha20_xor_ic

(PHP 8 >= 8.2.0)

sodium_crypto_stream_xchacha20_xor_icChiffre un message en utilisant un nonce et une clé secrète (sans authentification)

Description

sodium_crypto_stream_xchacha20_xor_ic(
    #[\SensitiveParameter] string $message,
    string $nonce,
    int $counter,
    #[\SensitiveParameter] string $key
): string

Cette fonction est similaire à sodium_crypto_stream_xchacha20_xor() mais ajoute la possibilité de définir la valeur initiale du compteur de blocs à une valeur non nulle. Cela permet d'accéder directement à n'importe quel bloc sans avoir à calculer les précédents.

Attention

Ce chiffrement est non authentifié, et ne prévient pas les attaques par texte chiffré choisi. Il faut s'assurer de combiner le texte chiffré avec un code d'authentification de message, par exemple avec la fonction sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(), ou sodium_crypto_auth().

Liste de paramètres

message
Le message à chiffrer.
nonce
Un nonce de 24 octets.
counter
La valeur initiale du compteur de blocs.
key
Clé, possiblement générée par la fonction sodium_crypto_stream_xchacha20_keygen().

Valeurs de retour

Le texte chiffré, ou ou false si une erreur survient.

Exemples

Exemple #1 Exemple de sodium_crypto_stream_xchacha20_xor_ic()

<?php
$n2
= random_bytes(SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES);
$left = str_repeat("\x01", 64);
$right = str_repeat("\xfe", 64);

// Tout en une fois :
$stream7_unified = sodium_crypto_stream_xchacha20_xor($left . $right, $n2, $key);

// Par morceaux, avec un compteur initial :
$stream7_left = sodium_crypto_stream_xchacha20_xor_ic($left, $n2, 0, $key);
$stream7_right = sodium_crypto_stream_xchacha20_xor_ic($right, $n2, 1, $key);
$stream7_concat = $stream7_left . $stream7_right;

var_dump(strlen($stream7_concat));
var_dump($stream7_unified === $stream7_concat);
?>

Résultat de l'exemple ci-dessus est similaire à :

int(128)
bool(true)

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top