This is the documentation for the latest (master) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.



The entropy API provides functions to retrieve entropy values from entropy hardware present on the platform. The entropy APIs are provided for use by the random subsystem and cryptographic services. They are not suitable to be used as random number generation functions.

API Reference

group entropy_interface

Entropy Interface.




typedef entropy_get_entropy_t

Callback API to get entropy.

See entropy_get_entropy() for argument description

typedef entropy_get_entropy_isr_t

Callback API to get entropy from an ISR.

See entropy_get_entropy_isr() for argument description


int entropy_get_entropy(struct device *dev, u8_t *buffer, u16_t length)

Fills a buffer with entropy. Blocks if required in order to generate the necessary random data.

  • dev: Pointer to the entropy device.

  • buffer: Buffer to fill with entropy.

  • length: Buffer length.

Return Value
  • 0: on success.

  • -ERRNO: errno code on error.

static int entropy_get_entropy_isr(struct device *dev, u8_t *buffer, u16_t length, u32_t flags)

Fills a buffer with entropy in a non-blocking or busy-wait manner. Callable from ISRs.

  • dev: Pointer to the device structure.

  • buffer: Buffer to fill with entropy.

  • length: Buffer length.

  • flags: Flags to modify the behavior of the call.

Return Value
  • number: of bytes filled with entropy or -error.