digestpp 1.0
C++11 header-only message digest library
Loading...
Searching...
No Matches
Kupyna

Kupyna Algorithm More...

Typedefs

typedef hasher< detail::kupyna_provider<> > digestpp::kupyna
 Kupyna hash function.
 
template<size_t N>
using digestpp::static_size::kupyna = hasher<detail::kupyna_provider<N>>
 Kupyna hash function (static-size version)
 

Detailed Description

Kupyna Algorithm

Typedef Documentation

◆ kupyna [1/2]

Kupyna hash function.

Ukrainian national standard hash function (DSTU 7564:2014). Designed by Roman Oliynykov, Ivan Gorbenko, Oleksandr Kazymyrov, Victor Ruzhentsev, Oleksandr Kuznetsov, Yurii Gorbenko, Artem Boiko, Oleksandr Dyrda, Viktor Dolgov, and Andrii Pushkaryov.

Kupyna is based on a Merkle-Damgård construction with Davies-Meyer compression function, using an AES-like block cipher as the internal primitive.

Designed to replace GOST R 34.11-94 in Ukrainian government and military applications. The algorithm provides good security margins and competitive performance.

Ukrainian national standard (DSTU 7564:2014).

Type:
Cryptographic hash function.
Output size:
256 / 512 bits
Default size:
none
Exceptions
std::runtime_errorif the requested digest size is not supported
Example:
// Output a 256-bit Kupyna digest of a string
hasher.absorb("The quick brown fox jumps over the lazy dog");
std::cout << hasher.hexdigest() << '\n';
Main class template implementing the public API for hashing.
Definition hasher.hpp:38
std::string hexdigest() const
Return hex digest of absorbed data.
Definition hasher.hpp:372
hasher & absorb(const T *data, size_t len)
Absorbs bytes from a C-style pointer to character buffer.
Definition hasher.hpp:86
Example output:
996899f2d7422ceaf552475036b2dc120607eff538abf2b8dff471a98a4740c6
See also
hasher, groestl, digestpp::static_size::kupyna

◆ kupyna [2/2]

Kupyna hash function (static-size version)

Variant of Kupyna with output size specified as template parameter.

Type:
Cryptographic hash function.
Output size:
256 / 512 bits
Example:
// Output a 256-bit Kupyna digest of a string
hasher.absorb("The quick brown fox jumps over the lazy dog");
std::cout << hasher.hexdigest() << '\n';
Example output:
996899f2d7422ceaf552475036b2dc120607eff538abf2b8dff471a98a4740c6
See also
hasher, groestl, digestpp::kupyna