DrbgParameters 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í.
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista).
[Android.Runtime.Register("java/security/DrbgParameters", ApiSince=35, DoNotGenerateAcw=true)]
public class DrbgParameters : Java.Lang.Object
[<Android.Runtime.Register("java/security/DrbgParameters", ApiSince=35, DoNotGenerateAcw=true)>]
type DrbgParameters = class
inherit Object
- Herencia
- Atributos
Comentarios
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista).
Según la publicación especial de NIST 800-90A Revisión 1, recomendación para la generación de números aleatorios mediante generadores de bits aleatorios deterministas (800-90Ar1), <la comillas> de bloque A DRBG se basa en un mecanismo DRBG tal como se especifica en esta recomendación e incluye una fuente de aleatoriedad. Un mecanismo DRBG usa un algoritmo (es decir, un algoritmo DRBG) que genera una secuencia de bits a partir de un valor inicial determinado por una inicialización que se determina a partir de la salida del origen de aleatoriedad". </blockquote>
La especificación 800-90Ar1 permite una variedad de opciones de implementación de DRBG, como: <ul><li> un origen de entropía, <li> un mecanismo DRBG (por ejemplo, Hash_DRBG), <li> un algoritmo DRBG (por ejemplo, SHA-256 para Hash_DRBG y AES-256 para CTR_DRBG. Tenga en cuenta que no es el algoritmo usado en SecureRandom#getInstance, que llamaremos a un <algoritmo> SecureRandom/<em> a continuación), <li> características opcionales, incluida la resistencia a la predicción y los soportes de resecado, <li> más fuerte de seguridad.
</ul>
Estas opciones se establecen en cada implementación y la SecureRandom API no las administra directamente. Consulte la documentación del proveedor de DRBG para encontrar una implementación adecuada para la situación.
Por otro lado, la especificación 800-90Ar1 tiene algunas opciones configurables, como: ul<li requerida fuerza de seguridad, >li< si se requiere resistencia a la predicción, >cadena de personalización li< y entrada adicional.><> </ul>
Se puede crear una instancia de DRBG con parámetros de un DrbgParameters.Instantiation objeto y otra información (por ejemplo, el nonce, que esta API no administra). Esto se asigna al Instantiate_function definido en NIST SP 800-90Ar1.
Una instancia de DRBG se puede volver a usar con parámetros de un DrbgParameters.Reseed objeto . Esto se asigna al Reseed_function definido en NIST SP 800-90Ar1. La llamada SecureRandom#reseed() a es equivalente a llamar SecureRandom#reseed(SecureRandomParameters) a con la marca de resistencia de predicción creada de instancias efectiva (tal y como devuelve SecureRandom#getParameters()) sin ninguna entrada adicional.
Una instancia de DRBG genera datos con parámetros adicionales de un DrbgParameters.NextBytes objeto . Esto se asigna al Generate_function definido en NIST SP 800-90Ar1. La llamada SecureRandom#nextBytes(byte[]) a es equivalente a llamar SecureRandom#nextBytes(byte[], SecureRandomParameters) a con la marca efectiva de resistencia de creación de instancias y resistencia de predicción (tal y como devuelve SecureRandom#getParameters()) sin ninguna entrada adicional.
Un DRBG debe implementarse como una subclase de SecureRandomSpi. Se recomienda que la implementación contenga el constructor SecureRandomSpi#SecureRandomSpi(SecureRandomParameters) 1-arg que toma un DrbgParameters.Instantiation argumento. Si se implementa de esta manera, cualquier SecureRandom.getInstance() método puede elegir esta implementación. Si lo elige un SecureRandom.getInstance() con un SecureRandomParameters parámetro , el parámetro se pasa a este constructor. Si lo elige un SecureRandom.getInstance() sin un SecureRandomParameters parámetro, se llama al constructor con un null argumento y la implementación debe elegir sus propios parámetros. Siempre SecureRandom#getParameters() debe devolver un objeto efectivo DrbgParameters.Instantiation no NULL que refleje cómo se crea una instancia de DRBG. Un autor de llamada puede usar esta información para determinar si un objeto es un SecureRandom DRBG y qué características admite. Tenga en cuenta que el valor devuelto no es necesariamente igual al DrbgParameters.Instantiation objeto pasado a la SecureRandom.getInstance() llamada. Por ejemplo, la funcionalidad solicitada puede ser DrbgParameters.Capability#NONE , pero el valor efectivo puede ser DrbgParameters.Capability#RESEED_ONLY si la implementación admite la reutilización. La implementación debe implementar el SecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters) método que toma un DrbgParameters.NextBytes parámetro. A menos que el resultado de SecureRandom#getParameters() tenga su funcionalidad Capability#NONE NONEDrbgParameters.Instantiation#getCapability() , debe implementar SecureRandomSpi#engineReseed(SecureRandomParameters) lo que toma un DrbgParameters.Reseed parámetro.
Por otro lado, si una implementación de DRBG no contiene un constructor que tiene un DrbgParameters.Instantiation argumento (no recomendado), solo se puede elegir mediante un SecureRandom.getInstance() sin un SecureRandomParameters parámetro, pero no se elegirá si se llama a un getInstance método con un SecureRandomParameters parámetro . Si se implementa de esta manera, debe SecureRandom#getParameters() devolver y no es necesario implementar ni nullSecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters).SecureRandomSpi#engineReseed(SecureRandomParameters)
Es posible que un DRBG se vuelva a aplicar automáticamente si el período de inicialización es mayor que la vida máxima de inicialización definida por el mecanismo DRBG.
Una implementación de DRBG debe admitir la serialización y deserialización conservando la configuración y los parámetros efectivos, pero el estado interno no debe serializarse y el objeto deserializado debe volver a fundamentarse.
Ejemplos: <blockquote>
SecureRandom drbg;
byte[] buffer = new byte[32];
// Any DRBG is OK
drbg = SecureRandom.getInstance("DRBG");
drbg.nextBytes(buffer);
SecureRandomParameters params = drbg.getParameters();
if (params instanceof DrbgParameters.Instantiation) {
DrbgParameters.Instantiation ins = (DrbgParameters.Instantiation) params;
if (ins.getCapability().supportsReseeding()) {
drbg.reseed();
}
}
// The following call requests a weak DRBG instance. It is only
// guaranteed to support 112 bits of security strength.
drbg = SecureRandom.getInstance("DRBG",
DrbgParameters.instantiation(112, NONE, null));
// Both the next two calls will likely fail, because drbg could be
// instantiated with a smaller strength with no prediction resistance
// support.
drbg.nextBytes(buffer,
DrbgParameters.nextBytes(256, false, "more".getBytes()));
drbg.nextBytes(buffer,
DrbgParameters.nextBytes(112, true, "more".getBytes()));
// The following call requests a strong DRBG instance, with a
// personalization string. If it successfully returns an instance,
// that instance is guaranteed to support 256 bits of security strength
// with prediction resistance available.
drbg = SecureRandom.getInstance("DRBG", DrbgParameters.instantiation(
256, PR_AND_RESEED, "hello".getBytes()));
// Prediction resistance is not requested in this single call,
// but an additional input is used.
drbg.nextBytes(buffer,
DrbgParameters.nextBytes(-1, false, "more".getBytes()));
// Same for this call.
drbg.reseed(DrbgParameters.reseed(false, "extra".getBytes()));
</blockquote>
Agregado en 9.
Java documentación para java.security.DrbgParameters.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Constructores
| Nombre | Description |
|---|---|
| DrbgParameters(IntPtr, JniHandleOwnership) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). |
Propiedades
| Nombre | Description |
|---|---|
| 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 |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (Heredado de JavaObject) |
| JniPeerMembers |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| ThresholdClass |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). |
| ThresholdType |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). |
Métodos
| Nombre | Description |
|---|---|
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (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() |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (Heredado de JavaObject) |
| Equals(Object) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (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) |
| InvokeInstantiation(Int32, DrbgParameters+Capability, Byte[]) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). |
| InvokeNextBytes(Int32, Boolean, Byte[]) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). |
| InvokeReseed(Boolean, Byte[]) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). |
| 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) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (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) |
| 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() |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (Heredado de JavaObject) |
| IJavaPeerable.Finalized() |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (Heredado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (Heredado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (Heredado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (Heredado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). (Heredado de JavaObject) |
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) |
Esta clase especifica los parámetros usados por un DRBG (Generador de bits aleatorio determinista). |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |