From 90e8dc67395797b67d51f1b23f4b74f84de0fef2 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Wed, 25 Mar 2020 15:18:28 +0100 Subject: openpgp: Provide crypto::hash_buffered_reader. --- openpgp/src/crypto/mod.rs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'openpgp/src/crypto/mod.rs') diff --git a/openpgp/src/crypto/mod.rs b/openpgp/src/crypto/mod.rs index d1b9f540..3cb029dd 100644 --- a/openpgp/src/crypto/mod.rs +++ b/openpgp/src/crypto/mod.rs @@ -4,6 +4,7 @@ use std::io::Read; use std::ops::{Deref, DerefMut}; use std::fmt; +use buffered_reader::BufferedReader; use nettle::random::{Random, Yarrow}; use crate::types::HashAlgorithm; @@ -171,18 +172,28 @@ impl Password { /// [`DetachedVerifier`]: ../parse/stream/struct.DetachedVerifier.html pub fn hash_reader(reader: R, algos: &[HashAlgorithm]) -> Result> +{ + let reader + = buffered_reader::Generic::with_cookie( + reader, None, Default::default()); + hash_buffered_reader(reader, algos) +} + +/// Hashes the given buffered reader. +/// +/// This can be used to verify detached signatures. For a more +/// convenient method, see [`DetachedVerifier`]. +/// +/// [`DetachedVerifier`]: ../parse/stream/struct.DetachedVerifier.html +pub(crate) fn hash_buffered_reader(reader: R, algos: &[HashAlgorithm]) + -> Result> + where R: BufferedReader, { use std::mem; use crate::parse::HashedReader; use crate::parse::HashesFor; - use buffered_reader::BufferedReader; - - let reader - = buffered_reader::Generic::with_cookie( - reader, None, Default::default()); - let mut reader = HashedReader::new(reader, HashesFor::Signature, algos.to_vec()); -- cgit v1.2.3