DrbgParameters Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes).
[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
- Héritage
- Attributs
Remarques
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes).
Selon la publication spéciale NIST 800-90A Revision 1, recommandation pour la génération de nombres aléatoires à l’aide de générateurs de bits aléatoires déterministes (800-90Ar1), <blockquote> A DRBG est basé sur un mécanisme DRBG tel que spécifié dans cette recommandation et inclut une source de randomité. Un mécanisme DRBG utilise un algorithme (c’est-à-dire un algorithme DRBG) qui produit une séquence de bits à partir d’une valeur initiale déterminée par une valeur initiale déterminée par une valeur initiale qui est déterminée à partir de la sortie de la source de randomness. » </blockquote>
La spécification 800-90Ar1 permet de choisir divers choix d’implémentation DRBG, tels que : <ul><li> an entropy source, <li> a DRBG mechanism (par exemple, Hash_DRBG), <li> a DRBG algorithm (par exemple, SHA-256 for Hash_DRBG et AES-256 for CTR_DRBG. Notez qu’il ne s’agit pas de l’algorithme utilisé dans SecureRandom#getInstance, que nous appellerons un<> algorithme< Em SecureRandom/em> ci-dessous), <les fonctionnalités facultatives li>, notamment la résistance de prédiction et la prise en charge de la reseeding, <li> plus haute force de sécurité.
</ul>
Ces choix sont définis dans chaque implémentation et ne sont pas directement gérés par l’API SecureRandom . Consultez la documentation de votre fournisseur DRBG pour trouver une implémentation appropriée pour la situation.
En revanche, la spécification 800-90Ar1 dispose de certaines options configurables, telles que : ul<li requis en matière de sécurité, >li< si la résistance de prédiction est requise, >la chaîne de personnalisation li< et les entrées supplémentaires.><> </ul>
Une instance DRBG peut être instanciée avec des paramètres d’un DrbgParameters.Instantiation objet et d’autres informations (par exemple, la nonce, qui n’est pas gérée par cette API). Cela correspond à la Instantiate_function valeur définie dans NIST SP 800-90Ar1.
Une instance DRBG peut être reseeded avec des paramètres d’un DrbgParameters.Reseed objet. Cela correspond à la Reseed_function valeur définie dans NIST SP 800-90Ar1. L’appel SecureRandom#reseed() équivaut à appeler SecureRandom#reseed(SecureRandomParameters) avec l’indicateur de résistance de prédiction instancié effectif (tel qu’il est retourné par SecureRandom#getParameters()) sans entrée supplémentaire.
Une instance DRBG génère des données avec des paramètres supplémentaires à partir d’un DrbgParameters.NextBytes objet. Cela correspond à la Generate_function valeur définie dans NIST SP 800-90Ar1. L’appel SecureRandom#nextBytes(byte[]) équivaut à appeler SecureRandom#nextBytes(byte[], SecureRandomParameters) avec la force instanciée effective et l’indicateur de résistance de prédiction (tel qu’il est retourné par SecureRandom#getParameters()) sans entrée supplémentaire.
Un DRBG doit être implémenté en tant que sous-classe de SecureRandomSpi. Il est recommandé que l’implémentation contienne le constructeur 1-arg SecureRandomSpi#SecureRandomSpi(SecureRandomParameters) qui accepte un DrbgParameters.Instantiation argument. Si elle est implémentée de cette façon, cette implémentation peut être choisie par n’importe quelle SecureRandom.getInstance() méthode. S’il est choisi par un SecureRandom.getInstance() paramètre avec un SecureRandomParameters paramètre, le paramètre est passé dans ce constructeur. S’il est choisi par un SecureRandom.getInstance() sans SecureRandomParameters paramètre, le constructeur est appelé avec un null argument et l’implémentation doit choisir ses propres paramètres. Il SecureRandom#getParameters() doit toujours retourner un objet effectif DrbgParameters.Instantiation non null qui reflète la façon dont le DRBG est réellement instancié. Un appelant peut utiliser ces informations pour déterminer si un SecureRandom objet est un DRBG et quelles fonctionnalités il prend en charge. Notez que la valeur retournée n’est pas nécessairement égale à l’objet DrbgParameters.Instantiation passé dans l’appel SecureRandom.getInstance() . Par exemple, la fonctionnalité demandée peut être DrbgParameters.Capability#NONE mais la valeur effective peut être DrbgParameters.Capability#RESEED_ONLY si l’implémentation prend en charge la réexédation. L’implémentation doit implémenter la SecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters) méthode qui prend un DrbgParameters.NextBytes paramètre. À moins que le résultat de SecureRandom#getParameters() sa fonctionnalité DrbgParameters.Instantiation#getCapability() soit Capability#NONE NONE, il doit implémenter SecureRandomSpi#engineReseed(SecureRandomParameters) qui prend un DrbgParameters.Reseed paramètre.
En revanche, si une implémentation DRBG ne contient pas de constructeur qui a un DrbgParameters.Instantiation argument (non recommandé), elle ne peut être choisie que par un SecureRandom.getInstance() paramètre sans SecureRandomParameters paramètre, mais ne sera pas choisie si une getInstance méthode avec un SecureRandomParameters paramètre est appelée. S’il est implémenté de cette façon, il SecureRandom#getParameters() doit retourner null, et il n’a pas besoin d’implémenter l’un ou l’autre SecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters) .SecureRandomSpi#engineReseed(SecureRandomParameters)
Un DRBG peut se réappliquer automatiquement si la période de départ est supérieure à la durée maximale de vie des semences définie par le mécanisme DRBG.
Une implémentation DRBG doit prendre en charge la sérialisation et la désérialisation en conservant les paramètres de configuration et effectifs, mais l’état interne ne doit pas être sérialisé et l’objet désérialisé doit être réinitialisé.
Exemples : <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>
Ajouté dans 9.
Java documentation pour java.security.DrbgParameters.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
Constructeurs
| Nom | Description |
|---|---|
| DrbgParameters(IntPtr, JniHandleOwnership) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). |
Propriétés
| Nom | Description |
|---|---|
| Class |
Retourne la classe runtime de ce |
| Handle |
Handle de l’instance Android sous-jacente. (Hérité de Object) |
| JniIdentityHashCode |
Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité. (Hérité de Object) |
| JniManagedPeerState |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| JniPeerMembers |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). |
| PeerReference |
Obtient la référence d’objet JNI pour cet homologue Java. (Hérité de Object) |
| ThresholdClass |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). |
| ThresholdType |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). |
Méthodes
| Nom | Description |
|---|---|
| Clone() |
Crée et retourne une copie de cet objet. (Hérité de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| Dispose() |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| Dispose(Boolean) |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| DisposeUnlessReferenced() |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| Equals(Object) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| Equals(Object) |
Indique si un autre objet est « égal à » celui-ci. (Hérité de Object) |
| GetHashCode() |
Retourne une valeur de code de hachage pour l'objet. (Hérité de Object) |
| InvokeInstantiation(Int32, DrbgParameters+Capability, Byte[]) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). |
| InvokeNextBytes(Int32, Boolean, Byte[]) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). |
| InvokeReseed(Boolean, Byte[]) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). |
| JavaFinalize() |
Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet. (Hérité de Object) |
| Notify() |
Réveille un thread unique qui attend le moniteur de cet objet. (Hérité de Object) |
| NotifyAll() |
Réveille tous les threads qui attendent le moniteur de cet objet. (Hérité de Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Définit la propriété Handle. (Hérité de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| ToArray<T>() |
Crée un tableau managé à partir de ce wrapper de tableau Java. (Hérité de Object) |
| ToString() |
Retourne une représentation de chaîne de l'objet. (Hérité de Object) |
| UnregisterFromRuntime() |
Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité. (Hérité de Object) |
| Wait() |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<> (Hérité de Object) |
| Wait(Int64, Int32) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
| Wait(Int64) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IJavaPeerable.Disposed() |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| IJavaPeerable.Finalized() |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). (Hérité de JavaObject) |
Méthodes d’extension
| Nom | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtient le nom JNI du type de l’instance |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| JavaCast<TResult>(IJavaObject) |
Effectue une conversion de type vérifiée par le runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Cette classe spécifie les paramètres utilisés par un DRBG (Générateur de bits aléatoires déterministes). |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Essayez de forcer |