JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::Whirlpool Class Reference

Whirlpool hash class. More...

#include <juce_Whirlpool.h>

Collaboration diagram for juce::Whirlpool:

Public Member Functions

 Whirlpool () noexcept
 Creates an empty Whirlpool object. More...
 
 Whirlpool (CharPointer_UTF8 utf8Text) noexcept
 Creates a checksum from a UTF-8 buffer. More...
 
 Whirlpool (const File &file)
 Reads a file and generates the hash of its contents. More...
 
 Whirlpool (const MemoryBlock &)
 Creates a hash from a block of raw data. More...
 
 Whirlpool (const void *data, size_t numBytes)
 Creates a hash from a block of raw data. More...
 
 Whirlpool (const Whirlpool &other) noexcept
 Creates a copy of another Whirlpool. More...
 
 Whirlpool (InputStream &input, int64 maxBytesToRead=-1)
 Creates a hash from the contents of a stream. More...
 
 ~Whirlpool () noexcept
 Destructor. More...
 
MemoryBlock getRawData () const
 Returns the hash as a 64-byte block of data. More...
 
bool operator!= (const Whirlpool &) const noexcept
 
Whirlpooloperator= (const Whirlpool &other) noexcept
 Copies another Whirlpool. More...
 
bool operator== (const Whirlpool &) const noexcept
 
String toHexString () const
 Returns the checksum as a 128-digit hex string. More...
 

Private Member Functions

void process (const void *, size_t)
 

Private Attributes

uint8 result [64]
 

Detailed Description

Whirlpool hash class.

The Whirlpool algorithm was developed by Paulo S. L. M. Barreto and Vincent Rijmen.

See P.S.L.M. Barreto, V. Rijmen, "The Whirlpool hashing function" NESSIE submission, 2000 (tweaked version, 2001), https://www.cosic.esat.kuleuven.ac.be/nessie/workshop/submissions/whirlpool.zip

See also
SHA256, MD5

@tags{Cryptography}

Constructor & Destructor Documentation

◆ Whirlpool() [1/7]

juce::Whirlpool::Whirlpool ( )
noexcept

Creates an empty Whirlpool object.

The default constructor just creates a hash filled with zeros. (This is not equal to the hash of an empty block of data).

◆ ~Whirlpool()

juce::Whirlpool::~Whirlpool ( )
noexcept

Destructor.

◆ Whirlpool() [2/7]

juce::Whirlpool::Whirlpool ( const Whirlpool other)
noexcept

Creates a copy of another Whirlpool.

◆ Whirlpool() [3/7]

juce::Whirlpool::Whirlpool ( const MemoryBlock )
explicit

Creates a hash from a block of raw data.

◆ Whirlpool() [4/7]

juce::Whirlpool::Whirlpool ( const void *  data,
size_t  numBytes 
)

Creates a hash from a block of raw data.

◆ Whirlpool() [5/7]

juce::Whirlpool::Whirlpool ( InputStream input,
int64  maxBytesToRead = -1 
)

Creates a hash from the contents of a stream.

This will read from the stream until the stream is exhausted, or until maxBytesToRead bytes have been read. If maxBytesToRead is negative, the entire stream will be read.

◆ Whirlpool() [6/7]

juce::Whirlpool::Whirlpool ( const File file)
explicit

Reads a file and generates the hash of its contents.

If the file can't be opened, the hash will be left uninitialised (i.e. full of zeros).

◆ Whirlpool() [7/7]

juce::Whirlpool::Whirlpool ( CharPointer_UTF8  utf8Text)
explicitnoexcept

Creates a checksum from a UTF-8 buffer.

E.g.

Whirlpool checksum (myString.toUTF8());

Member Function Documentation

◆ getRawData()

MemoryBlock juce::Whirlpool::getRawData ( ) const

Returns the hash as a 64-byte block of data.

◆ operator!=()

bool juce::Whirlpool::operator!= ( const Whirlpool ) const
noexcept

◆ operator=()

Whirlpool& juce::Whirlpool::operator= ( const Whirlpool other)
noexcept

Copies another Whirlpool.

◆ operator==()

bool juce::Whirlpool::operator== ( const Whirlpool ) const
noexcept

◆ process()

void juce::Whirlpool::process ( const void *  ,
size_t   
)
private

◆ toHexString()

String juce::Whirlpool::toHexString ( ) const

Returns the checksum as a 128-digit hex string.

Member Data Documentation

◆ result

uint8 juce::Whirlpool::result[64]
private

The documentation for this class was generated from the following file:
juce::Whirlpool::Whirlpool
Whirlpool() noexcept
Creates an empty Whirlpool object.