diff options
Diffstat (limited to 'openpgp/src/crypto/backend/cng/kdf.rs')
-rw-r--r-- | openpgp/src/crypto/backend/cng/kdf.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/openpgp/src/crypto/backend/cng/kdf.rs b/openpgp/src/crypto/backend/cng/kdf.rs new file mode 100644 index 00000000..ac98a496 --- /dev/null +++ b/openpgp/src/crypto/backend/cng/kdf.rs @@ -0,0 +1,20 @@ +use hkdf::Hkdf; +use sha2::Sha256; + +use crate::{ + Result, + crypto::{ + SessionKey, + backend::interface::Kdf, + }, +}; + +impl Kdf for super::Backend { + fn hkdf_sha256(ikm: &SessionKey, salt: Option<&[u8]>, info: &[u8], + okm: &mut SessionKey) + -> Result<()> + { + Ok(Hkdf::<Sha256>::new(salt, &ikm).expand(info, okm) + .map_err(|e| crate::Error::InvalidOperation(e.to_string()))?) + } +} |