(AIR のみ)
パッケージflash.data
クラスpublic class EncryptedLocalStore
継承EncryptedLocalStore Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

EncryptedLocalStore クラスは、AIR アプリケーションの暗号化されたローカルデータストアにオブジェクトを設定するメソッドと、このデータストアからオブジェクトを取得するメソッドを提供します。永続的に暗号化されたローカルストアは、ユーザーのコンピュータにインストールされた各 AIR アプリケーションで使用できます。これにより、他のアプリケーションまたはユーザーが解釈できない暗号化形式でユーザーのローカルハードドライブに保存されているデータを、保存および取得することができます。暗号化された個別のローカルストアは各 AIR アプリケーションで使用され、各 AIR アプリケーションは、各ユーザーに対して暗号化された個別のローカルストアを使用します。

暗号化されたローカルストアは、Web サービスのログイン資格情報など、保護する必要がある情報を保存するために使用できます。

AIR Debug Launcher (ADL) でアプリケーションをテストする場合、テスト対象のアプリケーションはインストール済みの AIR アプリケーションで使用されているものとは異なる暗号化されたローカルストアを使用します。

AIR は、Windows® では DPAPI、Mac® OS® では KeyChain、Linux® では KeyRing または KWallet を使用して、暗号化されたローカル ストアを各アプリケーションおよびユーザーに関連付けます。暗号化されたローカルストアでは、128 ビットの AES-CBC 暗号化を使用します。

暗号化されたローカルストアの情報は、application セキュリティサンドボックス内の AIR アプリケーションコンテンツでのみ使用できます。

暗号化されたローカルストアのアイテムは、ストリングで識別されます。アイテムは、すべてバイト配列データとして保存されます。

保存されるデータが 10 MB を超える場合、暗号化されたローカルストアの実行が低速化する場合があります。

AIR アプリケーションをアンインストールする場合、アンインストーラは暗号化されたローカルストアに保存されたデータを削除しません。

暗号化されたローカルストアのデータは、ユーザーのアプリケーションデータディレクトリのサブディレクトリに置かれます。このサブディレクトリのパスは Adobe/AIR/ELS/ の後ろにアプリケーション ID が続きます。

例を表示



パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義元
  
[静的] 指定された名前を持つ、暗号化されたローカルストアのアイテムのデータを返します。
EncryptedLocalStore
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
  
[静的] 暗号化されたローカルストアから、指定された名前のアイテムを削除します。
EncryptedLocalStore
  
[静的] すべてのデータを削除して、暗号化されたローカルストア全体をクリアします。
EncryptedLocalStore
  
AIR-only setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void
[静的] 指定された名前で、所定の ByteArray データにアイテムを設定します。
EncryptedLocalStore
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
メソッドの詳細
AIR-only getItem()メソッド
public static function getItem(name:String):ByteArray

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

指定された名前を持つ、暗号化されたローカルストアのアイテムのデータを返します。指定された名前でアイテムが見つからない場合、このメソッドは null を返します。

パラメータ

name:String — 暗号化されたローカルストアのアイテムの名前です。

戻り値
ByteArray — ByteArray データです。 指定された名前に対するデータが存在しない場合、メソッドは null を返します。

例外
ArgumentError name 値は null または空のストリングです。
AIR-only removeItem()メソッド 
public static function removeItem(name:String):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

暗号化されたローカルストアから、指定された名前のアイテムを削除します。

パラメータ

name:String — 暗号化されたローカルストアのアイテムの名前です。


例外
ArgumentError name 値は null または空のストリングです。
AIR-only reset()メソッド 
public static function reset():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

すべてのデータを削除して、暗号化されたローカルストア全体をクリアします。

AIR-only setItem()メソッド 
public static function setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

指定された名前で、所定の ByteArray データにアイテムを設定します。

パラメータ

name:String — 暗号化されたローカルストアのアイテムの名前です。
 
data:ByteArray — データです。
 
stronglyBound:Boolean (default = false)true に設定された場合、保存されたアイテムはアプリケーションの発行者 ID に加えて AIR アプリケーションの電子署名とビットに厳密にバインドされます。 このアイテムに対して getItem() をその後で呼び出した場合、呼び出し元の AIR アプリケーションのビットが保存する側のアプリケーションのビットと一致しない場合はランタイム例外になります。アプリケーションを更新すると、更新されたアプリケーションは、暗号化されたローカルストアに以前に書き込まれたデータに厳密にバインドされているデータを読み取ることができません。


例外
ArgumentError name 値は null または空のストリングです。

デフォルトでは、AIR アプリケーションは別のアプリケーションの暗号化されたローカルストアを読み取ることはできません。stronglyBound 設定はアプリケーションビット内のデータに追加のバインディングを提供します。このバインディングによって、攻撃側のアプリケーションが、攻撃される側のアプリケーションの発行者 ID を乗っ取ってアプリケーションの暗号化されたローカルストアを読み取ることはできなくなります。

例の使用法
EncryptedLocalStore.1.as

次のコードは、暗号化されたローカルストアにストリングを保存して、そのストリングを取得し、削除します。
var str:String = "Bob";
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(str);
EncryptedLocalStore.setItem("firstName", bytes);

var storedValue:ByteArray = EncryptedLocalStore.getItem("firstName");
trace(storedValue.readUTFBytes(storedValue.length)); // "Bob"

EncryptedLocalStore.removeItem("firstName");