Botan 3.8.1
Crypto and TLS for C&
|
#include <bitvector.h>
Public Types | |
using | const_iterator = typename T::const_iterator |
using | const_pointer = typename T::const_pointer |
using | iterator = typename T::iterator |
using | pointer = typename T::pointer |
using | size_type = typename T::size_type |
using | value_type = typename T::value_type |
using | wrapped_type |
using | wrapped_type = T |
using | wrapped_type = T |
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 |
template<typename U> requires (concepts::has_bounds_checked_accessors<T>) | |
decltype(auto) | at (U &&i) const noexcept(noexcept(this->get().at(i))) |
template<typename U> requires (concepts::has_bounds_checked_accessors<T>) | |
decltype(auto) | at (U &&i) noexcept(noexcept(this->get().at(i))) |
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 | 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> requires (std::unsigned_integral<strong_type_wrapped_type<OutT>> && !std::same_as<bool, strong_type_wrapped_type<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> requires (std::unsigned_integral<strong_type_wrapped_type<InT>> && !std::same_as<bool, 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 1359 of file bitvector.h.
|
inherited |
Definition at line 78 of file strong_type.h.
using Botan::detail::Strong_Adapter< T >::const_pointer = typename T::const_pointer |
Definition at line 162 of file strong_type.h.
|
inherited |
Definition at line 77 of file strong_type.h.
using Botan::detail::Strong_Adapter< T >::pointer = typename T::pointer |
Definition at line 161 of file strong_type.h.
using Botan::detail::Strong_Adapter< T >::size_type = typename T::size_type |
Definition at line 1361 of file bitvector.h.
|
inherited |
Definition at line 75 of file strong_type.h.
using Botan::detail::Strong_Base< T >::wrapped_type |
Definition at line 40 of file strong_type.h.
|
inherited |
Definition at line 40 of file strong_type.h.
|
inherited |
Definition at line 40 of file strong_type.h.
|
inlineexplicit |
Definition at line 167 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 1445 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inlineconstexpr |
Definition at line 1447 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
|
inline |
Definition at line 1379 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Definition at line 138 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Definition at line 145 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1368 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1366 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 |
|
inlinenoexceptinherited |
Definition at line 91 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::TLS::operator<(), Botan::Sphincs_Hash_Functions_Sha2::Sphincs_Hash_Functions_Sha2(), and Botan::detail::Strong_Adapter< T >::Strong_Adapter().
|
inline |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexcept |
|
inlinenoexcept |
Definition at line 178 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(), Botan::TLS::Cipher_State::next_ticket_nonce(), and Botan::FrodoMatrix::serialize().
|
inlinenoexceptinherited |
Definition at line 109 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 |
|
inlinenoexceptinherited |
Definition at line 95 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::TLS::operator<(), Botan::Sphincs_Hash_Functions_Sha2::Sphincs_Hash_Functions_Sha2(), and Botan::detail::Strong_Adapter< T >::Strong_Adapter().
|
inline |
Definition at line 1402 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
Definition at line 1374 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1428 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
|
inlineconstexpr |
|
inlineconstexpr |
Definition at line 55 of file strong_type.h.
|
inlineconstexpr |
Definition at line 53 of file strong_type.h.
|
inlineconstexpr |
Definition at line 57 of file strong_type.h.
|
inlineconstexprinherited |
Definition at line 51 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::Container_Strong_Adapter_Base< T >::at(), Botan::detail::Container_Strong_Adapter_Base< T >::at(), 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::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::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::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 |
Definition at line 51 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::Container_Strong_Adapter_Base< T >::at(), Botan::detail::Container_Strong_Adapter_Base< T >::at(), 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::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::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::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 |
Definition at line 55 of file strong_type.h.
|
inlineconstexprinherited |
Definition at line 55 of file strong_type.h.
|
inlineconstexprinherited |
Definition at line 53 of file strong_type.h.
|
inlineconstexprinherited |
Definition at line 53 of file strong_type.h.
|
inlineconstexprinherited |
Definition at line 57 of file strong_type.h.
|
inlineconstexprinherited |
Definition at line 57 of file strong_type.h.
|
inline |
|
inline |
|
inline |
|
inlinenoexceptinherited |
Definition at line 128 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Definition at line 133 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
Definition at line 1406 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1443 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Definition at line 115 of file strong_type.h.
References Botan::detail::Strong_Base< T >::get(), and size().
|
inline |
Definition at line 1370 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inlinenoexceptinherited |
Definition at line 107 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(), reserve(), resize(), size(), and Botan::Sphincs_Hash_Functions_Sha2::Sphincs_Hash_Functions_Sha2().
|
inline |
Definition at line 1391 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get(), and subvector().
|
inline |
Definition at line 1384 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 1397 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
Definition at line 1433 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get(), and to_bytes().
Referenced by to_bytes().
|
inline |
Definition at line 1437 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().
|
inline |
|
inline |
Definition at line 1372 of file bitvector.h.
References Botan::detail::Strong_Base< T >::get().