SignedObject クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。
[Android.Runtime.Register("java/security/SignedObject", DoNotGenerateAcw=true)]
public sealed class SignedObject : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/security/SignedObject", DoNotGenerateAcw=true)>]
type SignedObject = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 継承
- 属性
- 実装
注釈
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。
具体的には、SignedObject には、別の Serializable オブジェクト、(to-be-)signed オブジェクト、およびその署名が含まれています。
署名されたオブジェクトは、元のオブジェクトの "ディープ コピー" (シリアル化された形式) です。 コピーが作成されると、元のオブジェクトをさらに操作しても、コピーに副作用はありません。
基になる署名アルゴリズムは、コンストラクターと verify メソッドに渡される Signature オブジェクトによって指定されます。 署名の一般的な使用法は次のとおりです。
{@code
Signature signingEngine = Signature.getInstance(algorithm,
provider);
SignedObject so = new SignedObject(myobject, signingKey,
signingEngine);
}
検証の一般的な使用法は、次のとおりです (SignedObject soを受け取りました)。
{@code
Signature verificationEngine =
Signature.getInstance(algorithm, provider);
if (so.verify(publickey, verificationEngine))
try {
Object myobj = so.getObject();
} catch (java.lang.ClassNotFoundException e) {};
}
いくつかの点は注目に値します。 まず、署名エンジンまたは検証エンジンはコンストラクターとメソッド内で再初期化されるため、初期化する verify 必要はありません。 次に、検証を成功させるには、指定された公開キーが SignedObject の生成に使用される秘密キーに対応する公開キーである必要があります。
さらに重要なのは、柔軟性の理由から、コンストラクターと verify メソッドでは、暗号化プロバイダーの一部として正式にインストールされていない署名アルゴリズムを実装できる、カスタマイズされた署名エンジンを使用できることです。 ただし、検証ツール コードを記述するプログラマは、署名を検証するためにメソッドの独自のverify実装が呼び出されるため、使用Signatureされているエンジンを認識することが重要です。 つまり、悪意のある Signature ユーザーは、セキュリティ チェックをバイパスしようとしたときに、検証時に常に true を返すように選択する可能性があります。
署名アルゴリズムには、特に、DSA と SHA-256 を使用する NIST 標準 DSA を使用できます。 アルゴリズムは、署名の場合と同じ規則を使用して指定されます。 SHA-256 メッセージ ダイジェスト アルゴリズムを使用する DSA アルゴリズムは、たとえば"SHA256withDSA" として指定できます。 RSA の場合、署名アルゴリズムは "SHA256withRSA" のように指定できます。 既定値がないため、アルゴリズム名を指定する必要があります。
Cryptography Package Provider の名前は、コンストラクターと verify メソッドに対する Signature パラメーターによっても指定されます。 プロバイダーが指定されていない場合は、既定のプロバイダーが使用されます。 各インストールは、特定のプロバイダーを既定として使用するように構成できます。
SignedObject の潜在的なアプリケーションは次のとおりです。 <ul><li> これは、許容できない承認トークンとして任意の Java ランタイムに内部的に使用できます。トークンが検出されずに悪意を持って変更される可能性があることを恐れずに渡すことができます。 <li> これは、Java ランタイムの外部でストレージ用のデータ/オブジェクトに署名およびシリアル化するために使用できます (たとえば、ディスクに重要なアクセス制御データを格納する)。 <li> Nested SignedObjects を使用すると、承認と委任のチェーンに似た署名の論理シーケンスを構築できます。 </ul>
1.2 で追加されました。
の Java ドキュメントjava.security.SignedObject
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| SignedObject(ISerializable, IPrivateKey, Signature) |
Serializable オブジェクトから SignedObject を構築します。 |
プロパティ
| Algorithm |
署名アルゴリズムの名前を取得します。 |
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| JniIdentityHashCode |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| JniPeerMembers |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 |
| Object |
カプセル化されたオブジェクトを取得します。 |
| PeerReference |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
メソッド
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Dispose() |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| Dispose(Boolean) |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| GetSignature() |
符号付きオブジェクトのシグネチャをバイト配列の形式で取得します。 |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| ToArray<T>() |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| ToString() |
オブジェクトの文字列表現を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| Verify(IPublicKey, Signature) |
指定された検証エンジンを使用して、この SignedObject 内の署名が、指定された検証キーを使用して、内部に格納されているオブジェクトの有効な署名であることを確認します。 |
| Wait() |
現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| IJavaPeerable.Disposed() |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| IJavaPeerable.Finalized() |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| IJavaPeerable.JniManagedPeerState |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 (継承元 Object) |
拡張メソッド
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 |
| GetJniTypeName(IJavaPeerable) |
SignedObject は、整合性を損なわないと検出できない本物のランタイム オブジェクトを作成するためのクラスです。 |