https://gcc.gnu.org/g:dc72d4dca9e6ee5af2ea2af0353a994a7a109db3

commit r15-2665-gdc72d4dca9e6ee5af2ea2af0353a994a7a109db3
Author: Johannes Kliemann <kliem...@adacore.com>
Date:   Fri Jul 5 11:27:44 2024 +0000

    ada: Improve documenation about security of PRGNs
    
    The pseudo random number generators used in GNAT are not
    suitable for applications that require cryptographic
    security. While this was mentioned in some places others
    did not have a corresponding note, leading to these
    generators being used in a non-suitable context.
    
    gcc/ada/
    
            * doc/gnat_rm/standard_library_routines.rst: Add note to section
            of Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random.
            * doc/gnat_rm/the_gnat_library.rst: Add note to section about
            GNAT.Random_Numbers.
            * libgnat/a-nudira.ads: Add note about cryptographic properties.
            * gnat_rm.texi: Regenerate.
            * gnat_ugn.texi: Regenerate.

Diff:
---
 gcc/ada/doc/gnat_rm/standard_library_routines.rst |  6 ++++--
 gcc/ada/doc/gnat_rm/the_gnat_library.rst          |  4 +++-
 gcc/ada/gnat_rm.texi                              | 10 +++++++---
 gcc/ada/gnat_ugn.texi                             |  2 +-
 gcc/ada/libgnat/a-nudira.ads                      |  2 ++
 5 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/gcc/ada/doc/gnat_rm/standard_library_routines.rst 
b/gcc/ada/doc/gnat_rm/standard_library_routines.rst
index 27659a404630..2e7642652b2c 100644
--- a/gcc/ada/doc/gnat_rm/standard_library_routines.rst
+++ b/gcc/ada/doc/gnat_rm/standard_library_routines.rst
@@ -302,12 +302,14 @@ the unit is not implemented.
 
 ``Ada.Numerics.Discrete_Random``
   This generic package provides a random number generator suitable for 
generating
-  uniformly distributed values of a specified discrete subtype.
+  uniformly distributed values of a specified discrete subtype. It should not 
be
+  used as a cryptographic pseudo-random source.
 
 
 ``Ada.Numerics.Float_Random``
   This package provides a random number generator suitable for generating
-  uniformly distributed floating point values in the unit interval.
+  uniformly distributed floating point values in the unit interval. It should 
not
+  be used as a cryptographic pseudo-random source.
 
 
 ``Ada.Numerics.Generic_Complex_Elementary_Functions``
diff --git a/gcc/ada/doc/gnat_rm/the_gnat_library.rst 
b/gcc/ada/doc/gnat_rm/the_gnat_library.rst
index 88204d4cfe72..ac45b5eb7af8 100644
--- a/gcc/ada/doc/gnat_rm/the_gnat_library.rst
+++ b/gcc/ada/doc/gnat_rm/the_gnat_library.rst
@@ -1329,7 +1329,9 @@ convenient for use with realtime applications.
 .. index:: Random number generation
 
 Provides random number capabilities which extend those available in the
-standard Ada library and are more convenient to use.
+standard Ada library and are more convenient to use. This package is
+however NOT suitable for situations requiring cryptographically secure
+randomness.
 
 .. _`GNAT.Regexp_(g-regexp.ads)`:
 
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index d15d6204cd8f..d6e2f265ab9c 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -21142,12 +21142,14 @@ build the type @code{Complex} and @code{Imaginary}.
 @item @code{Ada.Numerics.Discrete_Random}
 
 This generic package provides a random number generator suitable for generating
-uniformly distributed values of a specified discrete subtype.
+uniformly distributed values of a specified discrete subtype. It should not be
+used as a cryptographic pseudo-random source.
 
 @item @code{Ada.Numerics.Float_Random}
 
 This package provides a random number generator suitable for generating
-uniformly distributed floating point values in the unit interval.
+uniformly distributed floating point values in the unit interval. It should not
+be used as a cryptographic pseudo-random source.
 
 @item @code{Ada.Numerics.Generic_Complex_Elementary_Functions}
 
@@ -24688,7 +24690,9 @@ convenient for use with realtime applications.
 @geindex Random number generation
 
 Provides random number capabilities which extend those available in the
-standard Ada library and are more convenient to use.
+standard Ada library and are more convenient to use. This package is
+however NOT suitable for situations requiring cryptographically secure
+randomness.
 
 @node GNAT Regexp g-regexp ads,GNAT Registry g-regist ads,GNAT Random_Numbers 
g-rannum ads,The GNAT Library
 @anchor{gnat_rm/the_gnat_library 
gnat-regexp-g-regexp-ads}@anchor{270}@anchor{gnat_rm/the_gnat_library 
id90}@anchor{39b}
diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi
index 0e3ee935552d..ea1d2f9d71a8 100644
--- a/gcc/ada/gnat_ugn.texi
+++ b/gcc/ada/gnat_ugn.texi
@@ -29670,8 +29670,8 @@ to permit their use in free software.
 
 @printindex ge
 
-@anchor{d1}@w{                              }
 @anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{   
                           }
+@anchor{d1}@w{                              }
 
 @c %**end of body
 @bye
diff --git a/gcc/ada/libgnat/a-nudira.ads b/gcc/ada/libgnat/a-nudira.ads
index 1b3eacb897dd..c6d957318214 100644
--- a/gcc/ada/libgnat/a-nudira.ads
+++ b/gcc/ada/libgnat/a-nudira.ads
@@ -35,6 +35,8 @@
 
 --  Note: the implementation used in this package is a version of the
 --  Mersenne Twister. See s-rannum.adb for details and references.
+--  It is suitable for simulations, but should not be used as a cryptographic
+--  pseudo-random source.
 
 with System.Random_Numbers;

Reply via email to