plucky (3) Digest.3o.gz

Provided by: ocaml-man_5.3.0-2_all bug

NAME

       Digest - Message digest.

Module

       Module   Digest

Documentation

       Module Digest
        : sig end

       Message digest.

       This  module provides functions to compute 'digests', also known as 'hashes', of arbitrary-length strings
       or files.  The supported hashing algorithms are BLAKE2 and MD5.

   Basic functions
       The functions in this section use the MD5 hash function to produce 128-bit digests (16  bytes).   MD5  is
       not  cryptographically  secure.   Hence,  these  functions  should  not  be  used  for security-sensitive
       applications.  The BLAKE2 functions below are cryptographically secure.

       type t = string

       The type of digests: 16-byte strings.

       val compare : t -> t -> int

       The  comparison  function  for  16-byte  digests,  with  the  same  specification  as  compare  and   the
       implementation  shared  with  String.compare  .  Along with the type t , this function compare allows the
       module Digest to be passed as argument to the functors Set.Make and Map.Make .

       Since 4.00

       val equal : t -> t -> bool

       The equal function for 16-byte digests.

       Since 4.03

       val string : string -> t

       Return the digest of the given string.

       val bytes : bytes -> t

       Return the digest of the given byte sequence.

       Since 4.02

       val substring : string -> int -> int -> t

       Digest.substring s ofs len returns the digest of the substring of s starting at index ofs and  containing
       len characters.

       val subbytes : bytes -> int -> int -> t

       Digest.subbytes s ofs len returns the digest of the subsequence of s starting at index ofs and containing
       len bytes.

       Since 4.02

       val channel : in_channel -> int -> t

       If len is nonnegative, Digest.channel ic len reads len characters  from  channel  ic  and  returns  their
       digest,  or  raises  End_of_file  if  end-of-file  is  reached before len characters are read.  If len is
       negative, Digest.channel ic len reads all characters from ic until  end-of-file  is  reached  and  return
       their digest.

       val file : string -> t

       Return the digest of the file whose name is given.

       val output : out_channel -> t -> unit

       Write a digest on the given output channel.

       val input : in_channel -> t

       Read a digest from the given input channel.

       val to_hex : t -> string

       Return the printable hexadecimal representation of the given digest.

       Raises Invalid_argument if the argument is not exactly 16 bytes.

       val of_hex : string -> t

       Convert a hexadecimal representation back into the corresponding digest.

       Since 5.2

       Raises Invalid_argument if the argument is not exactly 32 hexadecimal characters.

       val from_hex : string -> t

       Same function as Digest.of_hex .

       Since 4.00

   Generic interface
       module type S = sig end

       The  signature  for  a  hash function that produces digests of length hash_length from character strings,
       byte arrays, and files.

       Since 5.2

   Specific hash functions
       module BLAKE128 : S

       BLAKE128 is the BLAKE2b hash function producing  128-bit  (16-byte)  digests.   It  is  cryptographically
       secure.  However, the small size of the digests enables brute-force attacks in 2{^64} attempts.

       Since 5.2

       module BLAKE256 : S

       BLAKE256  is  the  BLAKE2b  hash  function  producing 256-bit (32-byte) digests.  It is cryptographically
       secure, and the digests are large enough to thwart brute-force attacks.

       Since 5.2

       module BLAKE512 : S

       BLAKE512 is the BLAKE2b hash function producing  512-bit  (64-byte)  digests.   It  is  cryptographically
       secure, and the digests are large enough to thwart brute-force attacks.

       Since 5.2

       module MD5 : S

       MD5  is the MD5 hash function.  It produces 128-bit (16-byte) digests and is not cryptographically secure
       at all. It should be used only for compatibility with earlier designs that mandate the use of MD5.

       Since 5.2