共用方式為


SignedObject 類別

定義

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 是一種類別,用於建立未偵測到其完整性無法遭入侵的正宗運行時間物件。

更具體來說,SignedObject 包含另一個 Serializable 物件、(to-be-)簽署物件及其簽章。

已簽署的物件是原始物件的「深層複製」(以串行化形式)。 建立複本之後,對原始對象的進一步操作對複製沒有任何副作用。

基礎簽署演算法是由傳遞至建構函式和 方法的 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 方法允許自定義簽章引擎,其可以實作未正式安裝為密碼編譯提供者一部分的簽章演算法。 不過,撰寫驗證程式程式代碼的程式設計人員必須注意正在使用哪 Signature 一個引擎,因為叫用方法本身的實作 verify 來驗證簽章。 換句話說,惡意 Signature 可能會選擇在嘗試略過安全性檢查時一律傳回 true。

簽章演算法可以是使用 DSA 和 SHA-256 的 NIST 標準 DSA。 演算法是使用與簽章相同的慣例來指定。 使用 SHA-256 訊息摘要演算法的 DSA 演算法可以指定為 “SHA256withDSA”。 在 RSA 的情況下,可以將簽署演算法指定為 「SHA256withRSA」。。 必須指定演算法名稱,因為沒有預設值。

密碼編譯封裝提供者的名稱也會由建構函式和 verify 方法的 Signature 參數指定。 如果未指定提供者,則會使用預設提供者。 每個安裝都可以設定為使用特定提供者做為預設值。

SignedObject 的潛在應用程式包括: <ul><li> 它可以在內部使用至任何 Java 執行時間作為不可原諒的授權令牌-- 一個可以傳遞,而不必擔心令牌可以惡意修改,而不會被偵測到。 <li> 可用來簽署和串行化 Java 執行時間外部記憶體的數據/物件(例如,將重要的存取控制資料儲存在磁碟上)。 <li> Nested SignedObjects 可用來建構簽章的邏輯序列,其與授權和委派鏈結一起。 </ul>

已在1.2中新增。

java.security.SignedObjectJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

SignedObject(ISerializable, IPrivateKey, Signature)

從任何 Serializable 物件建構 SignedObject。

屬性

Algorithm

擷取簽章演算法的名稱。

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
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()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
ToArray<T>()

SignedObject 是一種類別,用於建立未偵測到其完整性無法遭入侵的正宗運行時間物件。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

SignedObject 是一種類別,用於建立未偵測到其完整性無法遭入侵的正宗運行時間物件。

(繼承來源 Object)
Verify(IPublicKey, Signature)

使用指定的驗證引擎,確認此 SignedObject 中的簽章是儲存在內且具有指定驗證密鑰之物件的有效簽章。

Wait()

讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<>

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</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 是一種類別,用於建立未偵測到其完整性無法遭入侵的正宗運行時間物件。

適用於