Package okio
Class HashingSink
java.lang.Object
okio.ForwardingSink
okio.HashingSink
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
,Sink
A sink that computes a hash of the full stream of bytes it has accepted. To use, create an
instance with your preferred hash algorithm. Write all of the data to the sink and then call
hash()
to compute the final hash value.
In this example we use HashingSink
with a BufferedSink
to make writing to the
sink easier.
HashingSink hashingSink = HashingSink.sha256(s);
BufferedSink bufferedSink = Okio.buffer(hashingSink);
... // Write to bufferedSink and either flush or close it.
ByteString hash = hashingSink.hash();
-
Method Summary
Modifier and TypeMethodDescriptionfinal ByteString
hash()
Returns the hash of the bytes accepted thus far and resets the internal state of this sink.static HashingSink
hmacSha1
(Sink sink, ByteString key) Returns a sink that uses the obsolete SHA-1 HMAC algorithm to produce 160-bit hashes.static HashingSink
hmacSha256
(Sink sink, ByteString key) Returns a sink that uses the SHA-256 HMAC algorithm to produce 256-bit hashes.static HashingSink
hmacSha512
(Sink sink, ByteString key) Returns a sink that uses the SHA-512 HMAC algorithm to produce 512-bit hashes.static HashingSink
Returns a sink that uses the obsolete MD5 hash algorithm to produce 128-bit hashes.static HashingSink
Returns a sink that uses the obsolete SHA-1 hash algorithm to produce 160-bit hashes.static HashingSink
Returns a sink that uses the SHA-256 hash algorithm to produce 256-bit hashes.static HashingSink
Returns a sink that uses the SHA-512 hash algorithm to produce 512-bit hashes.void
RemovesbyteCount
bytes fromsource
and appends them to this.
-
Method Details
-
md5
Returns a sink that uses the obsolete MD5 hash algorithm to produce 128-bit hashes. -
sha1
Returns a sink that uses the obsolete SHA-1 hash algorithm to produce 160-bit hashes. -
sha256
Returns a sink that uses the SHA-256 hash algorithm to produce 256-bit hashes. -
sha512
Returns a sink that uses the SHA-512 hash algorithm to produce 512-bit hashes. -
hmacSha1
Returns a sink that uses the obsolete SHA-1 HMAC algorithm to produce 160-bit hashes. -
hmacSha256
Returns a sink that uses the SHA-256 HMAC algorithm to produce 256-bit hashes. -
hmacSha512
Returns a sink that uses the SHA-512 HMAC algorithm to produce 512-bit hashes. -
write
Description copied from interface:Sink
RemovesbyteCount
bytes fromsource
and appends them to this.- Specified by:
write
in interfaceSink
- Overrides:
write
in classForwardingSink
- Throws:
IOException
-
hash
Returns the hash of the bytes accepted thus far and resets the internal state of this sink.Warning: This method is not idempotent. Each time this method is called its internal state is cleared. This starts a new hash with zero bytes accepted.
-