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