Algorithms

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

Collaboration diagram for Algorithms:

## Functions

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_decrypter_type>>
stream::detail::range_cipher_impl< stream::detail::value_cipher_impl< CipherAccumulator > > nil::crypto3::decrypt (const SinglePassRange &r, const KeyRange &key)

template<typename StreamCipher , typename SinglePassRange , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_decrypter_type>>
OutputAccumulator & nil::crypto3::decrypt (const SinglePassRange &r, OutputAccumulator &acc)

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename OutputIterator >
OutputIterator nil::crypto3::decrypt (const SinglePassRange &rng, const KeyRange &key, OutputIterator out)

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_decrypter_type>>
stream::detail::range_cipher_impl< stream::detail::value_cipher_impl< CipherAccumulator > > nil::crypto3::decrypt (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last)

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename OutputIterator >
OutputIterator nil::crypto3::decrypt (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last, OutputIterator out)

template<typename StreamCipher , typename InputIterator , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_decrypter_type>>
OutputAccumulator & nil::crypto3::decrypt (InputIterator first, InputIterator last, OutputAccumulator &acc)

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
stream::detail::range_cipher_impl< stream::detail::value_cipher_impl< CipherAccumulator > > nil::crypto3::encrypt (const SinglePassRange &r, const KeyRange &key)

template<typename StreamCipher , typename SinglePassRange , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
OutputAccumulator & nil::crypto3::encrypt (const SinglePassRange &r, OutputAccumulator &acc)

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename OutputIterator >
OutputIterator nil::crypto3::encrypt (const SinglePassRange &rng, const KeyRange &key, OutputIterator out)

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
stream::detail::range_cipher_impl< stream::detail::value_cipher_impl< CipherAccumulator > > nil::crypto3::encrypt (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last)

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename OutputIterator >
OutputIterator nil::crypto3::encrypt (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last, OutputIterator out)

template<typename StreamCipher , typename InputIterator , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
OutputAccumulator & nil::crypto3::encrypt (InputIterator first, InputIterator last, OutputAccumulator &acc)

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
stream::detail::range_cipher_impl< stream::detail::value_cipher_impl< CipherAccumulator > > nil::crypto3::seek (const SinglePassRange &r, const KeyRange &key)

template<typename StreamCipher , typename SinglePassRange , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
OutputAccumulator & nil::crypto3::seek (const SinglePassRange &r, OutputAccumulator &acc)

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename OutputIterator >
OutputIterator nil::crypto3::seek (const SinglePassRange &rng, const KeyRange &key, OutputIterator out)

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
stream::detail::range_cipher_impl< stream::detail::value_cipher_impl< CipherAccumulator > > nil::crypto3::seek (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last)

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename OutputIterator >
OutputIterator nil::crypto3::seek (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last, OutputIterator out)

template<typename StreamCipher , typename InputIterator , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
OutputAccumulator & nil::crypto3::seek (InputIterator first, InputIterator last, OutputAccumulator &acc)

## Detailed Description

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

## ◆ decrypt() [1/6]

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_decrypter_type>>
 stream::detail::range_cipher_impl > nil::crypto3::decrypt ( const SinglePassRange & r, const KeyRange & key )
Template Parameters
 StreamCipher SinglePassRange KeyRange CipherAccumulator
Parameters
 r key
Returns

## ◆ decrypt() [2/6]

template<typename StreamCipher , typename SinglePassRange , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_decrypter_type>>
 OutputAccumulator& nil::crypto3::decrypt ( const SinglePassRange & r, OutputAccumulator & acc )
Template Parameters
 StreamCipher SinglePassRange OutputAccumulator
Parameters
 r acc
Returns

## ◆ decrypt() [3/6]

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename OutputIterator >
 OutputIterator nil::crypto3::decrypt ( const SinglePassRange & rng, const KeyRange & key, OutputIterator out )
Template Parameters
 StreamCipher SinglePassRange @tpatam KeyRange OutputIterator
Parameters
 rng key out
Returns

## ◆ decrypt() [4/6]

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_decrypter_type>>
 stream::detail::range_cipher_impl > nil::crypto3::decrypt ( InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last )
Template Parameters
 StreamCipher InputIterator KeyIterator CipherAccumulator
Parameters
 first last key_first key_last
Returns

## ◆ decrypt() [5/6]

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename OutputIterator >
 OutputIterator nil::crypto3::decrypt ( InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last, OutputIterator out )
Template Parameters
 StreamCipher InputIterator KeyIterator OutputIterator
Parameters
 first last key_first key_last out
Returns

## ◆ decrypt() [6/6]

template<typename StreamCipher , typename InputIterator , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_decrypter_type>>
 OutputAccumulator& nil::crypto3::decrypt ( InputIterator first, InputIterator last, OutputAccumulator & acc )
Template Parameters
 StreamCipher InputIterator OutputAccumulator
Parameters
 first last acc
Returns

## ◆ encrypt() [1/6]

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
 stream::detail::range_cipher_impl > nil::crypto3::encrypt ( const SinglePassRange & r, const KeyRange & key )
Template Parameters
 StreamCipher SinglePassRange KeyRange CipherAccumulator
Parameters
 r key
Returns

## ◆ encrypt() [2/6]

template<typename StreamCipher , typename SinglePassRange , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
 OutputAccumulator& nil::crypto3::encrypt ( const SinglePassRange & r, OutputAccumulator & acc )
Template Parameters
 StreamCipher SinglePassRange OutputAccumulator
Parameters
 r acc
Returns

## ◆ encrypt() [3/6]

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename OutputIterator >
 OutputIterator nil::crypto3::encrypt ( const SinglePassRange & rng, const KeyRange & key, OutputIterator out )
Template Parameters
 StreamCipher SinglePassRange KeyRange OutputIterator
Parameters
 rng key out
Returns

## ◆ encrypt() [4/6]

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
 stream::detail::range_cipher_impl > nil::crypto3::encrypt ( InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last )
Template Parameters
 StreamCipher InputIterator KeyIterator CipherAccumulator
Parameters
 first last key_first key_last
Returns

## ◆ encrypt() [5/6]

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename OutputIterator >
 OutputIterator nil::crypto3::encrypt ( InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last, OutputIterator out )
Template Parameters
 StreamCipher InputIterator KeyIterator OutputIterator
Parameters
 first last key_first key_last out
Returns

## ◆ encrypt() [6/6]

template<typename StreamCipher , typename InputIterator , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
 OutputAccumulator& nil::crypto3::encrypt ( InputIterator first, InputIterator last, OutputAccumulator & acc )
Template Parameters
 StreamCipher InputIterator OutputAccumulator
Parameters
 first last acc
Returns

## ◆ seek() [1/6]

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
 stream::detail::range_cipher_impl > nil::crypto3::seek ( const SinglePassRange & r, const KeyRange & key )
Template Parameters
 StreamCipher SinglePassRange KeyRange CipherAccumulator
Parameters
 r key
Returns

## ◆ seek() [2/6]

template<typename StreamCipher , typename SinglePassRange , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
 OutputAccumulator& nil::crypto3::seek ( const SinglePassRange & r, OutputAccumulator & acc )
Template Parameters
 StreamCipher SinglePassRange OutputAccumulator
Parameters
 r acc
Returns

## ◆ seek() [3/6]

template<typename StreamCipher , typename SinglePassRange , typename KeyRange , typename OutputIterator >
 OutputIterator nil::crypto3::seek ( const SinglePassRange & rng, const KeyRange & key, OutputIterator out )
Template Parameters
 StreamCipher SinglePassRange KeyRange OutputIterator
Parameters
 rng key out
Returns

## ◆ seek() [4/6]

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename CipherAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
 stream::detail::range_cipher_impl > nil::crypto3::seek ( InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last )
Template Parameters
 StreamCipher InputIterator CipherState
Parameters
 first last key_first key_last
Returns

## ◆ seek() [5/6]

template<typename StreamCipher , typename InputIterator , typename KeyIterator , typename OutputIterator >
 OutputIterator nil::crypto3::seek ( InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last, OutputIterator out )
Template Parameters
 StreamCipher InputIterator KeyIterator OutputIterator
Parameters
 first last out
Returns

## ◆ seek() [6/6]

template<typename StreamCipher , typename InputIterator , typename OutputAccumulator = typename stream::stream_accumulator<typename StreamCipher::stream_encrypter_type>>
 OutputAccumulator& nil::crypto3::seek ( InputIterator first, InputIterator last, OutputAccumulator & acc )
Template Parameters
 StreamCipher InputIterator OutputAccumulator
Parameters
 first last out
Returns