From: Alejandro Colomar <alx.manpages@gmail.com>
To: linux-man@vger.kernel.org
Cc: Alejandro Colomar <alx@kernel.org>,
libc-alpha@sourceware.org, "Jason A. Donenfeld" <Jason@zx2c4.com>
Subject: Re: [PATCH] arc4random.3: New page documenting the arc4random(3) family of functions
Date: Sun, 1 Jan 2023 17:27:16 +0100 [thread overview]
Message-ID: <fd5ee7bd-f4a6-52a6-2f69-7c3547e549c6@gmail.com> (raw)
In-Reply-To: <20230101162627.28031-1-alx@kernel.org>
[-- Attachment #1.1: Type: text/plain, Size: 2975 bytes --]
arc4random(3) Library Functions Manual arc4random(3)
NAME
arc4random, arc4random_uniform, arc4random_buf - cryptographically‐se‐
cure pseudorandom number generator
LIBRARY
Standard C library (libc, ‐lc)
SYNOPSIS
#include <stdlib.h>
uint32_t arc4random(void);
uint32_t arc4random_uniform(uint32_t upper_bound);
void arc4random_buf(void buf[.n], size_t n);
DESCRIPTION
These functions give cryptographically‐secure random numbers.
arc4random() returns a uniformly‐distributed value.
arc4random_uniform() returns a uniformly‐distributed value less than
upper_bound (see CAVEATS).
arc4random_buf() fills the memory pointed to by buf, with n bytes of
random data.
The rand(3) and rand48(3) families of functions should only be used
where the quality of the random numbers is not a concern and there’s a
need for repeatability of the results. Unless you meet both of those
conditions, use the arc4random() functions.
RETURN VALUE
arc4random() returns a random number.
arc4random_uniform() returns a random number less than upper_bound for
valid input, or 0 when upper_bound is invalid.
ATTRIBUTES
For an explanation of the terms used in this section, see attrib‐
utes(7).
┌────────────────────────────────────────────┬───────────────┬─────────┐
│Interface │ Attribute │ Value │
├────────────────────────────────────────────┼───────────────┼─────────┤
│arc4random(), arc4random_uniform(), │ Thread safety │ MT‐Safe │
│arc4random_buf() │ │ │
└────────────────────────────────────────────┴───────────────┴─────────┘
STANDARDS
These nonstandard functions are present in several Unix systems.
CAVEATS
An upper_bound of 0 doesn’t make sense in a call to arc4random_uni‐
form(). Such a call will fail, and return 0. Be careful, since that
value is not less than upper_bound. In some cases, such as accessing
an array, using that value could result in Undefined Behavior.
SEE ALSO
getrandom(3), rand(3), rand48(3), random(7)
Linux man‐pages (unreleased) (date) arc4random(3)
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2023-01-01 16:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-01 16:26 Alejandro Colomar
2023-01-01 16:27 ` Alejandro Colomar [this message]
2023-03-17 21:31 ` Jakub Wilk
2023-03-17 21:44 ` Alejandro Colomar
2023-03-17 21:54 ` Alejandro Colomar
2023-01-01 16:39 ` Tom Schwindl
2023-01-01 16:41 ` Alejandro Colomar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fd5ee7bd-f4a6-52a6-2f69-7c3547e549c6@gmail.com \
--to=alx.manpages@gmail.com \
--cc=Jason@zx2c4.com \
--cc=alx@kernel.org \
--cc=libc-alpha@sourceware.org \
--cc=linux-man@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).