A hashing algorithm
A tap that buffers the characters before writing to the digest
The base class for a hashing algorithm
A class designed for accumulating the values in a hash using a fold.
Represents a hash
A helper for generating crypto hashes from a value
An InputStream that generates a hash
A digest that allows additional data to be added to it
The base class for plain text representations
A Reader that generates a hash
Wraps a source and generates a Source as data flows through it
A tap is a specialized digest that decorates streams
A helper class for performing some operation with various algorithms
Performs some operation using a plain text value
A class designed for accumulating the values in a hash using a fold.
This class attempts to enforce ordered digest creation by rendering each instance unusable the each time you add a value. Adding a value then returns a new instance, which must be used for adding more data.
Presenting an API like this allows for more efficient code, while still maintaining an outwardly immutable API. It also helps prevent race conditions by ensuring continued forward motion.