# [−][src]Trait rand::CryptoRng

    pub trait CryptoRng { }

A marker trait used to indicate that an [`RngCore`] or `BlockRngCore` implementation is supposed to be cryptographically secure.

Cryptographically secure generators, also known as CSPRNGs, should satisfy an additional properties over other generators: given the first k bits of an algorithm's output sequence, it should not be possible using polynomial-time algorithms to predict the next bit with probability significantly greater than 50%.

Some generators may satisfy an additional property, however this is not required by this trait: if the CSPRNG's state is revealed, it should not be computationally-feasible to reconstruct output prior to this. Some other generators allow backwards-computation and are consided reversible.

Note that this trait is provided for guidance only and cannot guarantee suitability for cryptographic applications. In general it should only be implemented for well-reviewed code implementing well-regarded algorithms.

Note also that use of a `CryptoRng` does not protect against other weaknesses such as seeding from a weak entropy source or leaking state.

## Implementations on Foreign Types

### `impl<R> CryptoRng for BlockRng<R> where
R: BlockRngCore + CryptoRng,` [src]

### `impl<'a, R> CryptoRng for &'a mut R where
R: CryptoRng + ?Sized,` [src]

### `impl<R> CryptoRng for Box<R> where
R: CryptoRng + ?Sized,` [src]

### `impl CryptoRng for ChaChaRng`[src]

### `impl CryptoRng for ChaChaCore`[src]

### `impl CryptoRng for Hc128Rng`[src]

### `impl CryptoRng for Hc128Core`[src]

Loading content...

## Implementors

### `impl CryptoRng for EntropyRng`[src]

### `impl CryptoRng for JitterRng`[src]

### `impl CryptoRng for OsRng`[src]

### `impl CryptoRng for StdRng`[src]

### `impl CryptoRng for ThreadRng`[src]

### `impl<R, Rsdr> CryptoRng for ReseedingRng<R, Rsdr> where
R: BlockRngCore + SeedableRng + CryptoRng,
Rsdr: RngCore + CryptoRng,` [src]

Loading content...

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)