#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
use crate::asym_key::{OH_CryptoPrivKey, OH_CryptoPubKey};
use crate::common::{CryptoResult, Crypto_DataBlob};
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[repr(C)]
pub struct OH_CryptoKeyAgreement {
_unused: [u8; 0],
}
extern "C" {
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoKeyAgreement_Create(
algoName: *const ::core::ffi::c_char,
ctx: *mut *mut OH_CryptoKeyAgreement,
) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoKeyAgreement_GenerateSecret(
ctx: *mut OH_CryptoKeyAgreement,
privkey: *mut OH_CryptoPrivKey,
pubkey: *mut OH_CryptoPubKey,
secret: *mut Crypto_DataBlob,
) -> CryptoResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_CryptoKeyAgreement_Destroy(ctx: *mut OH_CryptoKeyAgreement);
}