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

Functions

template<typename BlockCipher , typename InputIterator , typename InputKeyIterator , typename OutputIterator >
OutputIterator nil::crypto3::decrypt (InputIterator first, InputIterator last, InputKeyIterator key_first, InputKeyIterator key_last, OutputIterator out)
 
template<typename BlockCipher , typename InputIterator , typename InputKeyIterator , typename CipherState = typename detail::itr_stream_encrypter_traits< typename BlockCipher::stream_encrypter_type, InputIterator>::type>
detail::range_encrypter_impl< detail::value_encrypter_impl< CipherState > > nil::crypto3::decrypt (InputIterator first, InputIterator last, InputKeyIterator key_first, InputKeyIterator key_last)
 
template<typename CipherMode , typename InputIterator , typename KeyIterator , typename OutputIterator , typename StreamDecrypter = typename detail::itr_stream_hash_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
OutputIterator nil::crypto3::decrypt (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last, OutputIterator out)
 
template<typename CipherMode , typename InputIterator , typename OutputIterator , typename StreamDecrypter = typename detail::itr_stream_hash_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
OutputIterator nil::crypto3::decrypt (InputIterator first, InputIterator last, OutputIterator out, StreamDecrypter &sh)
 
template<typename CipherMode , typename InputIterator , typename StreamDecrypter = typename detail::itr_stream_hash_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
detail::range_decrypter_impl< CipherMode, detail::value_decrypter_impl< StreamDecrypter > > nil::crypto3::decrypt (InputIterator first, InputIterator last)
 
template<typename CipherMode , typename InputIterator , typename StreamDecrypter = typename detail::itr_stream_hash_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
detail::range_decrypter_impl< CipherMode, detail::ref_decrypter_impl< StreamDecrypter > > nil::crypto3::decrypt (InputIterator first, InputIterator last, StreamDecrypter &sh)
 
template<typename CipherMode , typename SinglePassRange , typename OutputIterator , typename StreamDecrypter = typename detail::range_stream_hash_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
OutputIterator nil::crypto3::decrypt (const SinglePassRange &rng, OutputIterator out)
 
template<typename CipherMode , typename SinglePassRange , typename OutputIterator , typename StreamDecrypter = typename detail::range_stream_hash_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
OutputIterator nil::crypto3::decrypt (const SinglePassRange &rng, OutputIterator out, StreamDecrypter &sh)
 
template<typename CipherMode , typename SinglePassRange , typename StreamDecrypter = typename detail::range_stream_hash_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
detail::range_decrypter_impl< CipherMode, detail::value_decrypter_impl< StreamDecrypter > > nil::crypto3::decrypt (const SinglePassRange &r)
 
template<typename CipherMode , typename SinglePassRange , typename StreamDecrypter = typename detail::range_stream_hash_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
detail::range_decrypter_impl< CipherMode, detail::ref_decrypter_impl< StreamDecrypter > > nil::crypto3::decrypt (const SinglePassRange &rng, StreamDecrypter &sh)
 
template<typename BlockCipher , typename InputIterator , typename KeyIterator , typename OutputIterator >
OutputIterator nil::crypto3::encrypt (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last, OutputIterator out)
 
template<typename BlockCipher , typename InputIterator , typename KeyIterator , typename CipherState = typename detail::itr_stream_encrypter_traits< typename BlockCipher::stream_encrypter_type, InputIterator>::type>
detail::range_encrypter_impl< detail::value_encrypter_impl< CipherState > > nil::crypto3::encrypt (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last)
 
template<typename BlockCipher , typename SinglePassRange , typename KeyRange , typename OutputIterator >
OutputIterator nil::crypto3::encrypt (const SinglePassRange &rng, const KeyRange &key, OutputIterator out)
 
template<typename BlockCipher , typename SinglePassRange , typename KeyRange , typename StreamEncrypter = typename detail::range_stream_encrypter_traits< typename BlockCipher::stream_decrypter_type, SinglePassRange>::type>
detail::range_encrypter_impl< detail::value_encrypter_impl< StreamEncrypter > > nil::crypto3::encrypt (const SinglePassRange &r, const KeyRange &key)
 
template<typename CipherMode , typename InputIterator , typename KeyIterator , typename OutputIterator , typename StreamEncrypter = typename detail::itr_stream_encrypter_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
OutputIterator nil::crypto3::encrypt (InputIterator first, InputIterator last, KeyIterator key_first, KeyIterator key_last, OutputIterator out)
 
template<typename CipherMode , typename InputIterator , typename OutputIterator , typename StreamEncrypter = typename detail::itr_stream_encrypter_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
OutputIterator nil::crypto3::encrypt (InputIterator first, InputIterator last, OutputIterator out, StreamEncrypter &sh)
 
template<typename CipherMode , typename InputIterator , typename StreamEncrypter = typename detail::itr_stream_encrypter_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
detail::range_encrypter_impl< detail::value_encrypter_impl< StreamEncrypter > > nil::crypto3::encrypt (InputIterator first, InputIterator last)
 
template<typename CipherMode , typename InputIterator , typename StreamEncrypter = typename detail::itr_stream_encrypter_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
detail::range_encrypter_impl< detail::ref_encrypter_impl< StreamEncrypter > > nil::crypto3::encrypt (InputIterator first, InputIterator last, StreamEncrypter &sh)
 
template<typename CipherMode , typename SinglePassRange , typename OutputIterator , typename StreamEncrypter = typename detail::range_stream_encrypter_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
OutputIterator nil::crypto3::encrypt (const SinglePassRange &rng, OutputIterator out)
 
template<typename CipherMode , typename SinglePassRange , typename OutputIterator , typename StreamEncrypter = typename detail::range_stream_encrypter_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
OutputIterator nil::crypto3::encrypt (const SinglePassRange &rng, OutputIterator out, StreamEncrypter &sh)
 
template<typename CipherMode , typename SinglePassRange , typename StreamEncrypter = typename detail::range_stream_encrypter_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
detail::range_encrypter_impl< detail::value_encrypter_impl< StreamEncrypter > > nil::crypto3::encrypt (const SinglePassRange &r)
 
template<typename CipherMode , typename SinglePassRange , typename StreamEncrypter = typename detail::range_stream_encrypter_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
detail::range_encrypter_impl< detail::ref_encrypter_impl< StreamEncrypter > > nil::crypto3::encrypt (const SinglePassRange &rng, StreamEncrypter &sh)
 

Detailed Description

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

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

Function Documentation

◆ decrypt() [1/10]

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

◆ decrypt() [2/10]

template<typename BlockCipher , typename InputIterator , typename InputKeyIterator , typename CipherState = typename detail::itr_stream_encrypter_traits< typename BlockCipher::stream_encrypter_type, InputIterator>::type>
detail::range_encrypter_impl<detail::value_encrypter_impl<CipherState> > nil::crypto3::decrypt ( InputIterator  first,
InputIterator  last,
InputKeyIterator  key_first,
InputKeyIterator  key_last 
)
Template Parameters
BlockCipher
InputIterator
CipherState
Parameters
first
last
Returns

◆ decrypt() [3/10]

template<typename CipherMode , typename InputIterator , typename KeyIterator , typename OutputIterator , typename StreamDecrypter = typename detail::itr_stream_hash_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
OutputIterator nil::crypto3::decrypt ( InputIterator  first,
InputIterator  last,
KeyIterator  key_first,
KeyIterator  key_last,
OutputIterator  out 
)
Template Parameters
CipherMode
InputIterator
OutputIterator
StreamDecrypter
Parameters
first
last
out
Returns

◆ decrypt() [4/10]

template<typename CipherMode , typename InputIterator , typename OutputIterator , typename StreamDecrypter = typename detail::itr_stream_hash_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
OutputIterator nil::crypto3::decrypt ( InputIterator  first,
InputIterator  last,
OutputIterator  out,
StreamDecrypter &  sh 
)
Template Parameters
CipherMode
InputIterator
OutputIterator
StreamDecrypter
Parameters
first
last
out
sh
Returns

◆ decrypt() [5/10]

template<typename CipherMode , typename InputIterator , typename StreamDecrypter = typename detail::itr_stream_hash_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
detail::range_decrypter_impl<CipherMode, detail::value_decrypter_impl<StreamDecrypter> > nil::crypto3::decrypt ( InputIterator  first,
InputIterator  last 
)
Template Parameters
CipherMode
InputIterator
StreamDecrypter
Parameters
first
last
Returns

◆ decrypt() [6/10]

template<typename CipherMode , typename InputIterator , typename StreamDecrypter = typename detail::itr_stream_hash_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
detail::range_decrypter_impl<CipherMode, detail::ref_decrypter_impl<StreamDecrypter> > nil::crypto3::decrypt ( InputIterator  first,
InputIterator  last,
StreamDecrypter &  sh 
)
Template Parameters
CipherMode
InputIterator
StreamDecrypter
Parameters
first
last
sh
Returns

◆ decrypt() [7/10]

template<typename CipherMode , typename SinglePassRange , typename OutputIterator , typename StreamDecrypter = typename detail::range_stream_hash_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
OutputIterator nil::crypto3::decrypt ( const SinglePassRange &  rng,
OutputIterator  out 
)
Template Parameters
CipherMode
SinglePassRange
OutputIterator
StreamDecrypter
Parameters
rng
out
Returns

◆ decrypt() [8/10]

template<typename CipherMode , typename SinglePassRange , typename OutputIterator , typename StreamDecrypter = typename detail::range_stream_hash_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
OutputIterator nil::crypto3::decrypt ( const SinglePassRange &  rng,
OutputIterator  out,
StreamDecrypter &  sh 
)
Template Parameters
CipherMode
SinglePassRange
OutputIterator
StreamDecrypter
Parameters
rng
out
sh
Returns

◆ decrypt() [9/10]

template<typename CipherMode , typename SinglePassRange , typename StreamDecrypter = typename detail::range_stream_hash_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
detail::range_decrypter_impl<CipherMode, detail::value_decrypter_impl<StreamDecrypter> > nil::crypto3::decrypt ( const SinglePassRange &  r)
Template Parameters
CipherMode
SinglePassRange
StreamDecrypter
Parameters
r
Returns

◆ decrypt() [10/10]

template<typename CipherMode , typename SinglePassRange , typename StreamDecrypter = typename detail::range_stream_hash_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_decrypter<StreamDecrypter>::value>::type>
detail::range_decrypter_impl<CipherMode, detail::ref_decrypter_impl<StreamDecrypter> > nil::crypto3::decrypt ( const SinglePassRange &  rng,
StreamDecrypter &  sh 
)
Template Parameters
CipherMode
SinglePassRange
StreamDecrypter
Parameters
rng
sh
Returns

◆ encrypt() [1/12]

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

◆ encrypt() [2/12]

template<typename BlockCipher , typename InputIterator , typename KeyIterator , typename CipherState = typename detail::itr_stream_encrypter_traits< typename BlockCipher::stream_encrypter_type, InputIterator>::type>
detail::range_encrypter_impl<detail::value_encrypter_impl<CipherState> > nil::crypto3::encrypt ( InputIterator  first,
InputIterator  last,
KeyIterator  key_first,
KeyIterator  key_last 
)
Template Parameters
BlockCipher
InputIterator
CipherState
Parameters
first
last
Returns

◆ encrypt() [3/12]

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

◆ encrypt() [4/12]

template<typename BlockCipher , typename SinglePassRange , typename KeyRange , typename StreamEncrypter = typename detail::range_stream_encrypter_traits< typename BlockCipher::stream_decrypter_type, SinglePassRange>::type>
detail::range_encrypter_impl<detail::value_encrypter_impl<StreamEncrypter> > nil::crypto3::encrypt ( const SinglePassRange &  r,
const KeyRange &  key 
)
Template Parameters
BlockCipher
SinglePassRange
StreamEncrypter
Parameters
r
Returns

◆ encrypt() [5/12]

template<typename CipherMode , typename InputIterator , typename KeyIterator , typename OutputIterator , typename StreamEncrypter = typename detail::itr_stream_encrypter_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
OutputIterator nil::crypto3::encrypt ( InputIterator  first,
InputIterator  last,
KeyIterator  key_first,
KeyIterator  key_last,
OutputIterator  out 
)
Template Parameters
CipherMode
InputIterator
OutputIterator
StreamEncrypter
Parameters
first
last
out
Returns

◆ encrypt() [6/12]

template<typename CipherMode , typename InputIterator , typename OutputIterator , typename StreamEncrypter = typename detail::itr_stream_encrypter_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
OutputIterator nil::crypto3::encrypt ( InputIterator  first,
InputIterator  last,
OutputIterator  out,
StreamEncrypter &  sh 
)
Template Parameters
CipherMode
InputIterator
OutputIterator
StreamEncrypter
Parameters
first
last
out
sh
Returns

◆ encrypt() [7/12]

template<typename CipherMode , typename InputIterator , typename StreamEncrypter = typename detail::itr_stream_encrypter_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
detail::range_encrypter_impl<detail::value_encrypter_impl<StreamEncrypter> > nil::crypto3::encrypt ( InputIterator  first,
InputIterator  last 
)
Template Parameters
CipherMode
InputIterator
StreamEncrypter
Parameters
first
last
Returns

◆ encrypt() [8/12]

template<typename CipherMode , typename InputIterator , typename StreamEncrypter = typename detail::itr_stream_encrypter_traits<CipherMode, InputIterator>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
detail::range_encrypter_impl<detail::ref_encrypter_impl<StreamEncrypter> > nil::crypto3::encrypt ( InputIterator  first,
InputIterator  last,
StreamEncrypter &  sh 
)
Template Parameters
CipherMode
InputIterator
StreamEncrypter
Parameters
first
last
sh
Returns

◆ encrypt() [9/12]

template<typename CipherMode , typename SinglePassRange , typename OutputIterator , typename StreamEncrypter = typename detail::range_stream_encrypter_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
OutputIterator nil::crypto3::encrypt ( const SinglePassRange &  rng,
OutputIterator  out 
)
Template Parameters
CipherMode
SinglePassRange
OutputIterator
StreamEncrypter
Parameters
rng
out
Returns

◆ encrypt() [10/12]

template<typename CipherMode , typename SinglePassRange , typename OutputIterator , typename StreamEncrypter = typename detail::range_stream_encrypter_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
OutputIterator nil::crypto3::encrypt ( const SinglePassRange &  rng,
OutputIterator  out,
StreamEncrypter &  sh 
)
Template Parameters
CipherMode
SinglePassRange
OutputIterator
StreamEncrypter
Parameters
rng
out
sh
Returns

◆ encrypt() [11/12]

template<typename CipherMode , typename SinglePassRange , typename StreamEncrypter = typename detail::range_stream_encrypter_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
detail::range_encrypter_impl<detail::value_encrypter_impl<StreamEncrypter> > nil::crypto3::encrypt ( const SinglePassRange &  r)
Template Parameters
CipherMode
SinglePassRange
StreamEncrypter
Parameters
r
Returns

◆ encrypt() [12/12]

template<typename CipherMode , typename SinglePassRange , typename StreamEncrypter = typename detail::range_stream_encrypter_traits<CipherMode, SinglePassRange>::type, typename = typename std::enable_if<block::detail::is_stream_encrypter<StreamEncrypter>::value>::type>
detail::range_encrypter_impl<detail::ref_encrypter_impl<StreamEncrypter> > nil::crypto3::encrypt ( const SinglePassRange &  rng,
StreamEncrypter &  sh 
)
Template Parameters
CipherMode
SinglePassRange
StreamEncrypter
Parameters
rng
sh
Returns