#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
use crate::common::{CryptoResult, Crypto_DataBlob};
use crate::sym_key::OH_CryptoSymKey;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[repr(C)]
pub struct OH_CryptoMac {
_unused: [u8; 0],
}
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
impl CryptoMac_ParamType {
pub const CRYPTO_MAC_DIGEST_NAME_STR: CryptoMac_ParamType = CryptoMac_ParamType(0);
pub const CRYPTO_MAC_CIPHER_NAME_STR: CryptoMac_ParamType = CryptoMac_ParamType(1);
}
#[repr(transparent)]
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct CryptoMac_ParamType(pub ::core::ffi::c_uint);
extern "C" {
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoMac_Create(
algoName: *const ::core::ffi::c_char,
ctx: *mut *mut OH_CryptoMac,
) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoMac_SetParam(
ctx: *mut OH_CryptoMac,
type_: CryptoMac_ParamType,
value: *const Crypto_DataBlob,
) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoMac_Init(ctx: *mut OH_CryptoMac, key: *const OH_CryptoSymKey) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoMac_Update(ctx: *mut OH_CryptoMac, in_: *const Crypto_DataBlob)
-> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoMac_Final(ctx: *mut OH_CryptoMac, out: *mut Crypto_DataBlob) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoMac_GetLength(ctx: *mut OH_CryptoMac, length: *mut u32) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoMac_Destroy(ctx: *mut OH_CryptoMac);
}