|
Botan 3.13.0
Crypto and TLS for C&
|
#include <bitvector.h>
Public Types | |
| using | const_iterator = typename T::const_iterator |
| The const iterator type of the wrapped container. | |
| using | const_pointer = typename T::const_pointer |
| using | iterator = typename T::iterator |
| The iterator type of the wrapped container. | |
| using | pointer = typename T::pointer |
| using | size_type = typename T::size_type |
| using | value_type = typename T::value_type |
| The element type of the wrapped container. | |
| using | wrapped_type |
| The type wrapped by this strong type. | |
| using | wrapped_type = T |
| The type wrapped by this strong type. | |
| using | wrapped_type = T |
| The type wrapped by this strong type. | |
Public Member Functions | |
| constexpr void | _const_time_poison () const |
| constexpr void | _const_time_unpoison () const |
| auto | all_vartime () const |
| auto | any_vartime () const |
| template<typename OutT> | |
| auto | as () const |
| auto | at (size_type i) |
| auto | at (size_type i) const |
| auto | back () |
| auto | back () const |
| decltype(auto) | begin () const noexcept(noexcept(this->get().begin())) |
| decltype(auto) | begin () noexcept(noexcept(this->get().begin())) |
| auto | capacity () const |
| decltype(auto) | cbegin () const noexcept(noexcept(this->get().cbegin())) |
| decltype(auto) | cbegin () noexcept(noexcept(this->get().cbegin())) |
| decltype(auto) | cend () const noexcept(noexcept(this->get().cend())) |
| decltype(auto) | cend () noexcept(noexcept(this->get().cend())) |
| decltype(auto) | data () const noexcept(noexcept(this->get().data())) |
| decltype(auto) | data () noexcept(noexcept(this->get().data())) |
| bool | empty () const noexcept(noexcept(this->get().empty())) |
| decltype(auto) | end () const noexcept(noexcept(this->get().end())) |
| decltype(auto) | end () noexcept(noexcept(this->get().end())) |
| template<bitvectorish OtherT> | |
| auto | equals (const OtherT &other) const |
| auto | flip () |
| auto | flip (size_type i) |
| auto | from_bytes (std::span< const uint8_t > bytes, std::optional< size_type > bits=std::nullopt) |
| auto | front () |
| auto | front () const |
| constexpr T & | get () & |
| constexpr T && | get () && |
| constexpr const T & | get () const & |
| constexpr const T && | get () const && |
| constexpr T & | get () & |
| constexpr T & | get () & |
| constexpr T && | get () && |
| constexpr T && | get () && |
| constexpr const T & | get () const & |
| constexpr const T & | get () const & |
| constexpr const T && | get () const && |
| constexpr const T && | get () const && |
| auto | hamming_weight () const |
| auto | has_odd_hamming_weight () const |
| auto | none_vartime () const |
| template<typename U> | |
| decltype(auto) | operator[] (U &&i) const noexcept(noexcept(this->get().operator[](i))) |
| template<typename U> | |
| decltype(auto) | operator[] (U &&i) noexcept(noexcept(this->get().operator[](i))) |
| auto | pop_back () |
| auto | push_back (bool b) |
| auto | push_back (CT::Choice b) |
| auto | reserve (size_type n) |
| void | resize (size_type size) noexcept(noexcept(this->get().resize(size))) |
| auto | set (size_type i) |
| size_type | size () const noexcept(noexcept(this->get().size())) |
| Strong_Adapter (const char *str) | |
| Strong_Adapter (std::span< const typename Container_Strong_Adapter_Base< T >::value_type > span) | |
| template<typename OutT> | |
| auto | subvector (size_type pos) const |
| template<bitvectorish OutT = T> | |
| auto | subvector (size_type pos, std::optional< size_type > length=std::nullopt) const |
| template<typename InT> | |
| void | subvector_replace (size_type pos, InT value) |
| template<typename OutT = T> | |
| auto | to_bytes () const |
| auto | to_bytes (std::span< uint8_t > out) const |
| auto | to_string () const |
| auto | unset (size_type i) |
A Strong<> adapter for arbitrarily large bitvectors
Definition at line 1408 of file bitvector.h.
|
inherited |
The const iterator type of the wrapped container.
Definition at line 158 of file strong_type.h.
| using Botan::detail::Strong_Adapter< T >::const_pointer = typename T::const_pointer |
Definition at line 263 of file strong_type.h.
|
inherited |
The iterator type of the wrapped container.
Definition at line 155 of file strong_type.h.
| using Botan::detail::Strong_Adapter< T >::pointer = typename T::pointer |
Definition at line 262 of file strong_type.h.
| using Botan::detail::Strong_Adapter< T >::size_type = typename T::size_type |
Definition at line 1410 of file bitvector.h.
|
inherited |
The element type of the wrapped container.
Definition at line 149 of file strong_type.h.
| using Botan::detail::Strong_Base< T >::wrapped_type |
The type wrapped by this strong type.
Definition at line 81 of file strong_type.h.
|
inherited |
The type wrapped by this strong type.
Definition at line 81 of file strong_type.h.
|
inherited |
The type wrapped by this strong type.
Definition at line 81 of file strong_type.h.
|
inlineexplicit |
Definition at line 268 of file strong_type.h.
References Botan::detail::Container_Strong_Adapter_Base< T >::begin(), Botan::detail::Container_Strong_Adapter_Base< T >::end(), and Strong_Adapter().
Referenced by Strong_Adapter(), and Strong_Adapter().
|
inlineexplicit |
|
inlineconstexpr |
Definition at line 1496 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inlineconstexpr |
Definition at line 1498 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
|
inline |
Definition at line 1428 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1417 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1415 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
Referenced by Botan::LMOTS_Private_Key::chain_input(), and Botan::Classic_McEliece_Field_Ordering::permute_with_pivots().
|
inline |
|
inline |
|
inlinenoexceptinherited |
Iterate the wrapped container
Definition at line 182 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Iterate the wrapped container
Definition at line 178 of file strong_type.h.
References begin(), and Botan::detail::Strong_Base< T >::get().
Referenced by begin(), Container_Strong_Adapter_Base(), Botan::Classic_McEliece_Field_Ordering::create_from_control_bits(), Botan::encode_point(), Botan::Sphincs_Hash_Functions_Sha2::Sphincs_Hash_Functions_Sha2(), and Botan::detail::Strong_Adapter< T >::Strong_Adapter().
|
inline |
|
inlinenoexceptinherited |
Iterate the wrapped container
Definition at line 198 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Iterate the wrapped container
Definition at line 194 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Iterate the wrapped container
Definition at line 206 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Iterate the wrapped container
Definition at line 202 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexcept |
|
inlinenoexcept |
Definition at line 279 of file strong_type.h.
References data(), get(), and Botan::detail::Strong_Base< T >::get().
Referenced by Botan::Classic_McEliece_Field_Ordering::ct_is_equal(), data(), Botan::Kyber_KEM_Decryptor::decapsulate(), and Botan::FrodoMatrix::serialize().
|
inlinenoexceptinherited |
Query whether the wrapped container is empty
Definition at line 214 of file strong_type.h.
References empty(), and Botan::detail::Strong_Base< T >::get().
Referenced by empty(), and Botan::TLS::Client_Hello_12::session_handle().
|
inlinenoexceptinherited |
Iterate the wrapped container
Definition at line 190 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Iterate the wrapped container
Definition at line 186 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
Referenced by Container_Strong_Adapter_Base(), Botan::Classic_McEliece_Field_Ordering::create_from_control_bits(), Botan::encode_point(), Botan::Sphincs_Hash_Functions_Sha2::Sphincs_Hash_Functions_Sha2(), and Botan::detail::Strong_Adapter< T >::Strong_Adapter().
|
inline |
Definition at line 1451 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
Definition at line 1423 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1479 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
|
inlineconstexpr |
Access the wrapped value
Definition at line 109 of file strong_type.h.
Referenced by data().
|
inlineconstexpr |
Access the wrapped value
Definition at line 117 of file strong_type.h.
|
inlineconstexpr |
Access the wrapped value
Definition at line 113 of file strong_type.h.
|
inlineconstexpr |
Access the wrapped value
Definition at line 121 of file strong_type.h.
|
inlineconstexprinherited |
Access the wrapped value
Definition at line 109 of file strong_type.h.
Referenced by Botan::detail::Strong_Adapter< T >::_const_time_poison(), Botan::detail::Strong_Adapter< T >::_const_time_unpoison(), Botan::detail::Strong_Adapter< T >::all_vartime(), Botan::detail::Strong_Adapter< T >::any_vartime(), Botan::detail::Strong_Adapter< T >::as(), Botan::detail::Strong_Adapter< T >::at(), Botan::detail::Strong_Adapter< T >::at(), Botan::detail::Strong_Adapter< T >::back(), Botan::detail::Strong_Adapter< T >::back(), Botan::detail::Container_Strong_Adapter_Base< T >::begin(), Botan::detail::Container_Strong_Adapter_Base< T >::begin(), Botan::detail::Strong_Adapter< T >::capacity(), Botan::detail::Container_Strong_Adapter_Base< T >::cbegin(), Botan::detail::Container_Strong_Adapter_Base< T >::cbegin(), Botan::detail::Container_Strong_Adapter_Base< T >::cend(), Botan::detail::Container_Strong_Adapter_Base< T >::cend(), Botan::chain_lengths(), Botan::compute_root(), Botan::detail::Strong_Adapter< T >::data(), Botan::detail::Strong_Adapter< T >::data(), Botan::detail::Container_Strong_Adapter_Base< T >::empty(), Botan::detail::Container_Strong_Adapter_Base< T >::end(), Botan::detail::Container_Strong_Adapter_Base< T >::end(), Botan::detail::Strong_Adapter< T >::equals(), Botan::GF_Mask::expand(), Botan::detail::Strong_Adapter< T >::flip(), Botan::detail::Strong_Adapter< T >::flip(), Botan::detail::Strong_Adapter< T >::from_bytes(), Botan::detail::Strong_Adapter< T >::front(), Botan::detail::Strong_Adapter< T >::front(), Botan::detail::Strong_Adapter< T >::hamming_weight(), Botan::detail::Strong_Adapter< T >::has_odd_hamming_weight(), Botan::ht_sign(), Botan::ht_verify(), Botan::GF_Mask::if_set_return(), Botan::GF_Mask::is_equal(), Botan::GF_Mask::is_lte(), Botan::GF_Mask::is_zero(), Botan::detail::Strong_Adapter< T >::none_vartime(), Botan::operator&(), Botan::operator&(), Botan::operator&(), Botan::operator&=(), Botan::operator&=(), Botan::Classic_McEliece_GF::operator*(), Botan::operator*(), Botan::operator*(), Botan::operator*(), Botan::operator*=(), Botan::operator*=(), Botan::operator+(), Botan::operator+(), Botan::operator+(), Botan::operator++(), Botan::operator++(), Botan::operator+=(), Botan::operator+=(), Botan::operator-(), Botan::operator-(), Botan::operator-(), Botan::operator--(), Botan::operator--(), Botan::operator-=(), Botan::operator-=(), Botan::operator/(), Botan::operator/(), Botan::operator/(), Botan::operator/=(), Botan::operator/=(), Botan::TLS::operator<(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<=(), Botan::operator<<=(), Botan::operator<=>(), Botan::operator<=>(), Botan::operator<=>(), Botan::operator==(), Botan::operator==(), Botan::operator==(), Botan::operator>>(), Botan::operator>>(), Botan::operator>>(), Botan::operator>>=(), Botan::operator>>=(), Botan::detail::Container_Strong_Adapter_Base< T >::operator[](), Botan::detail::Container_Strong_Adapter_Base< T >::operator[](), Botan::operator^(), Botan::operator^(), Botan::operator^(), Botan::operator^=(), Botan::operator^=(), Botan::operator|(), Botan::operator|(), Botan::operator|(), Botan::operator|=(), Botan::operator|=(), Botan::HSS_LMS_Params::params_at_level(), Botan::detail::Strong_Adapter< T >::pop_back(), Botan::TLS::Cipher_State::psk(), Botan::detail::Strong_Adapter< T >::push_back(), Botan::detail::Strong_Adapter< T >::push_back(), Botan::Classic_McEliece_Encryptor::raw_kem_encrypt(), Botan::detail::Container_Strong_Adapter_Base< T >::reserve(), Botan::detail::Strong_Adapter< T >::reserve(), Botan::detail::Container_Strong_Adapter_Base< T >::resize(), Botan::GF_Mask::select(), Botan::GF_Mask::select(), Botan::detail::Strong_Adapter< T >::set(), Botan::Sphincs_Address::set_chain_address(), Botan::Sphincs_Address::set_hash_address(), Botan::HSS_LMS_PrivateKeyInternal::set_idx(), Botan::Sphincs_Address::set_keypair_address(), Botan::Sphincs_Address::set_layer_address(), Botan::Sphincs_Address::set_tree_address(), Botan::Sphincs_Address::set_tree_height(), Botan::Sphincs_Address::set_tree_index(), Botan::HSS_LMS_PrivateKeyInternal::sign(), Botan::LMS_PrivateKey::sign_and_get_pk(), Botan::HSS_Signature::signed_pub_key(), Botan::detail::Container_Strong_Adapter_Base< T >::size(), Botan::detail::Strong_Adapter< T >::subvector(), Botan::detail::Strong_Adapter< T >::subvector(), Botan::detail::Strong_Adapter< T >::subvector_replace(), Botan::detail::Strong_Adapter< T >::to_bytes(), Botan::detail::Strong_Adapter< T >::to_bytes(), Botan::detail::Strong_Adapter< T >::to_string(), Botan::treehash(), Botan::detail::Strong_Adapter< T >::unset(), Botan::wots_public_key_from_signature(), and Botan::x448().
|
inlineconstexprinherited |
Access the wrapped value
Definition at line 109 of file strong_type.h.
Referenced by Botan::detail::Strong_Adapter< T >::_const_time_poison(), Botan::detail::Strong_Adapter< T >::_const_time_unpoison(), Botan::detail::Strong_Adapter< T >::all_vartime(), Botan::detail::Strong_Adapter< T >::any_vartime(), Botan::detail::Strong_Adapter< T >::as(), Botan::detail::Strong_Adapter< T >::at(), Botan::detail::Strong_Adapter< T >::at(), Botan::detail::Strong_Adapter< T >::back(), Botan::detail::Strong_Adapter< T >::back(), Botan::detail::Container_Strong_Adapter_Base< T >::begin(), Botan::detail::Container_Strong_Adapter_Base< T >::begin(), Botan::detail::Strong_Adapter< T >::capacity(), Botan::detail::Container_Strong_Adapter_Base< T >::cbegin(), Botan::detail::Container_Strong_Adapter_Base< T >::cbegin(), Botan::detail::Container_Strong_Adapter_Base< T >::cend(), Botan::detail::Container_Strong_Adapter_Base< T >::cend(), Botan::chain_lengths(), Botan::compute_root(), Botan::detail::Strong_Adapter< T >::data(), Botan::detail::Strong_Adapter< T >::data(), Botan::detail::Container_Strong_Adapter_Base< T >::empty(), Botan::detail::Container_Strong_Adapter_Base< T >::end(), Botan::detail::Container_Strong_Adapter_Base< T >::end(), Botan::detail::Strong_Adapter< T >::equals(), Botan::GF_Mask::expand(), Botan::detail::Strong_Adapter< T >::flip(), Botan::detail::Strong_Adapter< T >::flip(), Botan::detail::Strong_Adapter< T >::from_bytes(), Botan::detail::Strong_Adapter< T >::front(), Botan::detail::Strong_Adapter< T >::front(), Botan::detail::Strong_Adapter< T >::hamming_weight(), Botan::detail::Strong_Adapter< T >::has_odd_hamming_weight(), Botan::ht_sign(), Botan::ht_verify(), Botan::GF_Mask::if_set_return(), Botan::GF_Mask::is_equal(), Botan::GF_Mask::is_lte(), Botan::GF_Mask::is_zero(), Botan::detail::Strong_Adapter< T >::none_vartime(), Botan::operator&(), Botan::operator&(), Botan::operator&(), Botan::operator&=(), Botan::operator&=(), Botan::Classic_McEliece_GF::operator*(), Botan::operator*(), Botan::operator*(), Botan::operator*(), Botan::operator*=(), Botan::operator*=(), Botan::operator+(), Botan::operator+(), Botan::operator+(), Botan::operator++(), Botan::operator++(), Botan::operator+=(), Botan::operator+=(), Botan::operator-(), Botan::operator-(), Botan::operator-(), Botan::operator--(), Botan::operator--(), Botan::operator-=(), Botan::operator-=(), Botan::operator/(), Botan::operator/(), Botan::operator/(), Botan::operator/=(), Botan::operator/=(), Botan::TLS::operator<(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<=(), Botan::operator<<=(), Botan::operator<=>(), Botan::operator<=>(), Botan::operator<=>(), Botan::operator==(), Botan::operator==(), Botan::operator==(), Botan::operator>>(), Botan::operator>>(), Botan::operator>>(), Botan::operator>>=(), Botan::operator>>=(), Botan::detail::Container_Strong_Adapter_Base< T >::operator[](), Botan::detail::Container_Strong_Adapter_Base< T >::operator[](), Botan::operator^(), Botan::operator^(), Botan::operator^(), Botan::operator^=(), Botan::operator^=(), Botan::operator|(), Botan::operator|(), Botan::operator|(), Botan::operator|=(), Botan::operator|=(), Botan::HSS_LMS_Params::params_at_level(), Botan::detail::Strong_Adapter< T >::pop_back(), Botan::TLS::Cipher_State::psk(), Botan::detail::Strong_Adapter< T >::push_back(), Botan::detail::Strong_Adapter< T >::push_back(), Botan::Classic_McEliece_Encryptor::raw_kem_encrypt(), Botan::detail::Container_Strong_Adapter_Base< T >::reserve(), Botan::detail::Strong_Adapter< T >::reserve(), Botan::detail::Container_Strong_Adapter_Base< T >::resize(), Botan::GF_Mask::select(), Botan::GF_Mask::select(), Botan::detail::Strong_Adapter< T >::set(), Botan::Sphincs_Address::set_chain_address(), Botan::Sphincs_Address::set_hash_address(), Botan::HSS_LMS_PrivateKeyInternal::set_idx(), Botan::Sphincs_Address::set_keypair_address(), Botan::Sphincs_Address::set_layer_address(), Botan::Sphincs_Address::set_tree_address(), Botan::Sphincs_Address::set_tree_height(), Botan::Sphincs_Address::set_tree_index(), Botan::HSS_LMS_PrivateKeyInternal::sign(), Botan::LMS_PrivateKey::sign_and_get_pk(), Botan::HSS_Signature::signed_pub_key(), Botan::detail::Container_Strong_Adapter_Base< T >::size(), Botan::detail::Strong_Adapter< T >::subvector(), Botan::detail::Strong_Adapter< T >::subvector(), Botan::detail::Strong_Adapter< T >::subvector_replace(), Botan::detail::Strong_Adapter< T >::to_bytes(), Botan::detail::Strong_Adapter< T >::to_bytes(), Botan::detail::Strong_Adapter< T >::to_string(), Botan::treehash(), Botan::detail::Strong_Adapter< T >::unset(), Botan::wots_public_key_from_signature(), and Botan::x448().
|
inlineconstexprinherited |
Access the wrapped value
Definition at line 117 of file strong_type.h.
|
inlineconstexprinherited |
Access the wrapped value
Definition at line 117 of file strong_type.h.
|
inlineconstexprinherited |
Access the wrapped value
Definition at line 113 of file strong_type.h.
|
inlineconstexprinherited |
Access the wrapped value
Definition at line 113 of file strong_type.h.
|
inlineconstexprinherited |
Access the wrapped value
Definition at line 121 of file strong_type.h.
|
inlineconstexprinherited |
Access the wrapped value
Definition at line 121 of file strong_type.h.
|
inline |
|
inline |
|
inline |
|
inlinenoexceptinherited |
Element access
| i | the index of the element |
Definition at line 240 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Element access
| i | the index of the element |
Definition at line 248 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
Definition at line 1455 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1457 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1494 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Change the number of elements held
| size | the new number of elements |
Definition at line 222 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get(), and size().
|
inline |
Definition at line 1419 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Query the size of the wrapped container
Definition at line 210 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get(), and size().
Referenced by Botan::compute_root(), Container_Strong_Adapter_Base(), Botan::Classic_McEliece_Field_Ordering::ct_is_equal(), Botan::Kyber_KEM_Decryptor::decapsulate(), Botan::Dilithium_Algos::expand_keypair(), reserve(), resize(), size(), and Botan::Sphincs_Hash_Functions_Sha2::Sphincs_Hash_Functions_Sha2().
|
inline |
Definition at line 1440 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get(), and subvector().
|
inline |
Definition at line 1433 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get(), and subvector().
Referenced by Botan::Classic_McEliece_Matrix::mul(), subvector(), and subvector().
|
inline |
Definition at line 1446 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1484 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get(), and to_bytes().
Referenced by to_bytes().
|
inline |
Definition at line 1488 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
Definition at line 1421 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().