#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
use crate::common::{CryptoResult, Crypto_DataBlob};
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[repr(C)]
pub struct OH_CryptoRand {
_unused: [u8; 0],
}
extern "C" {
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoRand_Create(ctx: *mut *mut OH_CryptoRand) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoRand_GenerateRandom(
ctx: *mut OH_CryptoRand,
len: ::core::ffi::c_int,
out: *mut Crypto_DataBlob,
) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoRand_GetAlgoName(ctx: *mut OH_CryptoRand) -> *const ::core::ffi::c_char;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoRand_SetSeed(
ctx: *mut OH_CryptoRand,
seed: *mut Crypto_DataBlob,
) -> CryptoResult;
#[cfg(feature = "api-21")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-21")))]
pub fn OH_CryptoRand_EnableHardwareEntropy(ctx: *mut OH_CryptoRand) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoRand_Destroy(ctx: *mut OH_CryptoRand);
}