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. |