Files
google-apis-rs/ring/rand/index.html
2021-04-02 00:20:57 +08:00

26 lines
5.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `rand` mod in crate `ring`."><meta name="keywords" content="rust, rustlang, rust-lang, rand"><title>ring::rand - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../ring/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Module rand</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li></ul></div><p class="location"><a href="../index.html">ring</a></p><div id="sidebar-vars" data-name="rand" data-ty="mod" data-relpath="../"></div><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" class="help-button">?</button>
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Module <a href="../index.html">ring</a>::<wbr><a class="mod" href="">rand</a></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/ring/rand.rs.html#15-433" title="goto source code">[src]</a></span></h1><div class="docblock"><p>Cryptographic pseudo-random number generation.</p>
<p>An application should create a single <code>SystemRandom</code> and then use it for
all randomness generation. Functions that generate random bytes should take
a <code>&amp;dyn SecureRandom</code> parameter instead of instantiating their own. Besides
being more efficient, this also helps document where non-deterministic
(random) outputs occur. Taking a reference to a <code>SecureRandom</code> also helps
with testing techniques like fuzzing, where it is useful to use a
(non-secure) deterministic implementation of <code>SecureRandom</code> so that results
can be replayed. Following this pattern also may help with sandboxing
(seccomp filters on Linux in particular). See <code>SystemRandom</code>'s
documentation for more details.</p>
</div><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2>
<table><tr class="module-item"><td><a class="struct" href="struct.Random.html" title="ring::rand::Random struct">Random</a></td><td class="docblock-short"><p>A random value constructed from a <code>SecureRandom</code> that hasn't been exposed
through any safe Rust interface.</p>
</td></tr><tr class="module-item"><td><a class="struct" href="struct.SystemRandom.html" title="ring::rand::SystemRandom struct">SystemRandom</a></td><td class="docblock-short"><p>A secure random number generator where the random values come directly
from the operating system.</p>
</td></tr></table><h2 id="traits" class="section-header"><a href="#traits">Traits</a></h2>
<table><tr class="module-item"><td><a class="trait" href="trait.RandomlyConstructable.html" title="ring::rand::RandomlyConstructable trait">RandomlyConstructable</a></td><td class="docblock-short"><p>A type that can be returned by <code>ring::rand::generate()</code>.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.SecureRandom.html" title="ring::rand::SecureRandom trait">SecureRandom</a></td><td class="docblock-short"><p>A secure random number generator.</p>
</td></tr></table><h2 id="functions" class="section-header"><a href="#functions">Functions</a></h2>
<table><tr class="module-item"><td><a class="fn" href="fn.generate.html" title="ring::rand::generate fn">generate</a></td><td class="docblock-short"><p>Generate the new random value using <code>rng</code>.</p>
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="ring"></div>
<script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>