Lingua

CipherSpi Classe

Definizione

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

[Android.Runtime.Register("javax/crypto/CipherSpi", DoNotGenerateAcw=true)]
public abstract class CipherSpi : Java.Lang.Object
[<Android.Runtime.Register("javax/crypto/CipherSpi", DoNotGenerateAcw=true)>]
type CipherSpi = class
    inherit Object
Ereditarietà
Attributi

Commenti

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe . Tutti i metodi astratti in questa classe devono essere implementati da ogni provider di servizi di crittografia che desidera fornire l'implementazione di un particolare algoritmo di crittografia.

Per creare un'istanza di Cipher, che incapsula un'istanza di questa CipherSpi classe, un'applicazione chiama uno dei Cipher#getInstance(java.lang.String) getInstance metodi factory della Cipher Cipher classe del motore e specifica la trasformazione richiesta. Facoltativamente, l'applicazione può anche specificare il nome di un provider.

Una trasformazione è una stringa che descrive l'operazione (o il set di operazioni) da eseguire sull'input specificato, per produrre un output. Una trasformazione include sempre il nome di un algoritmo di crittografia (ad esempio , DES) e può essere seguito da una modalità di feedback e uno schema di riempimento.

Una trasformazione è del formato:

<ul><li>"algorithm/mode/padding" o

<li>"algorithm" </ul>

(nel secondo caso vengono usati valori predefiniti specifici del provider per la modalità e lo schema di spaziatura interna). Ad esempio, di seguito è riportata una trasformazione valida:

{@code
                Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
            }

Un provider può fornire una classe separata per ogni combinazione di algoritmo/modalità/spaziatura interna oppure può decidere di fornire più classi generiche che rappresentano le trasformazioni secondarie corrispondenti all'algoritmo o all'algoritmo/modalità o all'algoritmo/riempimento (si notino le barre doppie), nel qual caso la modalità richiesta e/o la spaziatura interna vengono impostate automaticamente dai getInstance metodi di Cipher, che richiamano i #engineSetMode(java.lang.String) engineSetMode metodi e #engineSetPadding(java.lang.String) engineSetPadding della sottoclasse del provider di CipherSpi.

Una Cipher proprietà in una classe master del provider può avere uno dei formati seguenti:

<ul>

<li>

// provider's subclass of "CipherSpi" implements "algName" with
                // pluggable mode and padding
<code>Cipher.</code><i>algName</i>

<li>

// provider's subclass of "CipherSpi" implements "algName" in the
                // specified "mode", with pluggable padding
<code>Cipher.</code><i>algName/mode</i>

<li>

// provider's subclass of "CipherSpi" implements "algName" with the
                // specified "padding", with pluggable mode
<code>Cipher.</code><i>algName//padding</i>

<li>

// provider's subclass of "CipherSpi" implements "algName" with the
                // specified "mode" and "padding"
<code>Cipher.</code><i>algName/mode/padding</i>

</ul>

Ad esempio, un provider può fornire una sottoclasse di CipherSpi che implementa DES/ECB/PKCS5Padding, una che implementa DES/CBC/PKCS5Padding, una che implementa DES/PKCS5Padding e un'altra che implementa DES/OFB/PKCS5Padding. Tale provider avrà le proprietà seguenti Cipher nella relativa classe master:

<ul>

<li>

<code>Cipher.</code><i>DES/ECB/PKCS5Padding</i>

<li>

<code>Cipher.</code><i>DES/CBC/PKCS5Padding</i>

<li>

<code>Cipher.</code><i>DES/CFB/PKCS5Padding</i>

<li>

<code>Cipher.</code><i>DES/OFB/PKCS5Padding</i>

</ul>

Un altro provider può implementare una classe per ognuna delle modalità precedenti (ad esempio, una classe per LA BCE, una per CBC, una per LBC e una per OFB), una classe per PKCS5Padding e una classe DES generica che sottoclassa da CipherSpi. Tale provider avrà le proprietà seguenti Cipher nella relativa classe master:

<ul>

<li>

<code>Cipher.</code><i>DES</i>

</ul>

Il getInstance metodo factory della Cipher classe del motore segue queste regole per creare un'istanza dell'implementazione di un provider di CipherSpi per una trasformazione del modulo "algoritmo":

<ol><li> Controllare se il provider ha registrato una sottoclasse di CipherSpi per l'"algoritmo" specificato.

Se la risposta è SÌ, creare un'istanza di questa classe per i cui valori predefiniti della modalità e dello schema di riempimento (forniti dal provider) vengono usati.

Se la risposta è NO, generare un'eccezione NoSuchAlgorithmException . </ol>

Il getInstance metodo factory della Cipher classe del motore segue queste regole per creare un'istanza dell'implementazione di un provider di CipherSpi per una trasformazione del modulo "algoritmo/modalità/riempimento":

<ol><li> Controllare se il provider ha registrato una sottoclasse di CipherSpi per la trasformazione "algorithm/mode/padding" specificata.

Se la risposta è SÌ, crearne un'istanza.

Se la risposta è NO, andare al passaggio successivo. <li> Controllare se il provider ha registrato una sottoclasse di CipherSpi per la trasformazione secondaria "algoritmo/modalità".

Se la risposta è SÌ, crearne un'istanza e chiamare engineSetPadding(<i>padding</i>) la nuova istanza.

Se la risposta è NO, andare al passaggio successivo. <li> Controllare se il provider ha registrato una sottoclasse di CipherSpi per la trasformazione secondaria "algorithm//padding" (si notino le doppie barre).

Se la risposta è SÌ, crearne un'istanza e chiamare engineSetMode(<i>mode</i>) la nuova istanza.

Se la risposta è NO, andare al passaggio successivo. <li> Controllare se il provider ha registrato una sottoclasse di CipherSpi per l'"algoritmo" di trasformazione secondaria.

Se la risposta è SÌ, crearne un'istanza e chiamare engineSetMode(<i>mode</i>) e engineSetPadding(<i>padding</i>) sulla nuova istanza.

Se la risposta è NO, generare un'eccezione NoSuchAlgorithmException . </ol>

Aggiunta nella versione 1.4.

per javax.crypto.CipherSpi.

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

Nome Descrizione
CipherSpi()

Crea una nuova istanza di CipherSpi.

CipherSpi(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Proprietà

Nome Descrizione
Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniManagedPeerState

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
JniPeerMembers

Ottiene i metadati JNI usati per accedere ai membri di questa associazione Java.

PeerReference

Ottiene il riferimento all'oggetto JNI per questo peer Java.

(Ereditato da Object)
ThresholdClass

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

ThresholdType

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

Metodi

Nome Descrizione
Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
Dispose()

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dispose(Boolean)

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
DisposeUnlessReferenced()

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
EngineDoFinal(Byte[], Int32, Int32, Byte[], Int32)

Crittografa o decrittografa i dati in un'operazione a singola parte o completa un'operazione in più parti.

EngineDoFinal(Byte[], Int32, Int32)

Crittografa o decrittografa i dati in un'operazione a singola parte o completa un'operazione in più parti.

EngineDoFinal(ByteBuffer, ByteBuffer)

Crittografa o decrittografa i dati in un'operazione a singola parte o completa un'operazione in più parti.

EngineGetBlockSize()

Restituisce le dimensioni del blocco (in byte).

EngineGetIV()

Restituisce il vettore di inizializzazione (IV) in un nuovo buffer.

EngineGetKeySize(IKey)

Restituisce le dimensioni della chiave dell'oggetto chiave specificato in bit.

EngineGetOutputSize(Int32)

Restituisce la lunghezza in byte che un buffer di output deve essere per contenere il risultato dell'operazione o update successivadoFinal, data la lunghezza inputLen di input in byte.

EngineGetParameters()

Restituisce i parametri utilizzati con questa crittografia.

EngineInit(Int32, IKey, AlgorithmParameters, SecureRandom)

Inizializza questa crittografia con una chiave, un set di parametri dell'algoritmo e un'origine di casualità.

EngineInit(Int32, IKey, IAlgorithmParameterSpec, SecureRandom)

Inizializza questa crittografia con una chiave, un set di parametri dell'algoritmo e un'origine di casualità.

EngineInit(Int32, IKey, SecureRandom)

Inizializza questa crittografia con una chiave e una fonte di casualità.

EngineSetMode(String)

Imposta la modalità di crittografia.

EngineSetPadding(String)

Imposta il meccanismo di riempimento di questa crittografia.

EngineUnwrap(Byte[], String, Int32)

Annullare il wrapping di una chiave di cui è stato eseguito il wrapping in precedenza.

EngineUpdate(Byte[], Int32, Int32, Byte[], Int32)

Continua un'operazione di crittografia o decrittografia in più parti (a seconda della modalità di inizializzazione di questa crittografia), elaborando un'altra parte di dati.

EngineUpdate(Byte[], Int32, Int32)

Continua un'operazione di crittografia o decrittografia in più parti (a seconda della modalità di inizializzazione di questa crittografia), elaborando un'altra parte di dati.

EngineUpdate(ByteBuffer, ByteBuffer)

Continua un'operazione di crittografia o decrittografia in più parti (a seconda della modalità di inizializzazione di questa crittografia), elaborando un'altra parte di dati.

EngineUpdateAAD(Byte[], Int32, Int32)

Continua un aggiornamento in più parti dei dati di autenticazione aggiuntivi (AAD), usando un subset del buffer fornito.

EngineUpdateAAD(ByteBuffer)

Continua un aggiornamento in più parti dei dati di autenticazione aggiuntivi (AAD).

EngineWrap(IKey)

Eseguire il wrapping di una chiave.

Equals(Object)

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
Equals(Object)

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

(Ereditato da Object)
GetHashCode()

Restituisce un valore di codice hash per l'oggetto .

(Ereditato da Object)
JavaFinalize()
Obsoleti.

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)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
ToArray<T>()

Crea una matrice gestita da questo wrapper di matrice Java.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto .

(Ereditato da Object)
UnregisterFromRuntime()

Annulla la registrazione di questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
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

Nome Descrizione
IJavaPeerable.Disposed()

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
IJavaPeerable.Finalized()

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

(Ereditato da JavaObject)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Questa classe definisce l'interfaccia del provider di servizi (<b>SPI</b>) per la Cipher classe .

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a