誰がAdobeデジタル署名のRSL(*.swz)をFlashPlayer指定のキャッシュに保存したのですか?FlashPlayerです


誰がAdobeデジタル署名のRSLをFlashPlayer指定のキャッシュに保存したのですか? 
Flexフレームワークですか?実験の結果、これはFlashPlayerが自動的に作ってくれたものです.
 
>>FlashPlayerのキャッシュはどこですか?
(1).XPシステム
C:/Documents and Settings/ユーザー名/APplication Data/Adobe/Flash Player/AssetCache/H 7 UC 3 H 3 Y
(2).VISTAとWIN 7
C:/Users/ユーザ名/APpData/Roaming/Adobe/Flash Player/AssetCache/RAU 4 Y 963
この2つのパスの最後のフォルダ名はランダムである、また、過去のswzファイルをコピーしても注意が必要である、ABD 49354324081 CEBB 8 F 60184 CF 5 FEE 81 F 0 F 9298に類似している.swzという名前です.ファイルからのデジタル署名を切り取ったようです.
 
>>RSLを使うために、私たちは何をしますか?FlashPlayerは私たちのために何をしますか?
Adobeデジタル署名のRSL(*.swz)ファイルは、私たちがコードを書いてダウンロードする必要があります.------Flexの場合、SystemManagerはRSL(*.swz)のダウンロードを開始します.
ダウンロードが完了したら、コードを書く必要はありません.FlashPlayerは自動的にFlashPlayerが指定したキャッシュに保存します.
 
>>検証方法
まず、上記のFlashPlayerキャッシュをクリアします.
そして、FlashBuilderを通じてActionScriptプロジェクトを構築します:TestRslSave
そして、framework_4.6.0.23201.swzファイルはDebug-Binディレクトリの下に手動で配置されます.
最後に次のプログラムをコンパイルして実行し、FlashPlayerキャッシュを見ると、3つのファイルが増えていることがわかります.
(1).ABD 49354324081 CEBB 8 F 60184 CF 5 FEE 81 F 0 F 9298.swz---framework_4.6.0.23201.swz
(2).ABD49354324081CEBB8F60184CF5FEE81F0F9298.heu
(3).cacheSize.txt
次のコードはファイルのディスク読み取り操作がないので、swzファイルはFlashPlayerがキャッシュに入れてくれたと認定できます.
 
TestRslSave.as
注意:Adobeデジタル署名のswzファイルをダウンロードするとき、myURLReq.digestは設定する必要があります
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.text.TextField;
	
	public class TestRslSave extends Sprite
	{
		private var txt1:TextField;

		public function TestRslSave()
		{
			txt1 = new TextField();
			addChild(txt1);
			
			var myURLReq:URLRequest = new URLRequest();
			myURLReq.url = "framework_4.6.0.23201.swz";
			myURLReq.digest = "abd49354324081cebb8f60184cf5fee81f0f9298e64dbec968c96d68fe16c437";

			var myURLLoader:URLLoader = new URLLoader();
			myURLLoader.addEventListener(Event.COMPLETE, onComplete);
			myURLLoader.addEventListener(IOErrorEvent.IO_ERROR, onErrorHandler);
			
			myURLLoader.load(myURLReq);
		}
		
		function onComplete(event:Event) {
			txt1.text="onComplete";
		}
		
		function onErrorHandler(event:IOErrorEvent) {
			txt1.text=event.toString();
		}
	}
}

 
>>必要な解釈
(1).myURLReq.digest 
まず、「ActionScript 3.0言語およびコンポーネントリファレンス」のURLRequestのメンバー変数digestの説明を参照してください.要約は次のとおりです.
digest
ツールバーのdigest:String
[読み書き]
言語バージョン:
ActionScript 3.0
ランタイムバージョン:
AIR 1.0, Flash Player 9.0.115.0
Flash Playerキャッシュに格納される(または取得される)署名付きAdobeプラットフォームコンポーネントを一意に識別する文字列.Adobeプラットフォームコンポーネントは署名ファイルです.(SWZファイル)ユーザー・コンピュータに永続的にキャッシュされたSWFの内容が含まれます.AdobeはすべてのSWZに署名します.サマリーは単一のキャッシュ・ファイルに対応します.このファイルに変更が加えられた場合、サマリーの変更は予知できない方法で行われます.サマリーを使用することで、複数のドメインにわたってキャッシュ・ファイルを検証できます.同じサマリーを持つ2つのファイル同じファイルで、異なるサマリーを持つ2つのファイルは異なるファイルです.実際には、別の要約のふりをするためにファイルを「盗聴」することはできません.この属性はSWFコンテンツにのみ適用され、AIRで実行されるJavaScriptコードには適用されません.
要約はSHA-256メッセージ要約アルゴリズム(長さ64文字、16進数フォーマット)に基づいている.
たとえば、Flex SDKには、FlexフレームワークのSWZ(SWZファイルの要約文字列)が含まれています.このSWZをWebサーバに公開してSWFファイルにロードすることができます(URLLoaderオブジェクトのload()メソッドを使用します).エンドユーザーのコンピュータが一致するSWZファイルをキャッシュしている場合、アプリケーションはこのキャッシュされたSWZファイルを使用します.(SWZファイルは、その digestが提供したサマリーと一致する場合に一致します.)そうでない場合、アプリケーションは指定したURLからSWZファイルをダウンロードします.
SWZファイルをロードするには、URLLoader.load()メソッド呼び出しで使用されるURLRequestオブジェクトにdigestパラメータを設定するだけです.URLRequestオブジェクトのdigestプロパティが他の方法で設定されている場合、アプリケーションはIOError例外を開始します.
 
(2).myURLReq.digest = "abd49354324081cebb8f60184cf5fee81f0f9298e64dbec968c96d68fe16c437";
この文字はframework_を表します.4.6.0.23201.swzのデジタルサマリー.上記の例の実行中、FlashPlayerはframework_を「暗に」計算します.4.6.0.23201.swzの数字の要約は、この文字と比較されます.異なる場合は、エラーを報告します.
私たちのサンプルプログラムはどのようにしてこの文字列を事前に知っていますか?
Flexエンジニアリングのコンパイルパラメータを任意に追加:keep-generated-actionscript=true
プロジェクトをコンパイルすると、フォルダgeneratedが表示されます.
名前が見つかりました.XXXXXXX_mx_managers_SystemManager-generated.asのコードファイル.
コードを見ると次のような内容が見つかりますが、何を見つけましたか?
[new RSLData("http://fpdownload.adobe.com/pub/swz/flex/4.6.0.23201/framework_4.6.0.23201.swz",
"http://fpdownload.adobe.com/pub/swz/crossdomain.xml",
"abd49354324081cebb8f60184cf5fee81f0f9298e64dbec968c96d68fe16c437",
"SHA-256",true,true,"default"),
new RSLData("framework_4.6.0.23201.swz",
"",
"abd49354324081cebb8f60184cf5fee81f0f9298e64dbec968c96d68fe16c437",
"SHA-256",true,true,"default")],

 
>>導入思考:
誰がデジタル署名以外のRSLをブラウザキャッシュに入れたのですか?