Compartilhar via


SignedObject Classe

Definição

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

[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
Herança
SignedObject
Atributos
Implementações

Comentários

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

Mais especificamente, um SignedObject contém outro objeto serializável, o objeto (a ser-)assinado e sua assinatura.

O objeto assinado é uma "cópia profunda" (em formato serializado) de um objeto original. Uma vez que a cópia é feita, a manipulação adicional do objeto original não tem efeito colateral sobre a cópia.

O algoritmo de assinatura subjacente é designado pelo objeto Signature passado para o construtor e o verify método. Um uso típico para assinatura é o seguinte:

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

Um uso típico para verificação é o seguinte (tendo recebido SignedObject so):

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

Vários pontos merecem destaque. Primeiro, não há necessidade de inicializar o mecanismo de assinatura ou verificação, pois ele será reinicializado dentro do construtor e do verify método. Em segundo lugar, para que a verificação seja bem-sucedida, a chave pública especificada deve ser a chave pública correspondente à chave privada usada para gerar o SignedObject.

Mais importante, por razões de flexibilidade, o construtor e verify o método permitem mecanismos de assinatura personalizados, que podem implementar algoritmos de assinatura que não são instalados formalmente como parte de um provedor de criptografia. No entanto, é crucial que o programador que escreve o código do verificador esteja ciente de qual Signature mecanismo está sendo usado, pois sua própria implementação do verify método é invocada para verificar uma assinatura. Em outras palavras, um mal-intencionado Signature pode optar por sempre retornar true na verificação em uma tentativa de ignorar uma verificação de segurança.

O algoritmo de assinatura pode ser, entre outros, o DSA padrão NIST, utilizando DSA e SHA-256. O algoritmo é especificado usando a mesma convenção que para assinaturas. O algoritmo DSA usando o algoritmo de resumo de mensagem SHA-256 pode ser especificado, por exemplo, como "SHA256withDSA". No caso do RSA, o algoritmo de assinatura poderia ser especificado como, por exemplo, "SHA256withRSA". O nome do algoritmo deve ser especificado, pois não há padrão.

O nome do provedor de pacote de criptografia é designado também pelo parâmetro Signature para o construtor e o verify método. Se o provedor não for especificado, o provedor padrão será usado. Cada instalação pode ser configurada para usar um provedor específico como padrão.

Aplicações potenciais de SignedObject incluem: <ul><li> Ele pode ser usado internamente para qualquer tempo de execução Java como um token de autorização não falsificável -- um que pode ser passado sem o medo de que o token possa ser modificado maliciosamente sem ser detectado. <li> Ele pode ser usado para assinar e serializar dados/objeto para armazenamento fora do tempo de execução Java (por exemplo, armazenando dados críticos de controle de acesso no disco). <li> Nested SignedObjects pode ser usado para construir uma sequência lógica de assinaturas, semelhante a uma cadeia de autorização e delegação. </ul>

Adicionado em 1.2.

Documentação Java para java.security.SignedObject.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Construtores

SignedObject(ISerializable, IPrivateKey, Signature)

Constrói um SignedObject a partir de qualquer objeto serializável.

Propriedades

Algorithm

Recupera o nome do algoritmo de assinatura.

Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
JniPeerMembers

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

Object

Recupera o objeto encapsulado.

PeerReference

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
ThresholdClass

Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)
ThresholdType

Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)

Métodos

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Dispose()

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
Dispose(Boolean)

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
Equals(Object)

Indica se algum outro objeto é "igual" a este.

(Herdado de Object)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
GetSignature()

Recupera a assinatura no objeto assinado, na forma de uma matriz de bytes.

JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle.

(Herdado de Object)
ToArray<T>()

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
Verify(IPublicKey, Signature)

Verifica se a assinatura neste SignedObject é a assinatura válida para o objeto armazenado dentro, com a chave de verificação fornecida, usando o mecanismo de verificação designado.

Wait()

Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em notificado</em> ou <em>interrompido</em>>.

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

IJavaPeerable.Disposed()

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
IJavaPeerable.Finalized()

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

(Herdado de Object)

Métodos de Extensão

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada em tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

GetJniTypeName(IJavaPeerable)

SignedObject é uma classe com a finalidade de criar objetos de tempo de execução autênticos cuja integridade não pode ser comprometida sem ser detectada.

Aplica-se a