abstract class Digest

Overview

Digest is the base type of hashing algorithms like Digest::MD5, Digest::SHA1, Digest::SHA256, or Digest::SHA512.

A Digest instance holds the state of an ongoing hash calculation. It can receive new data to include in the hash via #update, #<<, or #file. Once all data is included, use #final to get the hash. This will mark the ongoing calculation as finished. A finished calculation can't receive new data.

A digest.dup.final call may be used to get an intermediate hash value.

Use #reset to reuse the Digest instance for a new calculation.

Direct Known Subclasses

Defined in:

digest/digest.cr

Instance Method Summary

Instance methods inherited from class Reference

==(other : self)
==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==
, dup dup, hash(hasher) hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil) same?
, to_s(io : IO) : Nil to_s

Constructor methods inherited from class Reference

new new

Instance methods inherited from class Object

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other) ===
, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash
, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?
, inspect(io : IO) : Nil
inspect : String inspect
, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json
, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json
, to_s(io : IO) : Nil
to_s : String to_s
, to_yaml(io : IO) : Nil
to_yaml : String to_yaml
, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

Class methods inherited from class Object

from_json(string_or_io, root : String)
from_json(string_or_io) from_json
, from_yaml(string_or_io : String | IO) from_yaml

Instance Method Detail

def <<(data) : selfSource

Reads the io's data and updates the digest with it.

abstract def digest_size : Int32Source

Returns the digest output size in bytes.

def file(file_name : Path | String) : selfSource

Reads the file's content and updates the digest with it.

def final(dst : Bytes) : BytesSource

def final : BytesSource

Returns the final digest output.

This method can only be called once and raises FinalizedError on subsequent calls.

NOTE .dup.final call may be used to get an intermediate hash value.

abstract def final_impl(dst : Bytes) : NilSource

Stores the output digest of #digest_size bytes in dst.

def reset : selfSource

abstract def reset_impl : NilSource

Resets the object to it's initial state.

def update(data : Bytes) : selfSource

def update(io : IO) : selfSource

Reads the io's data and updates the digest with it.

def update(data) : selfSource

abstract def update_impl(data : Bytes) : NilSource

Hashes data incrementally.

© 2012–2021 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/1.2.1/Digest.html