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-)簽署物件及其簽章。
已簽署的物件是原始物件的「深層複製」(以串行化形式)。 建立複本之後,對原始對象的進一步操作對複製沒有任何副作用。
基礎簽署演算法是由傳遞至建構函式和 方法的 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.SignedObject
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 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() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 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, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <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 是一種類別,用於建立未偵測到其完整性無法遭入侵的正宗運行時間物件。 |