Asymmetric algorithms

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

+ Collaboration diagram for Asymmetric algorithms:

Classes

struct  nil::crypto3::pubkey::agreement_key< Scheme >
 Key agreement refers to one form of key exchange in which two or more users execute a protocol to securely share a resultant key value. As an alternative to key agreement, a key transport protocol may be used. The distinguishing feature of a key agreement protocol is that participating users each contribute an equal portion toward the computation of the resultant shared key value (as opposed to one user computing and distributing a key value to other users). More...
 
struct  nil::crypto3::pubkey::private_key< Scheme, typename >
 Private key - a key known only to its owner. Only the user keeping his private key secret guarantees the impossibility of forging a document and digital signature on behalf of the certifier by an attacker. More...
 
struct  nil::crypto3::pubkey::public_key< Scheme, typename >
 Public key - a key that can be published and used to verify the authenticity of the signed document, as well as to prevent fraud on the part of the certifying person in the form of his refusal to sign the document. More...
 

Functions

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>, typename AggregationAccumulator = typename pubkey::aggregation_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate (const SinglePassRange &range)
 Aggregation of the input signatures into one resulted signature. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::aggregation_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::aggregate (const SinglePassRange &range, OutputAccumulator &acc)
 Updating of accumulator set acc containing aggregation accumulator with input signatures. More...
 
template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>>
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type nil::crypto3::aggregate (const SinglePassRange &range, OutputIterator out)
 Aggregation of the input signatures into one resulted signature and writing it in out. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>, typename AggregationAccumulator = typename pubkey::aggregation_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate (InputIterator first, InputIterator last)
 Aggregation of the input signatures into one resulted signature. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::aggregation_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::aggregate (InputIterator first, InputIterator last, OutputAccumulator &acc)
 Updating of accumulator set acc containing aggregation accumulator with input signatures. More...
 
template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>>
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type nil::crypto3::aggregate (InputIterator first, InputIterator last, OutputIterator out)
 Aggregation of the input signatures into one resulted signature and writing it in out. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::aggregate_verify (const SinglePassRange &range, const pubkey::public_key< Scheme > &key, OutputAccumulator &acc)
 Updating of accumulator set acc containing aggregate verification accumulator with input message and corresponding public key. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename AggregateVerificationAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregateVerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate_verify (const SinglePassRange &range, const typename pubkey::public_key< Scheme >::signature_type &signature, const pubkey::public_key< Scheme > &key)
 Aggregate verification of the input aggregated signature that aggregates signature created for the input message on the key. More...
 
template<typename Scheme , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::aggregate_verify (const typename pubkey::public_key< Scheme >::signature_type &aggregated_signature, OutputAccumulator &acc)
 Updating of accumulator set acc containing aggregate verification accumulator with verified aggregated signature. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::aggregate_verify (InputIterator first, InputIterator last, const pubkey::public_key< Scheme > &key, OutputAccumulator &acc)
 Updating of accumulator set acc containing aggregate verification accumulator with input message and corresponding public key. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename AggregateVerificationAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregateVerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate_verify (InputIterator first, InputIterator last, const typename pubkey::public_key< Scheme >::signature_type &signature, const pubkey::public_key< Scheme > &key)
 Aggregate verification of the input aggregated signature that aggregates signature created for the input message on the key. More...
 
template<typename Scheme , typename OutputIterator , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputIterator >::type nil::crypto3::aggregate_verify (OutputAccumulator &acc, OutputIterator out)
 Extracting of accumulator set acc containing aggregate verification accumulator and writing result in out. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::single_msg_aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::aggregate_verify_single_msg (const SinglePassRange &range, OutputAccumulator &acc)
 Updating of accumulator set acc containing aggregate verification accumulator with input message or public keys. More...
 
template<typename Scheme , typename SinglePassRange1 , typename SinglePassRange2 , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>, typename AggregateVerificationAccumulator = pubkey::single_msg_aggregate_verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregateVerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate_verify_single_msg (const SinglePassRange1 &msg_rng, const SinglePassRange2 &keys_rng, const typename pubkey::public_key< Scheme >::signature_type &signature)
 Aggregate verification of the input aggregated signature that is aggregation of signatures created for the single input message on the input list of key. More...
 
template<typename Scheme , typename SinglePassRange1 , typename SinglePassRange2 , typename OutputIterator , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::aggregate_verify_single_msg (const SinglePassRange1 &msg_rng, const SinglePassRange2 &keys_rng, const typename pubkey::public_key< Scheme >::signature_type &signature, OutputIterator out)
 Aggregate verification of the input aggregated signature that is aggregation of signatures created for the single input message on the input list of key and writing result in out. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::single_msg_aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::aggregate_verify_single_msg (InputIterator first, InputIterator last, OutputAccumulator &acc)
 Updating of accumulator set acc containing aggregate verification accumulator with input message or public keys. More...
 
template<typename Scheme , typename InputIterator1 , typename InputIterator2 , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>, typename AggregateVerificationAccumulator = pubkey::single_msg_aggregate_verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregateVerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate_verify_single_msg (InputIterator1 msg_first, InputIterator1 msg_last, InputIterator2 key_first, InputIterator2 key_last, const typename pubkey::public_key< Scheme >::signature_type &signature)
 Aggregate verification of the input aggregated signature that is aggregation of signatures created for the single input message on the input list of key. More...
 
template<typename Scheme , typename InputIterator1 , typename InputIterator2 , typename OutputIterator , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::aggregate_verify_single_msg (InputIterator1 msg_first, InputIterator1 msg_last, InputIterator2 key_first, InputIterator2 key_last, const typename pubkey::public_key< Scheme >::signature_type &signature, OutputIterator out)
 Aggregate verification of the input aggregated signature that is aggregation of signatures created for the single input message on the input list of key and writing result in out. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::share_dealing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::deal_share (const SinglePassRange &range, OutputAccumulator &acc)
 Updating of share dealing accumulator set using shares, dealt by other participant for the current. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::share_dealing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::deal_share (InputIterator first, InputIterator last, OutputAccumulator &acc)
 Updating of share dealing accumulator set using shares, dealt by other participant for the current. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::share_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_share (std::size_t i, const SinglePassRange &range)
 Deal share of specified participant using passed shares, dealt by other participant for the current. More...
 
template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_share (std::size_t i, const SinglePassRange &range, OutputIterator out)
 Deal share of specified participant using passed shares, dealt by other participant for the current. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::share_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_share (std::size_t i, InputIterator first, InputIterator last)
 Deal share of specified participant using passed shares, dealt by other participant for the current. More...
 
template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_share (std::size_t i, InputIterator first, InputIterator last, OutputIterator out)
 Deal share of specified participant using passed shares, dealt by other participant for the current. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::deal_shares (const SinglePassRange &range, OutputAccumulator &acc)
 Updating shares dealing accumulator with polynomial coefficients. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_shares (const SinglePassRange &range, std::size_t n)
 Deal shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_shares (const SinglePassRange &range, std::size_t n, const typename Scheme::weights_type &weights)
 Deal weighted shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients. More...
 
template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_shares (const SinglePassRange &range, std::size_t n, const typename Scheme::weights_type &weights, OutputIterator out)
 Deal weighted shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients. More...
 
template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_shares (const SinglePassRange &range, std::size_t n, OutputIterator out)
 Deal shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::deal_shares (InputIterator first, InputIterator last, OutputAccumulator &acc)
 Updating shares dealing accumulator with polynomial coefficients. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_shares (InputIterator first, InputIterator last, std::size_t n)
 Deal shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_shares (InputIterator first, InputIterator last, std::size_t n, const typename Scheme::weights_type &weights)
 Deal weighted shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients. More...
 
template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_shares (InputIterator first, InputIterator last, std::size_t n, const typename Scheme::weights_type &weights, OutputIterator out)
 Deal weighted shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients. More...
 
template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_shares (InputIterator first, InputIterator last, std::size_t n, OutputIterator out)
 Deal shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl< pubkey::detail::value_pubkey_impl< SchemeAccumulator > > nil::crypto3::reconstruct_public_secret (const SinglePassRange &r)
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::reconstruct_public_secret (const SinglePassRange &r, OutputAccumulator &acc)
 
template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type>
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type nil::crypto3::reconstruct_public_secret (const SinglePassRange &rng, OutputIterator out)
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl< pubkey::detail::value_pubkey_impl< SchemeAccumulator > > nil::crypto3::reconstruct_public_secret (InputIterator first, InputIterator last)
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::reconstruct_public_secret (InputIterator first, InputIterator last, OutputAccumulator &acc)
 
template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type>
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type nil::crypto3::reconstruct_public_secret (InputIterator first, InputIterator last, OutputIterator out)
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl< pubkey::detail::value_pubkey_impl< SchemeAccumulator > > nil::crypto3::reconstruct_secret (const SinglePassRange &r)
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::reconstruct_secret (const SinglePassRange &r, OutputAccumulator &acc)
 
template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type>
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type nil::crypto3::reconstruct_secret (const SinglePassRange &rng, OutputIterator out)
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl< pubkey::detail::value_pubkey_impl< SchemeAccumulator > > nil::crypto3::reconstruct_secret (InputIterator first, InputIterator last)
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::reconstruct_secret (InputIterator first, InputIterator last, OutputAccumulator &acc)
 
template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type>
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type nil::crypto3::reconstruct_secret (InputIterator first, InputIterator last, OutputIterator out)
 
template<typename Scheme , typename ProcessingMode = pubkey::pop_proving_processing_mode_default<Scheme>, typename SigningAccumulator = pubkey::signing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<SigningAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::sign (const pubkey::private_key< Scheme > &key)
 Proving of possession of the supplied key. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>, typename SigningAccumulator = pubkey::signing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<SigningAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::sign (const SinglePassRange &range, const pubkey::private_key< Scheme > &key)
 Signing of the input message on the key. More...
 
template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::sign (const SinglePassRange &range, const pubkey::private_key< Scheme > &key, OutputIterator out)
 Signing of the input message on the key and writing result in out. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::signing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::sign (const SinglePassRange &range, OutputAccumulator &acc)
 Updating of accumulator set acc containing signing accumulator with input message. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>, typename SigningAccumulator = pubkey::signing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<SigningAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::sign (InputIterator first, InputIterator last, const pubkey::private_key< Scheme > &key)
 Signing of the input message on the key. More...
 
template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::sign (InputIterator first, InputIterator last, const pubkey::private_key< Scheme > &key, OutputIterator out)
 Signing of the input message on the key and writing result in out. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::signing_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::sign (InputIterator first, InputIterator last, OutputAccumulator &acc)
 Updating of accumulator set acc containing signing accumulator with input message. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>, typename VerificationAccumulator = pubkey::verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<VerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::verify (const SinglePassRange &range, const typename pubkey::public_key< Scheme >::signature_type &signature, const pubkey::public_key< Scheme > &key)
 Verification of the input signature for the input message on the key. More...
 
template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::verify (const SinglePassRange &range, const typename pubkey::public_key< Scheme >::signature_type &signature, const pubkey::public_key< Scheme > &key, OutputIterator out)
 Verification of the input signature for the input message on the key and writing result in out. More...
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::verify (const SinglePassRange &range, OutputAccumulator &acc)
 Updating of accumulator set acc containing verification accumulator with input message. More...
 
template<typename Scheme , typename ProcessingMode = pubkey::pop_verification_processing_mode_default<Scheme>, typename VerificationAccumulator = pubkey::verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<VerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::verify (const typename pubkey::public_key< Scheme >::signature_type &proof, const pubkey::public_key< Scheme > &key)
 Verification of the proof of possession of the supplied key. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>, typename VerificationAccumulator = pubkey::verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<VerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::verify (InputIterator first, InputIterator last, const typename pubkey::public_key< Scheme >::signature_type &signature, const pubkey::public_key< Scheme > &key)
 Verification of the input signature for the input message on the key. More...
 
template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::verify (InputIterator first, InputIterator last, const typename pubkey::public_key< Scheme >::signature_type &signature, const pubkey::public_key< Scheme > &key, OutputIterator out)
 Verification of the input signature for the input message on the key and writing result in out. More...
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::verify (InputIterator first, InputIterator last, OutputAccumulator &acc)
 Updating of accumulator set acc containing verification accumulator with input message. More...
 
template<typename Scheme , typename SinglePassRange , typename Share , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::share_verification_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl< pubkey::detail::value_pubkey_impl< SchemeAccumulator > > nil::crypto3::verify_share (const SinglePassRange &r, const Share &s)
 
template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::share_verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::verify_share (const SinglePassRange &r, OutputAccumulator &acc)
 
template<typename Scheme , typename SinglePassRange , typename Share , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type>
OutputIterator nil::crypto3::verify_share (const SinglePassRange &rng, const Share &s, OutputIterator out)
 
template<typename Scheme , typename InputIterator , typename Share , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::share_verification_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl< pubkey::detail::value_pubkey_impl< SchemeAccumulator > > nil::crypto3::verify_share (InputIterator first, InputIterator last, const Share &s)
 
template<typename Scheme , typename InputIterator , typename Share , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type>
OutputIterator nil::crypto3::verify_share (InputIterator first, InputIterator last, const Share &s, OutputIterator out)
 
template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::share_verification_accumulator_set<ProcessingMode>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< OutputAccumulator >::value, OutputAccumulator >::type & nil::crypto3::verify_share (InputIterator first, InputIterator last, OutputAccumulator &acc)
 

Detailed Description

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

Function Documentation

◆ aggregate() [1/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>, typename AggregationAccumulator = typename pubkey::aggregation_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate ( const SinglePassRange &  range)

Aggregation of the input signatures into one resulted signature.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input signatures
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregation operation as in specification
AggregationAccumulatoraccumulator set initialized with aggregation accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to AggregationAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
rangethe signatures range to aggregate
Returns
SchemeImpl

◆ aggregate() [2/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::aggregation_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::aggregate ( const SinglePassRange &  range,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing aggregation accumulator with input signatures.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input signatures
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregation operation as in specification
OutputAccumulatoraccumulator set initialized with aggregation accumulator (internal parameter)
Parameters
rangethe signatures range to aggregate
accaccumulator set containing aggregation accumulator possibly pre-initialized with a part of signatures to aggregate
Returns
OutputAccumulator

◆ aggregate() [3/6]

template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>>
std::enable_if<!boost::accumulators::detail::is_accumulator_set<OutputIterator>::value, OutputIterator>::type nil::crypto3::aggregate ( const SinglePassRange &  range,
OutputIterator  out 
)

Aggregation of the input signatures into one resulted signature and writing it in out.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input signatures
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregation operation as in specification
Parameters
rangethe signatures range to aggregate
outthe beginning of the destination range
Returns
OutputIterator

◆ aggregate() [4/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>, typename AggregationAccumulator = typename pubkey::aggregation_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate ( InputIterator  first,
InputIterator  last 
)

Aggregation of the input signatures into one resulted signature.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input signatures
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregation operation as in specification
AggregationAccumulatoraccumulator set initialized with aggregation accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to AggregationAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
firstthe beginning of the signatures range to aggregate
lastthe end of the signatures range to aggregate
Returns
SchemeImpl

◆ aggregate() [5/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::aggregation_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::aggregate ( InputIterator  first,
InputIterator  last,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing aggregation accumulator with input signatures.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input signatures
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregation operation as in specification
OutputAccumulatoraccumulator set initialized with aggregation accumulator (internal parameter)
Parameters
firstthe beginning of the signatures range to aggregate
lastthe end of the signatures range to aggregate
accaccumulator set containing aggregation accumulator possibly pre-initialized with a part of signatures to aggregate
Returns
OutputAccumulator

◆ aggregate() [6/6]

template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::aggregation_processing_mode_default<Scheme>>
std::enable_if<!boost::accumulators::detail::is_accumulator_set<OutputIterator>::value, OutputIterator>::type nil::crypto3::aggregate ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)

Aggregation of the input signatures into one resulted signature and writing it in out.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input signatures
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregation operation as in specification
Parameters
firstthe beginning of the signatures range to aggregate
lastthe end of the signatures range to aggregate
outthe beginning of the destination range
Returns
OutputIterator

◆ aggregate_verify() [1/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::aggregate_verify ( const SinglePassRange &  range,
const pubkey::public_key< Scheme > &  key,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing aggregate verification accumulator with input message and corresponding public key.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input signatures
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation as in specification
OutputAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
Parameters
rangethe message range, corresponding to passed key
keyone of the public keys, which corresponding private key was used to sign the passed message
accaccumulator set containing aggregate verification accumulator possibly pre-initialized with a part of signatures to aggregate
Returns
OutputAccumulator

◆ aggregate_verify() [2/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename AggregateVerificationAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregateVerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate_verify ( const SinglePassRange &  range,
const typename pubkey::public_key< Scheme >::signature_type &  signature,
const pubkey::public_key< Scheme > &  key 
)

Aggregate verification of the input aggregated signature that aggregates signature created for the input message on the key.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation as in specification
AggregateVerificationAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to AggregateVerificationAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
rangethe message range, corresponding to passed key
signatureaggregated signature to verify
keyone of the public keys, which corresponding private key was used to sign the passed message
Returns
SchemeImpl

◆ aggregate_verify() [3/6]

template<typename Scheme , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::aggregate_verify ( const typename pubkey::public_key< Scheme >::signature_type &  aggregated_signature,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing aggregate verification accumulator with verified aggregated signature.

Template Parameters
Schemepublic key signature scheme
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation as in specification
OutputAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
Parameters
aggregated_signaturesignature to verify
accaccumulator set containing aggregate verification accumulator possibly pre-initialized with a part of signatures to aggregate
Returns
OutputAccumulator

◆ aggregate_verify() [4/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::aggregate_verify ( InputIterator  first,
InputIterator  last,
const pubkey::public_key< Scheme > &  key,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing aggregate verification accumulator with input message and corresponding public key.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation as in specification
OutputAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
Parameters
firstthe beginning of the message range, corresponding to passed key
lastthe end of the message range, corresponding to passed key
keyone of the public keys, which corresponding private key was used to sign the passed message
accaccumulator set containing aggregate verification accumulator possibly pre-initialized with a part of signatures to aggregate
Returns
OutputAccumulator

◆ aggregate_verify() [5/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename AggregateVerificationAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregateVerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate_verify ( InputIterator  first,
InputIterator  last,
const typename pubkey::public_key< Scheme >::signature_type &  signature,
const pubkey::public_key< Scheme > &  key 
)

Aggregate verification of the input aggregated signature that aggregates signature created for the input message on the key.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation as in specification
AggregateVerificationAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to AggregateVerificationAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
firstthe beginning of the message range, corresponding to passed key
lastthe end of the message range, corresponding to passed key
signatureaggregated signature to verify
keyone of the public keys, which corresponding private key was used to sign the passed message
Returns
SchemeImpl

◆ aggregate_verify() [6/6]

template<typename Scheme , typename OutputIterator , typename ProcessingMode = pubkey::aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputIterator>::type nil::crypto3::aggregate_verify ( OutputAccumulator &  acc,
OutputIterator  out 
)

Extracting of accumulator set acc containing aggregate verification accumulator and writing result in out.

Template Parameters
Schemepublic key signature scheme
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation as in specification
AggregateVerificationAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
Parameters
accaccumulator set containing aggregate verification accumulator possibly pre-initialized with a part of signatures to aggregate
outthe beginning of the destination range
Returns
SchemeImpl

◆ aggregate_verify_single_msg() [1/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::single_msg_aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::aggregate_verify_single_msg ( const SinglePassRange &  range,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing aggregate verification accumulator with input message or public keys.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input message or public keys
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation as in specification
OutputAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
Parameters
rangethe beginning of the message or public keys range
accaccumulator set containing aggregate verification accumulator possibly pre-initialized
Returns
OutputAccumulator

◆ aggregate_verify_single_msg() [2/6]

template<typename Scheme , typename SinglePassRange1 , typename SinglePassRange2 , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>, typename AggregateVerificationAccumulator = pubkey::single_msg_aggregate_verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregateVerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate_verify_single_msg ( const SinglePassRange1 &  msg_rng,
const SinglePassRange2 &  keys_rng,
const typename pubkey::public_key< Scheme >::signature_type &  signature 
)

Aggregate verification of the input aggregated signature that is aggregation of signatures created for the single input message on the input list of key.

Template Parameters
Schemepublic key signature scheme
SinglePassRange1range representing input message
SinglePassRange2range representing input public keys which corresponding private keys were used to sign input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation of single message as in specification
AggregateVerificationAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to AggregateVerificationAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
msg_rngthe message range
keys_rngthe key range
signatureaggregated signature to verify
Returns
SchemeImpl

◆ aggregate_verify_single_msg() [3/6]

template<typename Scheme , typename SinglePassRange1 , typename SinglePassRange2 , typename OutputIterator , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::aggregate_verify_single_msg ( const SinglePassRange1 &  msg_rng,
const SinglePassRange2 &  keys_rng,
const typename pubkey::public_key< Scheme >::signature_type &  signature,
OutputIterator  out 
)

Aggregate verification of the input aggregated signature that is aggregation of signatures created for the single input message on the input list of key and writing result in out.

Template Parameters
Schemepublic key signature scheme
SinglePassRange1range representing input message
SinglePassRange2range representing input public keys which corresponding private keys were used to sign input message
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation of single message as in specification
Parameters
msg_rngthe message range
keys_rngthe key range
signatureaggregated signature to verify
outthe beginning of the destination range
Returns
OutputIterator

◆ aggregate_verify_single_msg() [4/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::single_msg_aggregate_verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::aggregate_verify_single_msg ( InputIterator  first,
InputIterator  last,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing aggregate verification accumulator with input message or public keys.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input message or range of public keys
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation as in specification
OutputAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
Parameters
firstthe beginning of the message or public keys range
lastthe end of the message or public keys range
accaccumulator set containing aggregate verification accumulator possibly pre-initialized
Returns
OutputAccumulator

◆ aggregate_verify_single_msg() [5/6]

template<typename Scheme , typename InputIterator1 , typename InputIterator2 , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>, typename AggregateVerificationAccumulator = pubkey::single_msg_aggregate_verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<AggregateVerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::aggregate_verify_single_msg ( InputIterator1  msg_first,
InputIterator1  msg_last,
InputIterator2  key_first,
InputIterator2  key_last,
const typename pubkey::public_key< Scheme >::signature_type &  signature 
)

Aggregate verification of the input aggregated signature that is aggregation of signatures created for the single input message on the input list of key.

Template Parameters
Schemepublic key signature scheme
InputIterator1iterator representing input message
InputIterator2iterator representing input public keys which corresponding private keys were used to sign input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation of single message as in specification
AggregateVerificationAccumulatoraccumulator set initialized with aggregate verification accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to AggregateVerificationAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
msg_firstthe beginning of the message range
msg_lastthe end of the message range
key_firstthe beginning of the key range
key_lastthe end of the key range
signatureaggregated signature to verify
Returns
SchemeImpl

◆ aggregate_verify_single_msg() [6/6]

template<typename Scheme , typename InputIterator1 , typename InputIterator2 , typename OutputIterator , typename ProcessingMode = pubkey::single_msg_aggregate_verification_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::aggregate_verify_single_msg ( InputIterator1  msg_first,
InputIterator1  msg_last,
InputIterator2  key_first,
InputIterator2  key_last,
const typename pubkey::public_key< Scheme >::signature_type &  signature,
OutputIterator  out 
)

Aggregate verification of the input aggregated signature that is aggregation of signatures created for the single input message on the input list of key and writing result in out.

Template Parameters
Schemepublic key signature scheme
InputIterator1iterator representing input message
InputIterator2iterator representing input public keys which corresponding private keys were used to sign input message
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing an aggregate verification operation of single message as in specification
Parameters
msg_firstthe beginning of the message range
msg_lastthe end of the message range
key_firstthe beginning of the key range
key_lastthe end of the key range
signatureaggregated signature to verify
outthe beginning of the destination range
Returns
OutputIterator

◆ deal_share() [1/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::share_dealing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::deal_share ( const SinglePassRange &  range,
OutputAccumulator &  acc 
)

Updating of share dealing accumulator set using shares, dealt by other participant for the current.

Template Parameters
Schemedistribution key generation scheme
SinglePassRangerange representing input shares
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
OutputAccumulatoraccumulator set initialized with dealing accumulator (internal parameter)
Parameters
rangeshares range
accaccumulator set containing share dealing accumulator possibly pre-initialized with the beginning of shares, dealt by other participant for the current
Returns
OutputAccumulator

◆ deal_share() [2/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::share_dealing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::deal_share ( InputIterator  first,
InputIterator  last,
OutputAccumulator &  acc 
)

Updating of share dealing accumulator set using shares, dealt by other participant for the current.

Template Parameters
Schemedistribution key generation scheme
InputIteratoriterator representing input shares
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
OutputAccumulatoraccumulator set initialized with dealing accumulator (internal parameter)
Parameters
firstthe beginning of the shares range
lastthe end of the shares range
accaccumulator set containing share dealing accumulator possibly pre-initialized with the beginning of shares, dealt by other participant for the current
Returns
OutputAccumulator

◆ deal_share() [3/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::share_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_share ( std::size_t  i,
const SinglePassRange &  range 
)

Deal share of specified participant using passed shares, dealt by other participant for the current.

Template Parameters
Schemedistribution key generation scheme
SinglePassRangerange representing input shares
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to DealingAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
iparticipant index
rangeshares range
Returns
SchemeImpl

◆ deal_share() [4/6]

template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_share ( std::size_t  i,
const SinglePassRange &  range,
OutputIterator  out 
)

Deal share of specified participant using passed shares, dealt by other participant for the current.

Template Parameters
Schemedistribution key generation scheme
SinglePassRangerange representing input shares
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
Parameters
iparticipant index
rangeshares range
outthe beginning of the destination range
Returns
OutputIterator

◆ deal_share() [5/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::share_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_share ( std::size_t  i,
InputIterator  first,
InputIterator  last 
)

Deal share of specified participant using passed shares, dealt by other participant for the current.

Template Parameters
Schemedistribution key generation scheme
InputIteratoriterator representing input shares
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to DealingAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
iparticipant index
firstthe beginning of the shares range
lastthe end of the shares range
Returns
SchemeImpl

◆ deal_share() [6/6]

template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::share_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_share ( std::size_t  i,
InputIterator  first,
InputIterator  last,
OutputIterator  out 
)

Deal share of specified participant using passed shares, dealt by other participant for the current.

Template Parameters
Schemedistribution key generation scheme
InputIteratoriterator representing input shares
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
Parameters
iparticipant index
firstthe beginning of the shares range
lastthe end of the shares range
outthe beginning of the destination range
Returns
OutputIterator

◆ deal_shares() [1/10]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::deal_shares ( const SinglePassRange &  range,
OutputAccumulator &  acc 
)

Updating shares dealing accumulator with polynomial coefficients.

Template Parameters
Schemesecret sharing scheme
SinglePassRangerange representing input polynomial coefficients
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
OutputAccumulatoraccumulator set initialized with dealing accumulator (internal parameter)
Parameters
rangethe polynomial coefficients range
accaccumulator set containing shares dealing accumulator possibly pre-initialized with the beginning of polynomial coefficients and participants number
Returns
OutputAccumulator

◆ deal_shares() [2/10]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_shares ( const SinglePassRange &  range,
std::size_t  n 
)

Deal shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients.

Template Parameters
Schemesecret sharing scheme
SinglePassRangerange representing input polynomial coefficients
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
DealingAccumulatoraccumulator set initialized with shares dealing accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to DealingAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
rangethe polynomial coefficients range
nnumber of participants
Returns
SchemeImpl

◆ deal_shares() [3/10]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_shares ( const SinglePassRange &  range,
std::size_t  n,
const typename Scheme::weights_type &  weights 
)

Deal weighted shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients.

Template Parameters
Schemesecret sharing scheme
SinglePassRangerange representing input polynomial coefficients
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
DealingAccumulatoraccumulator set initialized with shares dealing accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to DealingAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
rangethe polynomial coefficients range
nnumber of participants
weightsparticipants weights
Returns
SchemeImpl

◆ deal_shares() [4/10]

template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_shares ( const SinglePassRange &  range,
std::size_t  n,
const typename Scheme::weights_type &  weights,
OutputIterator  out 
)

Deal weighted shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients.

Template Parameters
Schemesecret sharing scheme
SinglePassRangerange representing input polynomial coefficients
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
Parameters
rangethe polynomial coefficients range
nnumber of participants
weightsparticipants weights
outthe beginning of the destination range
Returns
OutputIterator

◆ deal_shares() [5/10]

template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_shares ( const SinglePassRange &  range,
std::size_t  n,
OutputIterator  out 
)

Deal shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients.

Template Parameters
Schemesecret sharing scheme
SinglePassRangerange representing input polynomial coefficients
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
Parameters
rangethe polynomial coefficients range
nnumber of participants
outthe beginning of the destination range
Returns
OutputIterator

◆ deal_shares() [6/10]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename OutputAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::deal_shares ( InputIterator  first,
InputIterator  last,
OutputAccumulator &  acc 
)

Updating shares dealing accumulator with polynomial coefficients.

Template Parameters
Schemesecret sharing scheme
InputIteratoriterator representing input polynomial coefficients
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
OutputAccumulatoraccumulator set initialized with dealing accumulator (internal parameter)
Parameters
firstthe beginning of the polynomial coefficients range
lastthe end of the polynomial coefficients range
accaccumulator set containing shares dealing accumulator possibly pre-initialized with the beginning of polynomial coefficients and participants number
Returns
OutputAccumulator

◆ deal_shares() [7/10]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_shares ( InputIterator  first,
InputIterator  last,
std::size_t  n 
)

Deal shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients.

Template Parameters
Schemesecret sharing scheme
InputIteratoriterator representing input polynomial coefficients
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
DealingAccumulatoraccumulator set initialized with shares dealing accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to DealingAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
firstthe beginning of the polynomial coefficients range
lastthe end of the polynomial coefficients range
nnumber of participants
Returns
SchemeImpl

◆ deal_shares() [8/10]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>, typename DealingAccumulator = typename pubkey::shares_dealing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<DealingAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::deal_shares ( InputIterator  first,
InputIterator  last,
std::size_t  n,
const typename Scheme::weights_type &  weights 
)

Deal weighted shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients.

Template Parameters
Schemesecret sharing scheme
InputIteratoriterator representing input polynomial coefficients
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
DealingAccumulatoraccumulator set initialized with shares dealing accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to DealingAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
firstthe beginning of the polynomial coefficients range
lastthe end of the polynomial coefficients range
nnumber of participants
weightsparticipants weights
Returns
SchemeImpl

◆ deal_shares() [9/10]

template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_shares ( InputIterator  first,
InputIterator  last,
std::size_t  n,
const typename Scheme::weights_type &  weights,
OutputIterator  out 
)

Deal weighted shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients.

Template Parameters
Schemesecret sharing scheme
InputIteratoriterator representing input polynomial coefficients
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
Parameters
firstthe beginning of the polynomial coefficients range
lastthe end of the polynomial coefficients range
nnumber of participants
weightsparticipants weights
outthe beginning of the destination range
Returns
OutputIterator

◆ deal_shares() [10/10]

template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::shares_dealing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::deal_shares ( InputIterator  first,
InputIterator  last,
std::size_t  n,
OutputIterator  out 
)

Deal shares using passed polynomial coefficients, threshold number of participants required to reconstruct secret equals to number of the coefficients.

Template Parameters
Schemesecret sharing scheme
InputIteratoriterator representing input polynomial coefficients
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a dealing operation as in specification
Parameters
firstthe beginning of the polynomial coefficients range
lastthe end of the polynomial coefficients range
nnumber of participants
outthe beginning of the destination range
Returns
OutputIterator

◆ reconstruct_public_secret() [1/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<SchemeAccumulator> > nil::crypto3::reconstruct_public_secret ( const SinglePassRange &  r)
Template Parameters
Scheme
SinglePassRange
SchemeAccumulator
Parameters
r
key
Returns

◆ reconstruct_public_secret() [2/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::reconstruct_public_secret ( const SinglePassRange &  r,
OutputAccumulator &  acc 
)
Template Parameters
Scheme
SinglePassRange
OutputAccumulator
Parameters
r
acc
Returns

◆ reconstruct_public_secret() [3/6]

template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type>
std::enable_if<!boost::accumulators::detail::is_accumulator_set<OutputIterator>::value, OutputIterator>::type nil::crypto3::reconstruct_public_secret ( const SinglePassRange &  rng,
OutputIterator  out 
)
Template Parameters
Scheme
SinglePassRange
OutputIterator
Parameters
rng
key
out
Returns

◆ reconstruct_public_secret() [4/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<SchemeAccumulator> > nil::crypto3::reconstruct_public_secret ( InputIterator  first,
InputIterator  last 
)
Template Parameters
Scheme
InputIterator
KeySinglePassRange
SchemeAccumulator
Parameters
first
last
key
Returns

◆ reconstruct_public_secret() [5/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::reconstruct_public_secret ( InputIterator  first,
InputIterator  last,
OutputAccumulator &  acc 
)
Template Parameters
Scheme
InputIterator
OutputAccumulator
Parameters
first
last
acc
Returns

◆ reconstruct_public_secret() [6/6]

template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::public_secret_reconstructing_policy<Scheme>>::type>
std::enable_if<!boost::accumulators::detail::is_accumulator_set<OutputIterator>::value, OutputIterator>::type nil::crypto3::reconstruct_public_secret ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
Template Parameters
Scheme
InputIterator
OutputIterator
Parameters
first
last
key
out
Returns

◆ reconstruct_secret() [1/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<SchemeAccumulator> > nil::crypto3::reconstruct_secret ( const SinglePassRange &  r)
Template Parameters
Scheme
SinglePassRange
SchemeAccumulator
Parameters
r
key
Returns

◆ reconstruct_secret() [2/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::reconstruct_secret ( const SinglePassRange &  r,
OutputAccumulator &  acc 
)
Template Parameters
Scheme
SinglePassRange
OutputAccumulator
Parameters
r
acc
Returns

◆ reconstruct_secret() [3/6]

template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type>
std::enable_if<!boost::accumulators::detail::is_accumulator_set<OutputIterator>::value, OutputIterator>::type nil::crypto3::reconstruct_secret ( const SinglePassRange &  rng,
OutputIterator  out 
)
Template Parameters
Scheme
SinglePassRange
OutputIterator
Parameters
rng
key
out
Returns

◆ reconstruct_secret() [4/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<SchemeAccumulator> > nil::crypto3::reconstruct_secret ( InputIterator  first,
InputIterator  last 
)
Template Parameters
Scheme
InputIterator
KeySinglePassRange
SchemeAccumulator
Parameters
first
last
key
Returns

◆ reconstruct_secret() [5/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::reconstructing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::reconstruct_secret ( InputIterator  first,
InputIterator  last,
OutputAccumulator &  acc 
)
Template Parameters
Scheme
InputIterator
OutputAccumulator
Parameters
first
last
acc
Returns

◆ reconstruct_secret() [6/6]

template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::secret_reconstructing_policy<Scheme>>::type>
std::enable_if<!boost::accumulators::detail::is_accumulator_set<OutputIterator>::value, OutputIterator>::type nil::crypto3::reconstruct_secret ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
Template Parameters
Scheme
InputIterator
OutputIterator
Parameters
first
last
key
out
Returns

◆ sign() [1/7]

template<typename Scheme , typename ProcessingMode = pubkey::pop_proving_processing_mode_default<Scheme>, typename SigningAccumulator = pubkey::signing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<SigningAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::sign ( const pubkey::private_key< Scheme > &  key)

Proving of possession of the supplied key.

Template Parameters
Schemepublic key signature scheme
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a signing operation as in specification, another example is threshold mode
SigningAccumulatoraccumulator set initialized with signing accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to SigningAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
keyprivate key to be proved by signing it on itself
Returns
SchemeImpl

◆ sign() [2/7]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>, typename SigningAccumulator = pubkey::signing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<SigningAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::sign ( const SinglePassRange &  range,
const pubkey::private_key< Scheme > &  key 
)

Signing of the input message on the key.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a signing operation as in specification, another example is threshold mode
SigningAccumulatoraccumulator set initialized with signing accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to SigningAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
rangethe message range to sign
keyprivate key to be used for signing
Returns
SchemeImpl

◆ sign() [3/7]

template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::sign ( const SinglePassRange &  range,
const pubkey::private_key< Scheme > &  key,
OutputIterator  out 
)

Signing of the input message on the key and writing result in out.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input message
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a signing operation as in specification, another example is threshold mode
Parameters
rangethe message range to sign
keyprivate key to be used for signing
outthe beginning of the destination range
Returns
OutputIterator

◆ sign() [4/7]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::signing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::sign ( const SinglePassRange &  range,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing signing accumulator with input message.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a signing operation as in specification, another example is threshold mode
OutputAccumulatoraccumulator set initialized with signing accumulator (internal parameter)
Parameters
rangethe message range to sign
accaccumulator set containing signing accumulator initialized with private key and possibly pre-initialized with the beginning of message to be signed
Returns
OutputAccumulator

◆ sign() [5/7]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>, typename SigningAccumulator = pubkey::signing_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<SigningAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::sign ( InputIterator  first,
InputIterator  last,
const pubkey::private_key< Scheme > &  key 
)

Signing of the input message on the key.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a signing operation as in specification, another example is threshold mode
SigningAccumulatoraccumulator set initialized with signing accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to SigningAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
firstthe beginning of the message range to sign
lastthe end of the message range to sign
keyprivate key to be used for signing
Returns
SchemeImpl

◆ sign() [6/7]

template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::sign ( InputIterator  first,
InputIterator  last,
const pubkey::private_key< Scheme > &  key,
OutputIterator  out 
)

Signing of the input message on the key and writing result in out.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input message
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a signing operation as in specification, another example is threshold mode
Parameters
firstthe beginning of the message range to sign
lastthe end of the message range to sign
keyprivate key to be used for signing
outthe beginning of the destination range
Returns
OutputIterator

◆ sign() [7/7]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::signing_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::signing_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::sign ( InputIterator  first,
InputIterator  last,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing signing accumulator with input message.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a signing operation as in specification, another example is threshold mode
OutputAccumulatoraccumulator set initialized with signing accumulator (internal parameter)
Parameters
firstthe beginning of the message range to sign
lastthe end of the message range to sign
accaccumulator set containing signing accumulator initialized with private key and possibly pre-initialized with the beginning of message to be signed
Returns
OutputAccumulator

◆ verify() [1/7]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>, typename VerificationAccumulator = pubkey::verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<VerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::verify ( const SinglePassRange &  range,
const typename pubkey::public_key< Scheme >::signature_type &  signature,
const pubkey::public_key< Scheme > &  key 
)

Verification of the input signature for the input message on the key.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a verification operation as in specification, another example is threshold mode
VerificationAccumulatoraccumulator set initialized with verification accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to VerificationAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
rangethe message range
signaturemessage signature to verify
keypublic key to be used for verification
Returns
SchemeImpl

◆ verify() [2/7]

template<typename Scheme , typename SinglePassRange , typename OutputIterator , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::verify ( const SinglePassRange &  range,
const typename pubkey::public_key< Scheme >::signature_type &  signature,
const pubkey::public_key< Scheme > &  key,
OutputIterator  out 
)

Verification of the input signature for the input message on the key and writing result in out.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input message
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a verification operation as in specification, another example is threshold mode
Parameters
rangethe message range
signaturemessage signature to verify
keypublic key to be used for verification
outthe beginning of the destination range
Returns
OutputIterator

◆ verify() [3/7]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::verify ( const SinglePassRange &  range,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing verification accumulator with input message.

Template Parameters
Schemepublic key signature scheme
SinglePassRangerange representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a verification operation as in specification, another example is threshold mode
OutputAccumulatoraccumulator set initialized with verification accumulator (internal parameter)
Parameters
rangethe message range
accaccumulator set containing verification accumulator initialized with public key and possibly pre-initialized with the beginning of the message to verify
Returns
OutputAccumulator

◆ verify() [4/7]

template<typename Scheme , typename ProcessingMode = pubkey::pop_verification_processing_mode_default<Scheme>, typename VerificationAccumulator = pubkey::verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<VerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::verify ( const typename pubkey::public_key< Scheme >::signature_type &  proof,
const pubkey::public_key< Scheme > &  key 
)

Verification of the proof of possession of the supplied key.

Template Parameters
Schemepublic key signature scheme
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a verification operation as in specification, another example is threshold mode
VerificationAccumulatoraccumulator set initialized with verification accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to VerificationAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
proofsignature of private key corresponding to supplied public key key
keypublic key to be verified using proof
Returns
SchemeImpl

◆ verify() [5/7]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>, typename VerificationAccumulator = pubkey::verification_accumulator_set<ProcessingMode>, typename StreamSchemeImpl = pubkey::detail::value_pubkey_impl<VerificationAccumulator>, typename SchemeImpl = pubkey::detail::range_pubkey_impl<StreamSchemeImpl>>
SchemeImpl nil::crypto3::verify ( InputIterator  first,
InputIterator  last,
const typename pubkey::public_key< Scheme >::signature_type &  signature,
const pubkey::public_key< Scheme > &  key 
)

Verification of the input signature for the input message on the key.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a verification operation as in specification, another example is threshold mode
VerificationAccumulatoraccumulator set initialized with verification accumulator (internal parameter)
StreamSchemeImpl(internal parameter)
SchemeImplreturn type implicitly convertible to VerificationAccumulator or ProcessingMode::result_type (internal parameter)
Parameters
firstthe beginning of the message range
lastthe end of the message range
signaturemessage signature to verify
keypublic key to be used for verification
Returns
SchemeImpl

◆ verify() [6/7]

template<typename Scheme , typename InputIterator , typename OutputIterator , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>>
OutputIterator nil::crypto3::verify ( InputIterator  first,
InputIterator  last,
const typename pubkey::public_key< Scheme >::signature_type &  signature,
const pubkey::public_key< Scheme > &  key,
OutputIterator  out 
)

Verification of the input signature for the input message on the key and writing result in out.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input message
OutputIteratoriterator representing output range with value type of ProcessingMode::result_type
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a verification operation as in specification, another example is threshold mode
Parameters
firstthe beginning of the message range
lastthe end of the message range
signaturemessage signature to verify
keypublic key to be used for verification
outthe beginning of the destination range
Returns
OutputIterator

◆ verify() [7/7]

template<typename Scheme , typename InputIterator , typename ProcessingMode = pubkey::verification_processing_mode_default<Scheme>, typename OutputAccumulator = pubkey::verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::verify ( InputIterator  first,
InputIterator  last,
OutputAccumulator &  acc 
)

Updating of accumulator set acc containing verification accumulator with input message.

Template Parameters
Schemepublic key signature scheme
InputIteratoriterator representing input message
ProcessingModea policy representing a work mode of the scheme, by default isomorphic, which means executing a verification operation as in specification, another example is threshold mode
OutputAccumulatoraccumulator set initialized with verification accumulator (internal parameter)
Parameters
firstthe beginning of the message range
lastthe end of the message range
accaccumulator set containing verification accumulator initialized with public key and possibly pre-initialized with the beginning of the message to verify
Returns
OutputAccumulator

◆ verify_share() [1/6]

template<typename Scheme , typename SinglePassRange , typename Share , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::share_verification_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<SchemeAccumulator> > nil::crypto3::verify_share ( const SinglePassRange &  r,
const Share &  s 
)
Template Parameters
Scheme
SinglePassRange
SchemeAccumulator
Parameters
r
key
Returns

◆ verify_share() [2/6]

template<typename Scheme , typename SinglePassRange , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::share_verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::verify_share ( const SinglePassRange &  r,
OutputAccumulator &  acc 
)
Template Parameters
Scheme
SinglePassRange
OutputAccumulator
Parameters
r
acc
Returns

◆ verify_share() [3/6]

template<typename Scheme , typename SinglePassRange , typename Share , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type>
OutputIterator nil::crypto3::verify_share ( const SinglePassRange &  rng,
const Share &  s,
OutputIterator  out 
)
Template Parameters
Scheme
SinglePassRange
Share
OutputIterator
Parameters
rng
s
out
Returns

◆ verify_share() [4/6]

template<typename Scheme , typename InputIterator , typename Share , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type, typename SchemeAccumulator = typename pubkey::share_verification_accumulator_set<ProcessingMode>>
pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<SchemeAccumulator> > nil::crypto3::verify_share ( InputIterator  first,
InputIterator  last,
const Share &  s 
)
Template Parameters
Scheme
InputIterator
KeySinglePassRange
SchemeAccumulator
Parameters
first
last
key
Returns

◆ verify_share() [5/6]

template<typename Scheme , typename InputIterator , typename Share , typename OutputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type>
OutputIterator nil::crypto3::verify_share ( InputIterator  first,
InputIterator  last,
const Share &  s,
OutputIterator  out 
)
Template Parameters
Scheme
InputIterator
Number1
Number2
OutputIterator
Parameters
first
last
n
t
out
Returns

◆ verify_share() [6/6]

template<typename Scheme , typename InputIterator , typename ProcessingMode = typename pubkey::modes::isomorphic<Scheme>::template bind< pubkey::share_verification_policy<Scheme>>::type, typename OutputAccumulator = typename pubkey::share_verification_accumulator_set<ProcessingMode>>
std::enable_if<boost::accumulators::detail::is_accumulator_set<OutputAccumulator>::value, OutputAccumulator>::type& nil::crypto3::verify_share ( InputIterator  first,
InputIterator  last,
OutputAccumulator &  acc 
)
Template Parameters
Scheme
InputIterator
OutputAccumulator
Parameters
first
last
acc
Returns