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

Collaboration diagram for Algorithms:

## Functions

template<typename Kdf , typename SinglePassRange , typename KdfAccumulator = typename kdf::accumulator_set<Kdf>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< KdfAccumulator >::value, KdfAccumulator >::type & nil::crypto3::kdf::derive (const SinglePassRange &rng, KdfAccumulator &kdf)

template<typename Kdf , typename SinglePassRange , typename OutputIterator >
OutputIterator nil::crypto3::kdf::derive (const SinglePassRange &rng, OutputIterator out)

template<typename Kdf , typename InputIterator , typename KdfAccumulator = typename kdf::accumulator_set<Kdf>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< KdfAccumulator >::value, KdfAccumulator >::type & nil::crypto3::kdf::derive (InputIterator first, InputIterator last, KdfAccumulator &acc)

template<typename Kdf , typename InputIterator , typename OutputIterator >
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type nil::crypto3::kdf::derive (InputIterator first, InputIterator last, OutputIterator out)

## Detailed Description

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

## ◆ derive() [1/4]

template<typename Kdf , typename SinglePassRange , typename KdfAccumulator = typename kdf::accumulator_set<Kdf>>
 std::enable_if::value, KdfAccumulator>::type& nil::crypto3::kdf::derive ( const SinglePassRange & rng, KdfAccumulator & kdf )
Template Parameters
 Kdf SinglePassRange StreamKdf
Parameters
 rng sh
Returns

## ◆ derive() [2/4]

template<typename Kdf , typename SinglePassRange , typename OutputIterator >
 OutputIterator nil::crypto3::kdf::derive ( const SinglePassRange & rng, OutputIterator out )
Template Parameters
 Kdf SinglePassRange OutputIterator StreamKdf
Parameters
 rng out sh
Returns

## ◆ derive() [3/4]

template<typename Kdf , typename InputIterator , typename KdfAccumulator = typename kdf::accumulator_set<Kdf>>
 std::enable_if::value, KdfAccumulator>::type& nil::crypto3::kdf::derive ( InputIterator first, InputIterator last, KdfAccumulator & acc )
Template Parameters
 Kdf InputIterator StreamKdf
Parameters
 first last sh
Returns

## ◆ derive() [4/4]

template<typename Kdf , typename InputIterator , typename OutputIterator >
 std::enable_if::value, OutputIterator>::type nil::crypto3::kdf::derive ( InputIterator first, InputIterator last, OutputIterator out )
Template Parameters
 Kdf InputIterator OutputIterator StreamKdf
Parameters
 first last out sh
Returns