Skip to content
Snippets Groups Projects
Select Git revision
  • dailybuild_linux-x64
  • dailybuild_win32
  • master default protected
  • sqlite
  • rip_abstraction
  • dailybuild_macos-armv8
  • dd_file_lister_filanem_in_desc_color
  • mode7
  • dd_msg_reader_are_you_there_warning_improvement
  • c23-playing
  • syncterm-1.3
  • syncterm-1.2
  • test-build
  • hide_remote_connection_with_telgate
  • 638-can-t-control-c-during-a-file-search
  • add_body_to_pager_email
  • mingw32-build
  • cryptlib-3.4.7
  • ree/mastermind
  • new_user_dat
  • sbbs320d
  • syncterm-1.6
  • syncterm-1.5
  • syncterm-1.4
  • sbbs320b
  • syncterm-1.3
  • syncterm-1.2
  • syncterm-1.2rc6
  • syncterm-1.2rc5
  • push
  • syncterm-1.2rc4
  • syncterm-1.2rc2
  • syncterm-1.2rc1
  • sbbs319b
  • sbbs318b
  • goodbuild_linux-x64_Sep-01-2020
  • goodbuild_win32_Sep-01-2020
  • goodbuild_linux-x64_Aug-31-2020
  • goodbuild_win32_Aug-31-2020
  • goodbuild_win32_Aug-30-2020
40 results

prrng.h

Blame
  • prrng.h 2.40 KiB
    /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
    /* This Source Code Form is subject to the terms of the Mozilla Public
     * License, v. 2.0. If a copy of the MPL was not distributed with this
     * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
    
    
    /*
    ** prrng.h -- NSPR Random Number Generator
    **
    **
    ** lth. 29-Oct-1999.
    */
    
    #ifndef prrng_h___
    #define prrng_h___
    
    #include "prtypes.h"
    
    PR_BEGIN_EXTERN_C
    
    /*
    ** PR_GetRandomNoise() -- Get random noise from the host platform
    **
    ** Description:
    ** PR_GetRandomNoise() provides, depending on platform, a random value.
    ** The length of the random value is dependent on platform and the
    ** platform's ability to provide a random value at that moment.
    **
    ** The intent of PR_GetRandomNoise() is to provide a "seed" value for a
    ** another random number generator that may be suitable for
    ** cryptographic operations. This implies that the random value
    ** provided may not be, by itself, cryptographically secure. The value
    ** generated by PR_GetRandomNoise() is at best, extremely difficult to
    ** predict and is as non-deterministic as the underlying platfrom can
    ** provide.
    **
    ** Inputs:
    **   buf -- pointer to a caller supplied buffer to contain the
    **          generated random number. buf must be at least as large as
    **          is specified in the 'size' argument.
    **
    **   size -- the requested size of the generated random number
    **
    ** Outputs:
    **   a random number provided in 'buf'.
    **
    ** Returns:
    **   PRSize value equal to the size of the random number actually
    **   generated, or zero. The generated size may be less than the size
    **   requested. A return value of zero means that PR_GetRandomNoise() is
    **   not implemented on this platform, or there is no available noise
    **   available to be returned at the time of the call.
    **
    ** Restrictions:
    **   Calls to PR_GetRandomNoise() may use a lot of CPU on some platforms.
    **   Some platforms may block for up to a few seconds while they
    **   accumulate some noise. Busy machines generate lots of noise, but
    **   care is advised when using PR_GetRandomNoise() frequently in your
    **   application.
    **
    ** History:
    **   Parts of the model dependent implementation for PR_GetRandomNoise()
    **   were taken in whole or part from code previously in Netscape's NSS
    **   component.
    **
    */
    NSPR_API(PRSize) PR_GetRandomNoise(
        void    *buf,
        PRSize  size
    );
    
    PR_END_EXTERN_C
    
    #endif /* prrng_h___ */
    /* end prrng.h */