【PHP8.x】sodium_crypto_secretstream_xchacha20poly1305_pull関数の使い方

作成日: 更新日:

sodium_crypto_secretstream_xchacha20poly1305_pull関数は、XChaCha20-Poly1305アルゴリズムを用いたシークレットストリームから、暗号化されたデータの断片(チャンク)を一つずつ復号するために実行する関数です。この関数は、sodium_crypto_secretstream_xchacha20poly1305_push関数によって暗号化された一連のメッセージを解読する際に使用されます。利用するには、まずsodium_crypto_secretstream_xchacha20poly1305_init_pull関数を呼び出して、復号処理の状態を初期化しておく必要があります。この関数は、初期化された状態と、復号したい暗号文チャンクを引数として受け取ります。処理が成功すると、復号された平文のチャンクと、そのチャンクがストリーム内でどのような位置づけにあるかを示すタグ情報の二つを格納した配列を返します。このタグ情報により、そのチャンクがストリームの最後の部分であるかなどを判断できます。もし暗号文が改ざんされている、あるいは処理の順序が間違っているなどの理由で復号に失敗した場合は、falseを返します。この仕組みにより、データの完全性を検証しながら、サイズの大きなファイルやストリーミングデータを安全に逐次処理することが可能になります。

基本的な使い方

構文(syntax)

1sodium_crypto_secretstream_xchacha20poly1305_pull(
2    string &$state,
3    string $ciphertext,
4    string $additional_data = ""
5): array|false

引数(parameters)

string &$state, string $ciphertext, string $additional_data = ""

  • string &$state: 復号化処理の状態を保持する可変文字列。この引数は参照渡しされ、関数内で更新されます。
  • string $ciphertext: 復号化する暗号化されたデータ(バイナリ文字列)。
  • string $additional_data = "": 認証に使用される追加データ(バイナリ文字列)。省略可能です。

戻り値(return)

array|false

この関数は、暗号化されたストリームからデータを安全に復号化し、その結果を配列として返します。復号化に失敗した場合は false を返します。

【PHP8.x】sodium_crypto_secretstream_xchacha20poly1305_pull関数の使い方 | いっしー@Webエンジニア