2011-07-18 8 views
0

私はメディアパケットを解読するアプリケーションを持っています。 マスターキーとソルトキーを提供する必要があります。Convert.FromBase64Stringを使用してSIP SDPからマスタ鍵とソルトを取得

(交渉が終了した後)私のSDPは AES_CM_128_HMAC_SHA1_80インラインを私に提供:SDPに応じFu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ

は、後の文字列をRFC "インライン:" です: "連結マスターキーと塩、BASE64でエンコードされました" マスターキーがXバイト、ソルトがYバイトの場合

私はtyringています:その後、

byte[] masterAndSalt = Convert.FromBase64String("Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ") 

と塩のためのマスターと他のYに最初のxバイトを取得します。

私のアプリは私のキーが間違っている、私は理解していない - 私はConvert.FromBase64String以外のいくつかを使用する必要がありますか?

+0

連結順序は 'salt key'ではなく 'key salt'ですか?失敗してヌルを返すのではなく、変換が成功していますか? – rossum

答えて

2

よろしいですか。 AES_CM_128_HMAC_SHA1_80暗号では、マスターキーは16バイト、塩は14バイトです。

キーにConvert.FromBase64Stringを使用すると、3035バイトの長さの配列を生成した が最初の16文字をマスターに、最後の14文字を塩として使用します。

解読アルゴリズムは、(他の情報と一緒に)解読アルゴリズムでセッション鍵と塩を生成する必要があります。

関連する問題