2

F5 Big-Ip v. 11.x の iRule を書いています。CRYPTO ライブラリに問題があります。

この方法で文字列を復号化しようとすると

set  foo [CRYPTO::decrypt -alg rc4 -keyhex $key $to_decrypt]

ここで、$key は 16 進形式の文字列で、$to_decrypt は暗号化された文字列です。

エラーが表示されます:

tmm err tmm[7107]: 01220001:3: TCL エラー: /Common/testirule - 必要なパラメータがありません

ここでドキュメントを見つけることができます: https://devcentral.f5.com/wiki/iRules.CRYPTO__decrypt.ashx

どのパラメータが欠落しているか理解できません。助けてもらえますか? 前もって感謝します!

編集:ここにドキュメントのスニペットを追加します:

CRYPTO::decrypt [-alg <>] [-ctx <> [-final]] [-key[hex] <>] [-iv[hex] <>] []

いくつかのパラメータに基づいてデータを復号化します

alg - アルゴリズム。指定されたリストからの ASCII 文字列 (以下を参照) スペルは小文字であり、iRule はリストにないものに対して失敗します。ctx モードでは、alg は最初の CRYPTO:: コマンドで指定する必要があり、変更できません。 ctx- context は Tcl 変数の名前であり、CRYPTO コマンドからのみ生成および使用できます。注: ctx 変数の値を取得または設定しようとすると失敗します。CTX 変数が iRule で最初に使用されると、指定された引数 (alg、key、iv など) から tcl オブジェクトが生成されます。特定の CTX 変数は、1 つの CRYPTO:: コマンドにのみ使用できます。CTX が別の目的で再利用されると、iRule CRYPTO:: コマンドは失敗します。CRYPTO:: コマンドを終了するには、同じ CTX 変数の最後の CRYPTO:: コマンドに「–final」を使用する必要があります。「-final」を使用すると、CTX 変数が解放され、同じ ctx 変数名を再利用できます。CTX 変数に既にキーと IV 値が格納されている場合、値は CRYPTO コマンドが実際に開始される前、つまりデータが与えられる前にのみ更新できます。key - キー (バイナリ データ)。キーの長さは、使用される alg によって決まります。CRYPTO::keygen keyhex - キーを 16 進データとして生成できます。キーの長さは、使用される alg によって決まります。CRYPTO::keygen iv - 初期化ベクトル (バイナリ データ)によって生成できます。長さは、使用する alg によって決まります。CRYPTO::keygen ivhexで生成できます- 16 進データとしての初期化ベクトル。長さは、使用する alg によって決まります。CRYPTO::keygen で生成可能

4

1 に答える 1

1

初期化ベクトルを含むコンテキストを作成し、代わりに-ivそれを渡すことができたので、これはオプションです。-ctxTCL コマンドのドキュメントには、この状況を示す適切な方法がありません: -ivand-keyが必要です OR-ctxが必要です。

于 2013-03-12T18:14:15.090 に答える