Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Side by Side Diff: sdk/lib/math/random.dart

Issue 1398453004: Add a 'secure' constructor to Random in dart:math returning a cryptographically (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: address review comments Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sdk/lib/_internal/js_runtime/lib/math_patch.dart ('k') | tests/lib/lib.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of dart.math; 5 part of dart.math;
6 6
7 /** 7 /**
8 * A generator of random bool, int, or double values. 8 * A generator of random bool, int, or double values.
9 * 9 *
10 * The default implementation supplies a stream of 10 * The default implementation supplies a stream of
11 * pseudo-random bits that are not suitable for cryptographic purposes. 11 * pseudo-random bits that are not suitable for cryptographic purposes.
12 *
13 * Use the Random.secure() constructor for cryptographic
14 * purposes.
12 */ 15 */
13 abstract class Random { 16 abstract class Random {
14 /** 17 /**
15 * Creates a random number generator. 18 * Creates a random number generator.
16 * 19 *
17 * The optional parameter [seed] is used 20 * The optional parameter [seed] is used to initialize the
18 * to initialize the internal state of the generator. The implementation of 21 * internal state of the generator. The implementation of the
19 * the random stream can change between releases of the library. 22 * random stream can change between releases of the library.
20 */ 23 */
21 external factory Random([int seed]); 24 external factory Random([int seed]);
22 25
23 /** 26 /**
27 * Creates a cryptographically secure random number generator.
28 *
29 * If the program cannot provide a cryptographically secure
30 * source of random numbers, it throws an [UnsupportedError].
31 */
32 external factory Random.secure();
33
34 /**
24 * Generates a non-negative random integer uniformly distributed in the range 35 * Generates a non-negative random integer uniformly distributed in the range
25 * from 0, inclusive, to [max], exclusive. 36 * from 0, inclusive, to [max], exclusive.
26 * 37 *
27 * Implementation note: The default implementation supports [max] values 38 * Implementation note: The default implementation supports [max] values
28 * between 1 and ((1<<32) - 1) inclusive. 39 * between 1 and (1<<32) inclusive.
29 */ 40 */
30 int nextInt(int max); 41 int nextInt(int max);
31 42
32 /** 43 /**
33 * Generates a non-negative random floating point value uniformly distributed 44 * Generates a non-negative random floating point value uniformly distributed
34 * in the range from 0.0, inclusive, to 1.0, exclusive. 45 * in the range from 0.0, inclusive, to 1.0, exclusive.
35 */ 46 */
36 double nextDouble(); 47 double nextDouble();
37 48
38 /** 49 /**
39 * Generates a random boolean value. 50 * Generates a random boolean value.
40 */ 51 */
41 bool nextBool(); 52 bool nextBool();
42 } 53 }
OLDNEW
« no previous file with comments | « sdk/lib/_internal/js_runtime/lib/math_patch.dart ('k') | tests/lib/lib.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698