Condividi tramite


SignedObject Classe

Definizione

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

[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
Ereditarietà
SignedObject
Attributi
Implementazioni

Commenti

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

In particolare, un oggetto SignedObject contiene un altro oggetto Serializable, l'oggetto (da firmare) e la relativa firma.

L'oggetto firmato è una "copia completa" (in formato serializzato) di un oggetto originale. Una volta eseguita la copia, un'ulteriore manipolazione dell'oggetto originale non ha alcun effetto collaterale sulla copia.

L'algoritmo di firma sottostante è designato dall'oggetto Signature passato al costruttore e al verify metodo . Un utilizzo tipico per la firma è il seguente:

{@code
            Signature signingEngine = Signature.getInstance(algorithm,
                                                            provider);
            SignedObject so = new SignedObject(myobject, signingKey,
                                               signingEngine);
            }

Un utilizzo tipico per la verifica è il seguente (dopo aver ricevuto SignedObject so):

{@code
            Signature verificationEngine =
                Signature.getInstance(algorithm, provider);
            if (so.verify(publickey, verificationEngine))
                try {
                    Object myobj = so.getObject();
                } catch (java.lang.ClassNotFoundException e) {};
            }

Alcuni punti vale la pena notare. In primo luogo, non è necessario inizializzare il motore di firma o di verifica, perché verrà nuovamente inizializzato all'interno del costruttore e del verify metodo . In secondo luogo, affinché la verifica abbia esito positivo, la chiave pubblica specificata deve essere la chiave pubblica corrispondente alla chiave privata usata per generare SignedObject.

Più importante, per motivi di flessibilità, il costruttore e verify il metodo consentono motori di firma personalizzati, che possono implementare algoritmi di firma che non vengono installati formalmente come parte di un provider di crittografia. Tuttavia, è fondamentale che il programmatore che scrive il codice di verifica sia consapevole del motore Signature usato, perché viene richiamata la propria implementazione del verify metodo per verificare una firma. In altre parole, un malintenzionato Signature può scegliere di restituire sempre true alla verifica nel tentativo di ignorare un controllo di sicurezza.

L'algoritmo di firma può essere, tra gli altri, il DSA standard NIST, usando DSA e SHA-256. L'algoritmo viene specificato usando la stessa convenzione di quella per le firme. È possibile specificare l'algoritmo DSA che usa l'algoritmo di digest del messaggio SHA-256, ad esempio "SHA256withDSA". Nel caso di RSA, è possibile specificare l'algoritmo di firma come ad esempio "SHA256withRSA". È necessario specificare il nome dell'algoritmo, perché non esiste un valore predefinito.

Il nome del provider di pacchetti di crittografia è designato anche dal parametro Signature per il costruttore e il verify metodo . Se il provider non è specificato, viene utilizzato il provider predefinito. Ogni installazione può essere configurata per l'uso di un provider specifico come impostazione predefinita.

Le potenziali applicazioni di SignedObject includono: <ul><li> Può essere usato internamente a qualsiasi runtime Java come token di autorizzazione non verificabile, uno che può essere passato senza timore che il token possa essere modificato in modo dannoso senza essere rilevato. <li> Può essere usato per firmare e serializzare dati/oggetti per l'archiviazione all'esterno del runtime Java (ad esempio, l'archiviazione dei dati di controllo di accesso critici su disco). <li> Nested SignedObjects può essere usato per costruire una sequenza logica di firme, simile a una catena di autorizzazione e delega. </ul>

Aggiunta nella versione 1.2.

Documentazione java per java.security.SignedObject.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Costruttori

SignedObject(ISerializable, IPrivateKey, Signature)

Costruisce un oggetto SignedObject da qualsiasi oggetto Serializable.

Proprietà

Algorithm

Recupera il nome dell'algoritmo di firma.

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
JniPeerMembers

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

Object

Recupera l'oggetto incapsulato.

PeerReference

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)
ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)

Metodi

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Dispose()

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
Dispose(Boolean)

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
GetSignature()

Recupera la firma nell'oggetto firmato, sotto forma di matrice di byte.

JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
ToArray<T>()

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
Verify(IPublicKey, Signature)

Verifica che la firma in questo SignedObject sia la firma valida per l'oggetto archiviato all'interno, con la chiave di verifica specificata, usando il motore di verifica designato.

Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
IJavaPeerable.Finalized()

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

GetJniTypeName(IJavaPeerable)

SignedObject è una classe allo scopo di creare oggetti di runtime autentica la cui integrità non può essere compromessa senza essere rilevata.

Si applica a