SignedObject Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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 |
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. |