1
1
// ---------------------------------------------------------------------------//
2
- // Copyright (c) 2018-2020 Mikhail Komarov <[email protected] >
3
- // Copyright (c) 2020 Ilias Khairullin <[email protected] >
2
+ // Copyright (c) 2021 Mikhail Komarov <[email protected] >
3
+ // Copyright (c) 2021 Ilias Khairullin <[email protected] >
4
4
//
5
5
// MIT License
6
6
//
@@ -54,10 +54,10 @@ namespace nil {
54
54
* @return
55
55
*/
56
56
template <typename Mode, typename SinglePassRange, typename OutputIterator>
57
- OutputIterator
58
- part_verify ( const SinglePassRange &rng,
59
- const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
60
- const pubkey::part_public_key<typename Mode::scheme_type> &key, OutputIterator out) {
57
+ OutputIterator part_verify (
58
+ const SinglePassRange &rng,
59
+ const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
60
+ const pubkey::part_public_key<typename Mode::scheme_type> &key, OutputIterator out) {
61
61
62
62
typedef typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type ProcessingMode;
63
63
typedef typename pubkey::part_verification_accumulator_set<ProcessingMode> ModeAccumulator;
@@ -86,10 +86,10 @@ namespace nil {
86
86
* @return
87
87
*/
88
88
template <typename Mode, typename InputIterator, typename OutputIterator>
89
- OutputIterator
90
- part_verify ( InputIterator first, InputIterator last,
91
- const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
92
- const pubkey::part_public_key<typename Mode::scheme_type> &key, OutputIterator out) {
89
+ OutputIterator part_verify (
90
+ InputIterator first, InputIterator last,
91
+ const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
92
+ const pubkey::part_public_key<typename Mode::scheme_type> &key, OutputIterator out) {
93
93
94
94
typedef typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type ProcessingMode;
95
95
typedef typename pubkey::part_verification_accumulator_set<ProcessingMode> ModeAccumulator;
@@ -176,10 +176,10 @@ namespace nil {
176
176
template <typename Mode, typename InputIterator,
177
177
typename ModeAccumulator = typename pubkey::part_verification_accumulator_set<
178
178
typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type>>
179
- pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<ModeAccumulator>>
180
- part_verify ( InputIterator first, InputIterator last,
181
- const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
182
- const pubkey::part_public_key<typename Mode::scheme_type> &key) {
179
+ pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<ModeAccumulator>> part_verify (
180
+ InputIterator first, InputIterator last,
181
+ const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
182
+ const pubkey::part_public_key<typename Mode::scheme_type> &key) {
183
183
184
184
typedef typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type ProcessingMode;
185
185
@@ -206,10 +206,10 @@ namespace nil {
206
206
template <typename Mode, typename SinglePassRange,
207
207
typename ModeAccumulator = typename pubkey::part_verification_accumulator_set<
208
208
typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type>>
209
- pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<ModeAccumulator>>
210
- part_verify ( const SinglePassRange &r,
211
- const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
212
- const pubkey::part_public_key<typename Mode::scheme_type> &key) {
209
+ pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<ModeAccumulator>> part_verify (
210
+ const SinglePassRange &r,
211
+ const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
212
+ const pubkey::part_public_key<typename Mode::scheme_type> &key) {
213
213
214
214
typedef typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type ProcessingMode;
215
215
@@ -219,38 +219,71 @@ namespace nil {
219
219
return VerifyerImpl (r, ModeAccumulator (key, nil::crypto3::accumulators::signature = part_sig));
220
220
}
221
221
222
- // /*!
223
- // * @brief
224
- // *
225
- // * @ingroup pubkey_algorithms
226
- // *
227
- // * @tparam Scheme
228
- // * @tparam InputIterator
229
- // * @tparam KeySinglePassRange
230
- // * @tparam ModeAccumulator
231
- // *
232
- // * @param first
233
- // * @param last
234
- // * @param key
235
- // *
236
- // * @return
237
- // */
238
- // template<typename Mode, typename InputIterator1, typename InputIterator2,
239
- // typename ModeAccumulator = typename pubkey::part_verification_accumulator_set<
240
- // typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type>>
241
- // pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<ModeAccumulator>>
242
- // part_verify(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2,
243
- // const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
244
- // const pubkey::part_public_key<typename Mode::scheme_type> &key) {
245
- //
246
- // typedef typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type ProcessingMode;
247
- //
248
- // typedef pubkey::detail::value_pubkey_impl<ModeAccumulator> StreamVerifyerImpl;
249
- // typedef pubkey::detail::range_pubkey_impl<StreamVerifyerImpl> VerifyerImpl;
250
- //
251
- // return VerifyerImpl(first1, last1, first2, last2,
252
- // ModeAccumulator(key, nil::crypto3::accumulators::signature = part_sig));
253
- // }
222
+ /* !
223
+ * @brief
224
+ *
225
+ * @ingroup pubkey_algorithms
226
+ *
227
+ * @tparam Scheme
228
+ * @tparam InputIterator
229
+ * @tparam KeySinglePassRange
230
+ * @tparam ModeAccumulator
231
+ *
232
+ * @param first
233
+ * @param last
234
+ * @param key
235
+ *
236
+ * @return
237
+ */
238
+ template <typename Mode, typename InputIterator, typename Weights,
239
+ typename ModeAccumulator = typename pubkey::part_verification_accumulator_set<
240
+ typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type>>
241
+ pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<ModeAccumulator>> part_verify (
242
+ InputIterator first, InputIterator last,
243
+ const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
244
+ const Weights &weights, const pubkey::part_public_key<typename Mode::scheme_type> &key) {
245
+
246
+ typedef typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type ProcessingMode;
247
+
248
+ typedef pubkey::detail::value_pubkey_impl<ModeAccumulator> StreamVerifyerImpl;
249
+ typedef pubkey::detail::range_pubkey_impl<StreamVerifyerImpl> VerifyerImpl;
250
+
251
+ return VerifyerImpl (first, last,
252
+ ModeAccumulator (key, nil::crypto3::accumulators::signature = part_sig,
253
+ nil::crypto3::accumulators::weights = weights));
254
+ }
255
+
256
+ /* !
257
+ * @brief
258
+ *
259
+ * @ingroup pubkey_algorithms
260
+ *
261
+ * @tparam Scheme
262
+ * @tparam SinglePassRange
263
+ * @tparam ModeAccumulator
264
+ *
265
+ * @param r
266
+ * @param key
267
+ *
268
+ * @return
269
+ */
270
+ template <typename Mode, typename SinglePassRange, typename Weights,
271
+ typename ModeAccumulator = typename pubkey::part_verification_accumulator_set<
272
+ typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type>>
273
+ pubkey::detail::range_pubkey_impl<pubkey::detail::value_pubkey_impl<ModeAccumulator>> part_verify (
274
+ const SinglePassRange &r,
275
+ const typename pubkey::part_public_key<typename Mode::scheme_type>::part_signature_type &part_sig,
276
+ const Weights &weights,
277
+ const pubkey::part_public_key<typename Mode::scheme_type> &key) {
278
+
279
+ typedef typename Mode::template bind<pubkey::part_verification_mode_policy<Mode>>::type ProcessingMode;
280
+
281
+ typedef pubkey::detail::value_pubkey_impl<ModeAccumulator> StreamVerifyerImpl;
282
+ typedef pubkey::detail::range_pubkey_impl<StreamVerifyerImpl> VerifyerImpl;
283
+
284
+ return VerifyerImpl (r, ModeAccumulator (key, nil::crypto3::accumulators::signature = part_sig,
285
+ nil::crypto3::accumulators::weights = weights));
286
+ }
254
287
} // namespace crypto3
255
288
} // namespace nil
256
289
0 commit comments