Algorithms are meant to provide hashing interface similar to STL algorithms' one. More...

+ Collaboration diagram for Algorithms:

Functions

template<typename Hash , typename SinglePassRange , typename HashAccumulator = accumulator_set<Hash>>
hashes::detail::range_hash_impl< hashes::detail::value_hash_impl< HashAccumulator > > nil::crypto3::hash (const SinglePassRange &r)
 
template<typename Hash , typename SinglePassRange , typename HashAccumulator = accumulator_set<Hash>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< HashAccumulator >::value, HashAccumulator >::type & nil::crypto3::hash (const SinglePassRange &rng, HashAccumulator &sh)
 
template<typename Hash , typename SinglePassRange , typename OutputIterator >
std::enable_if<::nil::crypto3::detail::is_iterator< OutputIterator >::value, OutputIterator >::type nil::crypto3::hash (const SinglePassRange &rng, OutputIterator out)
 
template<typename Hasher , typename SinglePassRange , typename OutputIterator , typename StreamHash = detail::range_stream_hash_traits<Hasher, SinglePassRange>, typename = typename std::enable_if<detail::is_stream_hash<StreamHash>::value>::type>
OutputIterator nil::crypto3::pbkdf::hash (const SinglePassRange &rng, OutputIterator out, StreamHash sh=StreamHash())
 
template<typename Hasher , typename SinglePassRange , typename StreamHash = detail::range_stream_hash_traits<Hasher, SinglePassRange>, typename = typename std::enable_if<detail::is_stream_hash<StreamHash>::value>::type>
detail::hash< Hasher, SinglePassRange > nil::crypto3::pbkdf::hash (const SinglePassRange &rng, StreamHash sh=StreamHash())
 
template<typename Hash , typename InputIterator , typename HashAccumulator = accumulator_set<Hash>>
hashes::detail::range_hash_impl< hashes::detail::value_hash_impl< typename std::enable_if< boost::accumulators::detail::is_accumulator_set< HashAccumulator >::value, HashAccumulator >::type > > nil::crypto3::hash (InputIterator first, InputIterator last)
 
template<typename Hash , typename InputIterator , typename HashAccumulator = accumulator_set<Hash>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< HashAccumulator >::value, HashAccumulator >::type & nil::crypto3::hash (InputIterator first, InputIterator last, HashAccumulator &sh)
 
template<typename Hash , typename InputIterator , typename OutputIterator >
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type nil::crypto3::hash (InputIterator first, InputIterator last, OutputIterator out)
 
template<typename Hasher , typename InputIterator , typename OutputIterator , typename StreamHash = detail::iterator_stream_hash_traits<Hasher, InputIterator>, typename = typename std::enable_if<detail::is_stream_hash<StreamHash>::value>::type>
OutputIterator nil::crypto3::pbkdf::hash (InputIterator first, InputIterator last, OutputIterator out, StreamHash sh=StreamHash())
 
template<typename Hasher , typename InputIterator , typename StreamHash = detail::iterator_stream_hash_traits<Hasher, InputIterator>, typename = typename std::enable_if<detail::is_stream_hash<StreamHash>::value>::type>
detail::hash< Hasher, InputIterator > nil::crypto3::pbkdf::hash (InputIterator first, InputIterator last, StreamHash sh=StreamHash())
 

Detailed Description

Algorithms are meant to provide hashing interface similar to STL algorithms' one.

Function Documentation

◆ hash() [1/10]

template<typename Hash , typename SinglePassRange , typename HashAccumulator = accumulator_set<Hash>>
hashes::detail::range_hash_impl<hashes::detail::value_hash_impl<HashAccumulator> > nil::crypto3::hash ( const SinglePassRange &  r)
Template Parameters
Hash
SinglePassRange
HashAccumulator
Parameters
r
Returns

◆ hash() [2/10]

template<typename Hash , typename SinglePassRange , typename HashAccumulator = accumulator_set<Hash>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<HashAccumulator>::value, HashAccumulator>::type& nil::crypto3::hash ( const SinglePassRange &  rng,
HashAccumulator &  sh 
)
Template Parameters
Hash
SinglePassRange
HashAccumulator
Parameters
rng
sh
Returns

◆ hash() [3/10]

template<typename Hash , typename SinglePassRange , typename OutputIterator >
std::enable_if<::nil::crypto3::detail::is_iterator<OutputIterator>::value, OutputIterator>::type nil::crypto3::hash ( const SinglePassRange &  rng,
OutputIterator  out 
)
Template Parameters
Hash
SinglePassRange
OutputIterator
Parameters
rng
out
Returns

◆ hash() [4/10]

template<typename Hasher , typename SinglePassRange , typename OutputIterator , typename StreamHash = detail::range_stream_hash_traits<Hasher, SinglePassRange>, typename = typename std::enable_if<detail::is_stream_hash<StreamHash>::value>::type>
OutputIterator nil::crypto3::pbkdf::hash ( const SinglePassRange &  rng,
OutputIterator  out,
StreamHash  sh = StreamHash() 
)
Template Parameters
Hasher
SinglePassRange
OutputIterator
StreamHash
Parameters
rng
out
sh
Returns

◆ hash() [5/10]

template<typename Hasher , typename SinglePassRange , typename StreamHash = detail::range_stream_hash_traits<Hasher, SinglePassRange>, typename = typename std::enable_if<detail::is_stream_hash<StreamHash>::value>::type>
detail::hash<Hasher, SinglePassRange> nil::crypto3::pbkdf::hash ( const SinglePassRange &  rng,
StreamHash  sh = StreamHash() 
)
Template Parameters
Hasher
SinglePassRange
StreamHash
Parameters
rng
sh
Returns

◆ hash() [6/10]

template<typename Hash , typename InputIterator , typename HashAccumulator = accumulator_set<Hash>>
hashes::detail::range_hash_impl<hashes::detail::value_hash_impl<typename std::enable_if< boost::accumulators::detail::is_accumulator_set<HashAccumulator>::value, HashAccumulator>::type> > nil::crypto3::hash ( InputIterator  first,
InputIterator  last 
)
Template Parameters
Hash
InputIterator
HashAccumulator
Parameters
first
last
Returns

◆ hash() [7/10]

template<typename Hash , typename InputIterator , typename HashAccumulator = accumulator_set<Hash>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<HashAccumulator>::value, HashAccumulator>::type& nil::crypto3::hash ( InputIterator  first,
InputIterator  last,
HashAccumulator &  sh 
)
Template Parameters
Hash
InputIterator
HashAccumulator
Parameters
first
last
sh
Returns

◆ hash() [8/10]

template<typename Hash , typename InputIterator , typename OutputIterator >
std::enable_if<!boost::accumulators::detail::is_accumulator_set<OutputIterator>::value, OutputIterator>::type nil::crypto3::hash ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
Template Parameters
Hash
InputIterator
OutputIterator
Parameters
first
last
out
Returns

◆ hash() [9/10]

template<typename Hasher , typename InputIterator , typename OutputIterator , typename StreamHash = detail::iterator_stream_hash_traits<Hasher, InputIterator>, typename = typename std::enable_if<detail::is_stream_hash<StreamHash>::value>::type>
OutputIterator nil::crypto3::pbkdf::hash ( InputIterator  first,
InputIterator  last,
OutputIterator  out,
StreamHash  sh = StreamHash() 
)
Template Parameters
Hasher
InputIterator
OutputIterator
StreamHash
Parameters
first
last
out
sh
Returns

◆ hash() [10/10]

template<typename Hasher , typename InputIterator , typename StreamHash = detail::iterator_stream_hash_traits<Hasher, InputIterator>, typename = typename std::enable_if<detail::is_stream_hash<StreamHash>::value>::type>
detail::hash<Hasher, InputIterator> nil::crypto3::pbkdf::hash ( InputIterator  first,
InputIterator  last,
StreamHash  sh = StreamHash() 
)
Template Parameters
Hasher
InputIterator
StreamHash
Parameters
first
last
sh
Returns