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

作成日: 更新日:

sodium_crypto_secretstream_xchacha20poly1305_push関数は、XChaCha20-Poly1305アルゴリズムを用いた暗号化ストリームに、新しいメッセージの断片(チャンク)を追加して暗号化を実行する関数です。この関数は、事前にsodium_crypto_secretstream_xchacha20poly1305_init_push()関数で初期化されたストリームに対して使用します。第一引数で渡されるストリームの状態(state)は、この関数を呼び出すたびに内部で更新されるため、同じ状態を使い回す必要があります。第二引数に暗号化したい平文のメッセージチャンクを指定すると、関数はそれを暗号化し、認証タグを付与した暗号文を生成します。オプションの第三引数で追加の関連データを指定でき、これは暗号化されませんが、データの完全性を保証するための認証計算に含まれます。第四引数のタグは、そのチャンクが通常のメッセージか、あるいはストリームの最後のメッセージであるかを示すために重要です。ストリームの最後のチャンクを暗号化する際には、定数SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINALを指定する必要があります。関数は成功時に暗号化されたチャンクを文字列として返し、失敗した場合はfalseを返します。この関数を複数回呼び出すことで、大きなデータや連続したメッセージを、効率的かつ安全に暗号化して送信することが可能になります。

基本的な使い方

構文(syntax)

1sodium_crypto_secretstream_xchacha20poly1305_push(
2    string &$state,
3    string $message,
4    string $additional_data = "",
5    int $tag = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE
6): string

引数(parameters)

string &$state, string $message, string $additional_data = '', int $tag = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE

  • string &$state: 暗号化状態を保持する可変参照。初回呼び出し時は初期化された状態が必要です。
  • string $message: 暗号化するメッセージ本体の文字列。
  • string $additional_data = '': 認証に追加される追加データの文字列。オプション。
  • int $tag = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE: メッセージのタグ。メッセージの末尾を示すタグなどを指定可能。

戻り値(return)

string

この関数は、指定されたメッセージを暗号化し、認証タグを付与したバイナリ文字列を返します。

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