#![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_CryptoKdf {
_unused: [u8; 0],
}
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[repr(C)]
pub struct OH_CryptoKdfParams {
_unused: [u8; 0],
}
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
impl CryptoKdf_ParamType {
pub const CRYPTO_KDF_KEY_DATABLOB: CryptoKdf_ParamType = CryptoKdf_ParamType(0);
pub const CRYPTO_KDF_SALT_DATABLOB: CryptoKdf_ParamType = CryptoKdf_ParamType(1);
pub const CRYPTO_KDF_INFO_DATABLOB: CryptoKdf_ParamType = CryptoKdf_ParamType(2);
pub const CRYPTO_KDF_ITER_COUNT_INT: CryptoKdf_ParamType = CryptoKdf_ParamType(3);
pub const CRYPTO_KDF_SCRYPT_N_UINT64: CryptoKdf_ParamType = CryptoKdf_ParamType(4);
pub const CRYPTO_KDF_SCRYPT_R_UINT64: CryptoKdf_ParamType = CryptoKdf_ParamType(5);
pub const CRYPTO_KDF_SCRYPT_P_UINT64: CryptoKdf_ParamType = CryptoKdf_ParamType(6);
pub const CRYPTO_KDF_SCRYPT_MAX_MEM_UINT64: CryptoKdf_ParamType = CryptoKdf_ParamType(7);
}
#[repr(transparent)]
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct CryptoKdf_ParamType(pub ::core::ffi::c_uint);
extern "C" {
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoKdfParams_Create(
algoName: *const ::core::ffi::c_char,
params: *mut *mut OH_CryptoKdfParams,
) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoKdfParams_SetParam(
params: *mut OH_CryptoKdfParams,
type_: CryptoKdf_ParamType,
value: *mut Crypto_DataBlob,
) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoKdfParams_Destroy(params: *mut OH_CryptoKdfParams);
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoKdf_Create(
algoName: *const ::core::ffi::c_char,
ctx: *mut *mut OH_CryptoKdf,
) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoKdf_Derive(
ctx: *mut OH_CryptoKdf,
params: *const OH_CryptoKdfParams,
keyLen: ::core::ffi::c_int,
key: *mut Crypto_DataBlob,
) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoKdf_Destroy(ctx: *mut OH_CryptoKdf);
}