Added compression and encryption feature to forward plugin. #56

wants to merge 1 commit into


None yet

2 participants

mazgi commented Jul 31, 2012

This patch provides compression and encryption feature to in_forward, out_forward plugin.
I also added password and compression_level for out_forward but only password added for in_forward.

out_forward's example goes bellow:

<match tags.**>
  type forward
  password pass
  compression_level 9
    host localhost
    weight 10

in_forward's example goes bellow:

  type forward
  password pass
description(in Japanese)

I'm Sorry I'm not good at writing English.

  • 共通事項
    • forward時のmessageタイプがPackedForwardである場合, 後述の通り設定に応じてmessageが暗号化, 圧縮されます.
    • 暗号化と圧縮は個別にenable/disableすることができます.
    • 本patch適用後のin_forward, out_forwardは, 暗号化と圧縮をdisableにしている限り, 過去のバージョンとの互換性を保ちます.
    • 暗号化と圧縮についての属性情報を伝達する必要があるため, in_forwardとout_forwardは以下を行います.
      • out_forwardではPackedForward messageの第3要素にHashを格納して送信します.
      • in_forwardでは受信したmessageがPackedForwardであり, かつ第3要素が付加されている場合, 第3要素を属性情報として解釈します.
  • 暗号化について
    • out_forward設定ファイルのpassword項目にパスワードを設定するとmessageが暗号化されます.
    • in_forward設定ファイルのpassword項目には, out_forward設定ファイルと同一のパスワードを設定する必要があります.
    • 暗号化にはOpenSSLを使用します.
    • 暗号化アルゴリズムは現時点ではBlowfishに限定しています, これはアルゴリズムを選択する必要性を見いださなかったためです.
    • 毎回異なるsaltが自動生成され, out_forwardからin_forwardへ平文で送信されます.
  • 圧縮について
    • out_forward設定ファイルのcompression_level項目に1以上の数値を設定するとmessageのraw entriesが圧縮されます.
    • 圧縮にはzlibを使用します.
    • compression_levelの設定数値は9が一番圧縮率が高く, 9を超える数値を設定した場合, 9に補正されます.
    • compression_levelに0を設定した場合, 圧縮されません.
mazgi commented Aug 1, 2012

I wrote this patch, because forward plugin needs Encryption and Compression.
But I found a problem with using FileBufferChunk in out_forward, so I would like to withdraw this patch.

Problem happens following way:

<match tags.**>
  buffer_type file
  buffer_path /path/to/buffer.file
  type forward

When I find out the better way, I'll send again.
Thank you for your hard work.


@tagomoris announced fluent-plugin-secure-forward. Please use this plugin if you need authentication and encryption.

@repeatedly repeatedly closed this Feb 16, 2013
mazgi commented Feb 17, 2013

@tagomoris and others, Thank you for better way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment