nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > > Struct Reference

#include <marshalling.hpp>

+ Collaboration diagram for nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >:

Public Types

typedef std::uint8_t chunk_type
 
typedef ::nil::crypto3::algebra::curves::bls12< 381 > curve_type
 
typedef curve_type::base_field_type fp_type
 
typedef curve_type::scalar_field_type fr_type
 
typedef curve_type::template g1_type g1_type
 
typedef curve_type::template g2_type g2_type
 
typedef curve_type::gt_type gt_type
 

Static Public Member Functions

template<typename FieldType , typename InputFieldValueIterator >
static std::enable_if< !crypto3::algebra::is_extended_field< FieldType >::value &&std::is_same< chunk_type, typename std::iterator_traits< InputFieldValueIterator >::value_type >::value &&(std::is_same< fp_type, FieldType >::value||std::is_same< fr_type, FieldType >::value), std::pair< bool, typename FieldType::value_type > >::type field_element_from_bytes (InputFieldValueIterator first, InputFieldValueIterator last)
 
template<typename FieldType , typename InputFieldValueIterator >
static std::enable_if< crypto3::algebra::is_extended_field< FieldType >::value &&std::is_same< chunk_type, typename std::iterator_traits< InputFieldValueIterator >::value_type >::value, std::pair< bool, typename FieldType::value_type > >::type field_element_from_bytes (InputFieldValueIterator first, InputFieldValueIterator last)
 
template<typename FieldType , typename OutputIterator >
static std::enable_if< !crypto3::algebra::is_extended_field< FieldType >::value &&(std::is_same< fp_type, FieldType >::value||std::is_same< fr_type, FieldType >::value) &&std::is_same< chunk_type, typename std::iterator_traits< OutputIterator >::value_type >::value, std::size_t >::type field_element_to_bytes (const typename FieldType::value_type &element, OutputIterator out_first, OutputIterator out_last)
 
template<typename FieldType , typename OutputIterator >
static std::enable_if< crypto3::algebra::is_extended_field< FieldType >::value &&std::is_same< chunk_type, typename std::iterator_traits< OutputIterator >::value_type >::value, std::size_t >::type field_element_to_bytes (const typename FieldType::value_type &element, OutputIterator out_first, OutputIterator out_last)
 
template<typename InputG1Iterator >
static std::enable_if< std::is_same< chunk_type, typename std::iterator_traits< InputG1Iterator >::value_type >::value, typename g1_type::value_type >::type g1_point_from_bytes (InputG1Iterator first, InputG1Iterator last)
 
template<typename InputG2Iterator >
static std::enable_if< std::is_same< chunk_type, typename std::iterator_traits< InputG2Iterator >::value_type >::value, typename g2_type::value_type >::type g2_point_from_bytes (InputG2Iterator first, InputG2Iterator last)
 
template<typename FieldType >
constexpr static std::enable_if< std::is_same< fr_type, FieldType >::value, std::size_t >::type get_element_size ()
 
template<typename FieldType >
constexpr static std::enable_if< std::is_same< fp_type, FieldType >::value, std::size_t >::type get_element_size ()
 
template<typename FieldType >
constexpr static std::enable_if< std::is_same< gt_type, FieldType >::value, std::size_t >::type get_element_size ()
 
template<typename GroupType >
constexpr static std::enable_if< std::is_same< g1_type, GroupType >::value, std::size_t >::type get_element_size ()
 
template<typename GroupType >
constexpr static std::enable_if< std::is_same< g2_type, GroupType >::value, std::size_t >::type get_element_size ()
 
template<typename GroupType , typename OutputIterator >
static std::enable_if< std::is_same< g1_type, GroupType >::value||std::is_same< g2_type, GroupType >::value, std::size_t >::type point_to_bytes (const typename GroupType::value_type &point, OutputIterator out_first, OutputIterator out_last)
 

Static Public Attributes

constexpr static const std::size_t chunk_size = 8
 
constexpr static std::size_t fp_octets_num
 
constexpr static std::size_t fr_octets_num
 
constexpr static std::size_t g1_octets_num = fp_octets_num
 
constexpr static std::size_t g2_octets_num = 2 * fp_octets_num
 
constexpr static std::size_t gt_octets_num = gt_type::arity * fp_octets_num
 

Member Typedef Documentation

◆ chunk_type

◆ curve_type

◆ fp_type

◆ fr_type

◆ g1_type

◆ g2_type

◆ gt_type

Member Function Documentation

◆ field_element_from_bytes() [1/2]

template<typename FieldType , typename InputFieldValueIterator >
static std::enable_if< !crypto3::algebra::is_extended_field<FieldType>::value && std::is_same<chunk_type, typename std::iterator_traits<InputFieldValueIterator>::value_type>::value && (std::is_same<fp_type, FieldType>::value || std::is_same<fr_type, FieldType>::value), std::pair<bool, typename FieldType::value_type> >::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::field_element_from_bytes ( InputFieldValueIterator  first,
InputFieldValueIterator  last 
)
inlinestatic

◆ field_element_from_bytes() [2/2]

template<typename FieldType , typename InputFieldValueIterator >
static std::enable_if< crypto3::algebra::is_extended_field<FieldType>::value && std::is_same<chunk_type, typename std::iterator_traits<InputFieldValueIterator>::value_type>::value, std::pair<bool, typename FieldType::value_type> >::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::field_element_from_bytes ( InputFieldValueIterator  first,
InputFieldValueIterator  last 
)
inlinestatic

◆ field_element_to_bytes() [1/2]

template<typename FieldType , typename OutputIterator >
static std::enable_if< !crypto3::algebra::is_extended_field<FieldType>::value && (std::is_same<fp_type, FieldType>::value || std::is_same<fr_type, FieldType>::value) && std::is_same<chunk_type, typename std::iterator_traits<OutputIterator>::value_type>::value, std::size_t>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::field_element_to_bytes ( const typename FieldType::value_type &  element,
OutputIterator  out_first,
OutputIterator  out_last 
)
inlinestatic

◆ field_element_to_bytes() [2/2]

template<typename FieldType , typename OutputIterator >
static std::enable_if< crypto3::algebra::is_extended_field<FieldType>::value && std::is_same<chunk_type, typename std::iterator_traits<OutputIterator>::value_type>::value, std::size_t>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::field_element_to_bytes ( const typename FieldType::value_type &  element,
OutputIterator  out_first,
OutputIterator  out_last 
)
inlinestatic

◆ g1_point_from_bytes()

template<typename InputG1Iterator >
static std::enable_if< std::is_same<chunk_type, typename std::iterator_traits<InputG1Iterator>::value_type>::value, typename g1_type::value_type>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::g1_point_from_bytes ( InputG1Iterator  first,
InputG1Iterator  last 
)
inlinestatic

◆ g2_point_from_bytes()

template<typename InputG2Iterator >
static std::enable_if< std::is_same<chunk_type, typename std::iterator_traits<InputG2Iterator>::value_type>::value, typename g2_type::value_type>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::g2_point_from_bytes ( InputG2Iterator  first,
InputG2Iterator  last 
)
inlinestatic

◆ get_element_size() [1/5]

template<typename FieldType >
constexpr static std::enable_if<std::is_same<fr_type, FieldType>::value, std::size_t>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::get_element_size ( )
inlinestaticconstexpr

◆ get_element_size() [2/5]

template<typename FieldType >
constexpr static std::enable_if<std::is_same<fp_type, FieldType>::value, std::size_t>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::get_element_size ( )
inlinestaticconstexpr

◆ get_element_size() [3/5]

template<typename FieldType >
constexpr static std::enable_if<std::is_same<gt_type, FieldType>::value, std::size_t>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::get_element_size ( )
inlinestaticconstexpr

◆ get_element_size() [4/5]

template<typename GroupType >
constexpr static std::enable_if<std::is_same<g1_type, GroupType>::value, std::size_t>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::get_element_size ( )
inlinestaticconstexpr

◆ get_element_size() [5/5]

template<typename GroupType >
constexpr static std::enable_if<std::is_same<g2_type, GroupType>::value, std::size_t>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::get_element_size ( )
inlinestaticconstexpr

◆ point_to_bytes()

template<typename GroupType , typename OutputIterator >
static std::enable_if< std::is_same<g1_type, GroupType>::value || std::is_same<g2_type, GroupType>::value, std::size_t>::type nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::point_to_bytes ( const typename GroupType::value_type &  point,
OutputIterator  out_first,
OutputIterator  out_last 
)
inlinestatic

Member Data Documentation

◆ chunk_size

constexpr static const std::size_t nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::chunk_size = 8
staticconstexpr

◆ fp_octets_num

constexpr static std::size_t nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::fp_octets_num
staticconstexpr
Initial value:
=
curve_type::base_field_type::modulus_bits / chunk_size +
(curve_type::base_field_type::modulus_bits % chunk_size ? 1 : 0)
constexpr static const std::size_t chunk_size
Definition: algebra/include/nil/crypto3/algebra/marshalling.hpp:145

◆ fr_octets_num

constexpr static std::size_t nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::fr_octets_num
staticconstexpr
Initial value:
=
curve_type::scalar_field_type::modulus_bits / chunk_size +
(curve_type::scalar_field_type::modulus_bits % chunk_size ? 1 : 0)

◆ g1_octets_num

constexpr static std::size_t nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::g1_octets_num = fp_octets_num
staticconstexpr

◆ g2_octets_num

constexpr static std::size_t nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::g2_octets_num = 2 * fp_octets_num
staticconstexpr

◆ gt_octets_num

constexpr static std::size_t nil::marshalling::curve_bincode<::nil::crypto3::algebra::curves::bls12< 381 > >::gt_octets_num = gt_type::arity * fp_octets_num
staticconstexpr

The documentation for this struct was generated from the following file: