Botan 3.8.1
Crypto and TLS for C&
Botan::detail::Strong_Adapter< T > Class Template Reference

#include <bitvector.h>

Inheritance diagram for Botan::detail::Strong_Adapter< T >:
Botan::detail::Strong_Base< T > Botan::detail::Container_Strong_Adapter_Base< T > Botan::detail::Strong_Base< T > Botan::detail::Container_Strong_Adapter_Base< T > Botan::detail::Container_Strong_Adapter_Base< T > Botan::detail::Strong_Base< T > Botan::detail::Strong_Base< T > Botan::detail::Strong_Base< T > Botan::Strong< T, TagTypeT, Capabilities >

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)
 

Detailed Description

template<concepts::container T>
requires is_bitvector_v<T>
class Botan::detail::Strong_Adapter< T >

A Strong<> adapter for arbitrarily large bitvectors

Definition at line 1359 of file bitvector.h.

Member Typedef Documentation

◆ const_iterator

template<concepts::container T>
using Botan::detail::Container_Strong_Adapter_Base< T >::const_iterator = typename T::const_iterator
inherited

Definition at line 78 of file strong_type.h.

◆ const_pointer

template<concepts::container T>
using Botan::detail::Strong_Adapter< T >::const_pointer = typename T::const_pointer

Definition at line 162 of file strong_type.h.

◆ iterator

template<concepts::container T>
using Botan::detail::Container_Strong_Adapter_Base< T >::iterator = typename T::iterator
inherited

Definition at line 77 of file strong_type.h.

◆ pointer

template<concepts::container T>
using Botan::detail::Strong_Adapter< T >::pointer = typename T::pointer

Definition at line 161 of file strong_type.h.

◆ size_type

template<concepts::container T>
using Botan::detail::Strong_Adapter< T >::size_type = typename T::size_type

Definition at line 1361 of file bitvector.h.

◆ value_type

template<concepts::container T>
using Botan::detail::Container_Strong_Adapter_Base< T >::value_type = typename T::value_type
inherited

Definition at line 75 of file strong_type.h.

◆ wrapped_type [1/3]

using Botan::detail::Strong_Base< T >::wrapped_type

Definition at line 40 of file strong_type.h.

◆ wrapped_type [2/3]

template<typename T>
using Botan::detail::Strong_Base< T >::wrapped_type = T
inherited

Definition at line 40 of file strong_type.h.

◆ wrapped_type [3/3]

template<typename T>
using Botan::detail::Strong_Base< T >::wrapped_type = T
inherited

Definition at line 40 of file strong_type.h.

Constructor & Destructor Documentation

◆ Strong_Adapter() [1/2]

template<concepts::container T>
Botan::detail::Strong_Adapter< T >::Strong_Adapter ( std::span< const typename Container_Strong_Adapter_Base< T >::value_type > span)
inlineexplicit

Definition at line 167 of file strong_type.h.

167 :
168 Strong_Adapter(T(span.begin(), span.end())) {}
Strong_Adapter(std::span< const typename Container_Strong_Adapter_Base< T >::value_type > span)

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().

◆ Strong_Adapter() [2/2]

template<concepts::container T>
Botan::detail::Strong_Adapter< T >::Strong_Adapter ( const char * str)
inlineexplicit

Definition at line 173 of file strong_type.h.

References Strong_Adapter().

Member Function Documentation

◆ _const_time_poison()

template<concepts::container T>
void Botan::detail::Strong_Adapter< T >::_const_time_poison ( ) const
inlineconstexpr

Definition at line 1445 of file bitvector.h.

1445{ this->get()._const_time_poison(); }

References Botan::detail::Strong_Base< T >::get().

◆ _const_time_unpoison()

template<concepts::container T>
void Botan::detail::Strong_Adapter< T >::_const_time_unpoison ( ) const
inlineconstexpr

Definition at line 1447 of file bitvector.h.

1447{ this->get()._const_time_unpoison(); }

References Botan::detail::Strong_Base< T >::get().

◆ all_vartime()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::all_vartime ( ) const
inline

Definition at line 1420 of file bitvector.h.

1420{ return this->get().all_vartime(); }

References Botan::detail::Strong_Base< T >::get().

◆ any_vartime()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::any_vartime ( ) const
inline

Definition at line 1418 of file bitvector.h.

1418{ return this->get().any_vartime(); }

References Botan::detail::Strong_Base< T >::get().

◆ as()

template<concepts::container T>
template<typename OutT>
auto Botan::detail::Strong_Adapter< T >::as ( ) const
inline

Definition at line 1379 of file bitvector.h.

1379 {
1380 return this->get().template as<OutT>();
1381 }

References Botan::detail::Strong_Base< T >::get().

◆ at() [1/4]

template<concepts::container T>
template<typename U>
requires (concepts::has_bounds_checked_accessors<T>)
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::at ( U && i) const
inlinenoexceptinherited

Definition at line 138 of file strong_type.h.

140 {
141 return this->get().at(std::forward<U>(i));
142 }

References Botan::detail::Strong_Base< T >::get().

◆ at() [2/4]

template<concepts::container T>
template<typename U>
requires (concepts::has_bounds_checked_accessors<T>)
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::at ( U && i)
inlinenoexceptinherited

Definition at line 145 of file strong_type.h.

147 {
148 return this->get().at(std::forward<U>(i));
149 }

References Botan::detail::Strong_Base< T >::get().

◆ at() [3/4]

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::at ( size_type i)
inline

Definition at line 1368 of file bitvector.h.

1368{ return this->get().at(i); }

References Botan::detail::Strong_Base< T >::get().

◆ at() [4/4]

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::at ( size_type i) const
inline

◆ back() [1/2]

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::back ( )
inline

Definition at line 1416 of file bitvector.h.

1416{ return this->get().back(); }

References Botan::detail::Strong_Base< T >::get().

◆ back() [2/2]

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::back ( ) const
inline

Definition at line 1414 of file bitvector.h.

1414{ return this->get().back(); }

References Botan::detail::Strong_Base< T >::get().

◆ begin() [1/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::begin ( ) const
inlinenoexceptinherited

Definition at line 93 of file strong_type.h.

93{ return this->get().begin(); }

References Botan::detail::Strong_Base< T >::get().

◆ begin() [2/2]

◆ capacity()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::capacity ( ) const
inline

Definition at line 1441 of file bitvector.h.

1441{ return this->get().capacity(); }

References Botan::detail::Strong_Base< T >::get().

◆ cbegin() [1/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::cbegin ( ) const
inlinenoexceptinherited

Definition at line 101 of file strong_type.h.

101{ return this->get().cbegin(); }

References Botan::detail::Strong_Base< T >::get().

◆ cbegin() [2/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::cbegin ( )
inlinenoexceptinherited

Definition at line 99 of file strong_type.h.

99{ return this->get().cbegin(); }

References Botan::detail::Strong_Base< T >::get().

◆ cend() [1/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::cend ( ) const
inlinenoexceptinherited

Definition at line 105 of file strong_type.h.

105{ return this->get().cend(); }

References Botan::detail::Strong_Base< T >::get().

◆ cend() [2/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::cend ( )
inlinenoexceptinherited

Definition at line 103 of file strong_type.h.

103{ return this->get().cend(); }

References Botan::detail::Strong_Base< T >::get().

◆ data() [1/2]

template<concepts::container T>
decltype(auto) Botan::detail::Strong_Adapter< T >::data ( ) const
inlinenoexcept

Definition at line 180 of file strong_type.h.

180{ return this->get().data(); }

References Botan::detail::Strong_Base< T >::get().

◆ data() [2/2]

template<concepts::container T>
decltype(auto) Botan::detail::Strong_Adapter< T >::data ( )
inlinenoexcept

◆ empty()

template<concepts::container T>
bool Botan::detail::Container_Strong_Adapter_Base< T >::empty ( ) const
inlinenoexceptinherited

Definition at line 109 of file strong_type.h.

111 {
112 return this->get().empty();
113 }

References empty(), and Botan::detail::Strong_Base< T >::get().

Referenced by empty(), and Botan::TLS::Client_Hello_12::session_handle().

◆ end() [1/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::end ( ) const
inlinenoexceptinherited

Definition at line 97 of file strong_type.h.

97{ return this->get().end(); }

References Botan::detail::Strong_Base< T >::get().

◆ end() [2/2]

◆ equals()

template<concepts::container T>
template<bitvectorish OtherT>
auto Botan::detail::Strong_Adapter< T >::equals ( const OtherT & other) const
inline

Definition at line 1402 of file bitvector.h.

1402 {
1403 return this->get().equals(other);
1404 }

References Botan::detail::Strong_Base< T >::get().

◆ flip() [1/2]

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::flip ( )
inline

Definition at line 1376 of file bitvector.h.

1376{ return this->get().flip(); }

References Botan::detail::Strong_Base< T >::get().

◆ flip() [2/2]

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::flip ( size_type i)
inline

Definition at line 1374 of file bitvector.h.

1374{ return this->get().flip(i); }

References Botan::detail::Strong_Base< T >::get().

◆ from_bytes()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::from_bytes ( std::span< const uint8_t > bytes,
std::optional< size_type > bits = std::nullopt )
inline

Definition at line 1428 of file bitvector.h.

1428 {
1429 return this->get().from_bytes(bytes, bits);
1430 }

References Botan::detail::Strong_Base< T >::get().

◆ front() [1/2]

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::front ( )
inline

Definition at line 1412 of file bitvector.h.

1412{ return this->get().front(); }

References Botan::detail::Strong_Base< T >::get().

◆ front() [2/2]

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::front ( ) const
inline

Definition at line 1410 of file bitvector.h.

1410{ return this->get().front(); }

References Botan::detail::Strong_Base< T >::get().

◆ get() [1/12]

T & Botan::detail::Strong_Base< T >::get ( ) &
inlineconstexpr

Definition at line 51 of file strong_type.h.

51{ return m_value; }

Referenced by data().

◆ get() [2/12]

T && Botan::detail::Strong_Base< T >::get ( ) &&
inlineconstexpr

Definition at line 55 of file strong_type.h.

55{ return std::move(m_value); }

◆ get() [3/12]

const T & Botan::detail::Strong_Base< T >::get ( ) const &
inlineconstexpr

Definition at line 53 of file strong_type.h.

53{ return m_value; }

◆ get() [4/12]

const T && Botan::detail::Strong_Base< T >::get ( ) const &&
inlineconstexpr

Definition at line 57 of file strong_type.h.

57{ return std::move(m_value); }

◆ get() [5/12]

template<typename T>
T & Botan::detail::Strong_Base< T >::get ( ) &
inlineconstexprinherited

Definition at line 51 of file strong_type.h.

51{ return m_value; }

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().

◆ get() [6/12]

template<typename T>
T & Botan::detail::Strong_Base< T >::get ( ) &
inlineconstexprinherited

Definition at line 51 of file strong_type.h.

51{ return m_value; }

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().

◆ get() [7/12]

template<typename T>
T && Botan::detail::Strong_Base< T >::get ( ) &&
inlineconstexprinherited

Definition at line 55 of file strong_type.h.

55{ return std::move(m_value); }

◆ get() [8/12]

template<typename T>
T && Botan::detail::Strong_Base< T >::get ( ) &&
inlineconstexprinherited

Definition at line 55 of file strong_type.h.

55{ return std::move(m_value); }

◆ get() [9/12]

template<typename T>
const T & Botan::detail::Strong_Base< T >::get ( ) const &
inlineconstexprinherited

Definition at line 53 of file strong_type.h.

53{ return m_value; }

◆ get() [10/12]

template<typename T>
const T & Botan::detail::Strong_Base< T >::get ( ) const &
inlineconstexprinherited

Definition at line 53 of file strong_type.h.

53{ return m_value; }

◆ get() [11/12]

template<typename T>
const T && Botan::detail::Strong_Base< T >::get ( ) const &&
inlineconstexprinherited

Definition at line 57 of file strong_type.h.

57{ return std::move(m_value); }

◆ get() [12/12]

template<typename T>
const T && Botan::detail::Strong_Base< T >::get ( ) const &&
inlineconstexprinherited

Definition at line 57 of file strong_type.h.

57{ return std::move(m_value); }

◆ hamming_weight()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::hamming_weight ( ) const
inline

Definition at line 1426 of file bitvector.h.

1426{ return this->get().hamming_weight(); }

References Botan::detail::Strong_Base< T >::get().

◆ has_odd_hamming_weight()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::has_odd_hamming_weight ( ) const
inline

Definition at line 1424 of file bitvector.h.

1424{ return this->get().has_odd_hamming_weight(); }

References Botan::detail::Strong_Base< T >::get().

◆ none_vartime()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::none_vartime ( ) const
inline

Definition at line 1422 of file bitvector.h.

1422{ return this->get().none_vartime(); }

References Botan::detail::Strong_Base< T >::get().

◆ operator[]() [1/2]

template<concepts::container T>
template<typename U>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::operator[] ( U && i) const
inlinenoexceptinherited

Definition at line 128 of file strong_type.h.

128 {
129 return this->get()[std::forward<U>(i)];
130 }

References Botan::detail::Strong_Base< T >::get().

◆ operator[]() [2/2]

template<concepts::container T>
template<typename U>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::operator[] ( U && i)
inlinenoexceptinherited

Definition at line 133 of file strong_type.h.

133 {
134 return this->get()[std::forward<U>(i)];
135 }

References Botan::detail::Strong_Base< T >::get().

◆ pop_back()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::pop_back ( )
inline

Definition at line 1408 of file bitvector.h.

1408{ return this->get().pop_back(); }

References Botan::detail::Strong_Base< T >::get().

◆ push_back()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::push_back ( bool b)
inline

Definition at line 1406 of file bitvector.h.

1406{ return this->get().push_back(b); }

References Botan::detail::Strong_Base< T >::get().

◆ reserve()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::reserve ( size_type n)
inline

Definition at line 1443 of file bitvector.h.

1443{ return this->get().reserve(n); }

References Botan::detail::Strong_Base< T >::get().

◆ resize()

template<concepts::container T>
void Botan::detail::Container_Strong_Adapter_Base< T >::resize ( size_type size)
inlinenoexceptinherited

Definition at line 115 of file strong_type.h.

117 {
118 this->get().resize(size);
119 }
size_type size() const noexcept(noexcept(this->get().size()))

References Botan::detail::Strong_Base< T >::get(), and size().

◆ set()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::set ( size_type i)
inline

Definition at line 1370 of file bitvector.h.

1370{ return this->get().set(i); }

References Botan::detail::Strong_Base< T >::get().

◆ size()

◆ subvector() [1/2]

template<concepts::container T>
template<typename OutT>
requires (std::unsigned_integral<strong_type_wrapped_type<OutT>> && !std::same_as<bool, strong_type_wrapped_type<OutT>>)
auto Botan::detail::Strong_Adapter< T >::subvector ( size_type pos) const
inline

Definition at line 1391 of file bitvector.h.

1391 {
1392 return this->get().template subvector<OutT>(pos);
1393 }
auto subvector(size_type pos, std::optional< size_type > length=std::nullopt) const
Definition bitvector.h:1384

References Botan::detail::Strong_Base< T >::get(), and subvector().

◆ subvector() [2/2]

template<concepts::container T>
template<bitvectorish OutT = T>
auto Botan::detail::Strong_Adapter< T >::subvector ( size_type pos,
std::optional< size_type > length = std::nullopt ) const
inline

Definition at line 1384 of file bitvector.h.

1384 {
1385 return this->get().template subvector<OutT>(pos, length);
1386 }

References Botan::detail::Strong_Base< T >::get(), and subvector().

Referenced by Botan::Classic_McEliece_Matrix::mul(), subvector(), and subvector().

◆ subvector_replace()

template<concepts::container T>
template<typename InT>
requires (std::unsigned_integral<strong_type_wrapped_type<InT>> && !std::same_as<bool, InT>)
void Botan::detail::Strong_Adapter< T >::subvector_replace ( size_type pos,
InT value )
inline

Definition at line 1397 of file bitvector.h.

1397 {
1398 return this->get().subvector_replace(pos, value);
1399 }

References Botan::detail::Strong_Base< T >::get().

◆ to_bytes() [1/2]

template<concepts::container T>
template<typename OutT = T>
auto Botan::detail::Strong_Adapter< T >::to_bytes ( ) const
inline

Definition at line 1433 of file bitvector.h.

1433 {
1434 return this->get().template to_bytes<OutT>();
1435 }

References Botan::detail::Strong_Base< T >::get(), and to_bytes().

Referenced by to_bytes().

◆ to_bytes() [2/2]

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::to_bytes ( std::span< uint8_t > out) const
inline

Definition at line 1437 of file bitvector.h.

1437{ return this->get().to_bytes(out); }

References Botan::detail::Strong_Base< T >::get().

◆ to_string()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::to_string ( ) const
inline

Definition at line 1439 of file bitvector.h.

1439{ return this->get().to_string(); }

References Botan::detail::Strong_Base< T >::get().

◆ unset()

template<concepts::container T>
auto Botan::detail::Strong_Adapter< T >::unset ( size_type i)
inline

Definition at line 1372 of file bitvector.h.

1372{ return this->get().unset(i); }

References Botan::detail::Strong_Base< T >::get().


The documentation for this class was generated from the following files: