SignedObject Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada.
[Android.Runtime.Register("java/security/SignedObject", DoNotGenerateAcw=true)]
public sealed class SignedObject : Java.Lang.Object, IDisposable, Java.IO.ISerializable
[<Android.Runtime.Register("java/security/SignedObject", DoNotGenerateAcw=true)>]
type SignedObject = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Herencia
- Atributos
- Implementaciones
Comentarios
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada.
Más concretamente, un Objeto SignedObject contiene otro objeto Serializable, el objeto firmado (to-be-)y su firma.
El objeto firmado es una "copia profunda" (en forma serializada) de un objeto original. Una vez realizada la copia, la manipulación adicional del objeto original no tiene ningún efecto secundario en la copia.
El algoritmo de firma subyacente lo designa el objeto Signature pasado al constructor y al verify método . Un uso típico para la firma es el siguiente:
{@code
Signature signingEngine = Signature.getInstance(algorithm,
provider);
SignedObject so = new SignedObject(myobject, signingKey,
signingEngine);
}
Un uso típico para la comprobación es el siguiente (después de haber recibido SignedObject so):
{@code
Signature verificationEngine =
Signature.getInstance(algorithm, provider);
if (so.verify(publickey, verificationEngine))
try {
Object myobj = so.getObject();
} catch (java.lang.ClassNotFoundException e) {};
}
Cabe destacar varios puntos. En primer lugar, no es necesario inicializar el motor de firma o comprobación, ya que se volverá a inicializar dentro del constructor y el verify método . En segundo lugar, para que la comprobación se realice correctamente, la clave pública especificada debe ser la clave pública correspondiente a la clave privada que se usa para generar signedObject.
Lo más importante es que, por motivos de flexibilidad, el constructor y verify el método permiten motores de firma personalizados, que pueden implementar algoritmos de firma que no están instalados formalmente como parte de un proveedor criptográfico. Sin embargo, es fundamental que el programador que escribe el código comprobador tenga en cuenta qué Signature motor se usa, ya que se invoca su propia implementación del verify método para comprobar una firma. En otras palabras, un malintencionado Signature puede optar por devolver siempre true en la comprobación en un intento de omitir una comprobación de seguridad.
El algoritmo de firma puede ser, entre otros, el DSA estándar NIST, mediante DSA y SHA-256. El algoritmo se especifica con la misma convención que para las firmas. El algoritmo DSA que usa el algoritmo de síntesis de mensajes SHA-256 se puede especificar, por ejemplo, como "SHA256withDSA". En el caso de RSA, el algoritmo de firma podría especificarse como, por ejemplo, "SHA256withRSA". El nombre del algoritmo debe especificarse, ya que no hay ningún valor predeterminado.
El nombre del proveedor de paquetes criptográficos también lo designa el parámetro Signature para el constructor y el verify método . Si no se especifica el proveedor, se usa el proveedor predeterminado. Cada instalación se puede configurar para usar un proveedor determinado como valor predeterminado.
Las posibles aplicaciones de SignedObject incluyen: <ul><li> Se puede usar internamente en cualquier entorno de ejecución de Java como un token de autorización irreforable, uno que se puede pasar sin el temor de que el token se pueda modificar de forma malintencionada sin ser detectado. <li> Se puede usar para firmar y serializar datos o objetos para el almacenamiento fuera del entorno de ejecución de Java (por ejemplo, almacenar datos de control de acceso críticos en el disco). <li> Nested SignedObjects se puede usar para construir una secuencia lógica de firmas, similar a una cadena de autorización y delegación. </ul>
Agregado en la versión 1.2.
Java documentación para java.security.SignedObject.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.
Constructores
| Nombre | Description |
|---|---|
| SignedObject(ISerializable, IPrivateKey, Signature) |
Construye un SignedObject a partir de cualquier objeto Serializable. |
Propiedades
| Nombre | Description |
|---|---|
| Algorithm |
Recupera el nombre del algoritmo de firma. |
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| JniPeerMembers |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. |
| Object |
Recupera el objeto encapsulado. |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. (Heredado de Object) |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. (Heredado de Object) |
Métodos
| Nombre | Description |
|---|---|
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| Equals(Object) |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| GetHashCode() |
Devuelve un valor de código hash para el objeto . (Heredado de Object) |
| GetSignature() |
Recupera la firma en el objeto firmado, en forma de una matriz de bytes. |
| JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
| Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
| NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena del objeto . (Heredado de Object) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| Verify(IPublicKey, Signature) |
Comprueba que la firma de este SignedObject es la firma válida para el objeto almacenado dentro, con la clave de verificación especificada, mediante el motor de verificación designado. |
| Wait() |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><> (Heredado de Object) |
| Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| IJavaPeerable.Finalized() |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. (Heredado de JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
SignedObject es una clase para crear objetos en tiempo de ejecución auténticos cuya integridad no se puede poner en peligro sin ser detectada. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |