Function psa_crypto::operations::key_agreement::raw_key_agreement
source · pub fn raw_key_agreement(
alg: RawKeyAgreement,
key_id: Id,
peer_key: &[u8],
output: &mut [u8]
) -> Result<usize>
Expand description
Perform a key agreement and return the raw shared secret.
Example
use psa_crypto::operations::{key_agreement, key_management};
use psa_crypto::types::key::{Attributes, Type, Lifetime, Policy, UsageFlags, EccFamily};
use psa_crypto::types::algorithm::{KeyAgreement, RawKeyAgreement};
let alg = RawKeyAgreement::Ecdh;
psa_crypto::init().unwrap();
let my_key = key_management::import(attributes, None, &OUR_KEY_DATA).unwrap();
let mut output = vec![0; attributes.raw_key_agreement_output_size(alg).unwrap()];
let size = key_agreement::raw_key_agreement(alg, my_key, &PEER_PUBLIC_KEY, &mut output).unwrap();
output.resize(size, 0);