pub struct HashFunction { /* private fields */ }Expand description
A hash function object
Implementations§
Source§impl HashFunction
impl HashFunction
Sourcepub fn new(name: &str) -> Result<HashFunction>
pub fn new(name: &str) -> Result<HashFunction>
Sourcepub fn algo_name(&self) -> Result<String>
pub fn algo_name(&self) -> Result<String>
Return the name of this algorithm which may or may not exactly match what was provided to new()
§Examples
let hash = botan::HashFunction::new("SHA-384").unwrap();
assert_eq!(hash.algo_name().unwrap(), "SHA-384");Sourcepub fn output_length(&self) -> Result<usize>
pub fn output_length(&self) -> Result<usize>
Return the output length of the hash function, in bytes
§Examples
let hash = botan::HashFunction::new("SHA-256").unwrap();
assert_eq!(hash.output_length().unwrap(), 32);Sourcepub fn block_size(&self) -> Result<usize>
pub fn block_size(&self) -> Result<usize>
Return the block length of the hash function, in bytes
§Examples
let hash = botan::HashFunction::new("SHA-256").unwrap();
assert_eq!(hash.block_size().unwrap(), 64);Sourcepub fn update(&mut self, data: &[u8]) -> Result<()>
pub fn update(&mut self, data: &[u8]) -> Result<()>
Add data to a hash computation, may be called many times
§Examples
let mut hash = botan::HashFunction::new("SHA-256").unwrap();
hash.update(&[1,2,3]).unwrap();
hash.update(&[4,5,6]).unwrap();Sourcepub fn finish(&mut self) -> Result<Vec<u8>>
pub fn finish(&mut self) -> Result<Vec<u8>>
Finalize the computation, returning the hash of the message
§Examples
let mut hash = botan::HashFunction::new("SHA-256").unwrap();
hash.update(&[1,2,3]).unwrap();
hash.update(&[4,5,6]).unwrap();
let digest = hash.finish().unwrap();Sourcepub fn clear(&mut self) -> Result<()>
pub fn clear(&mut self) -> Result<()>
Clear the internal state of the hash function. It acts as if it was newly created, and is ready to compute a new digest. Basically the same as calling final, but without returning a result.
Sourcepub fn duplicate(&self) -> Result<HashFunction>
pub fn duplicate(&self) -> Result<HashFunction>
Copy hash object state to a new object, allowing prefixes of messages to be hashed. This function is also called by clone.
§Errors
Should not fail but might due to unexpected error
§Examples
let mut hash = botan::HashFunction::new("SHA-256").unwrap();
hash.update(&[1,2,3]);
let mut hash2 = hash.duplicate().unwrap();
hash2.update(&[4,5,6]);
let result1 = hash.finish().unwrap(); // hash of 1,2,3
let result2 = hash2.finish().unwrap(); // hash of 1,2,3,4,5,6Trait Implementations§
Source§impl Clone for HashFunction
impl Clone for HashFunction
Source§fn clone(&self) -> HashFunction
fn clone(&self) -> HashFunction
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HashFunction
impl Debug for HashFunction
Source§impl Drop for HashFunction
impl Drop for HashFunction
impl Send for HashFunction
impl Sync for HashFunction
Auto Trait Implementations§
impl Freeze for HashFunction
impl RefUnwindSafe for HashFunction
impl Unpin for HashFunction
impl UnwindSafe for HashFunction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more