Botan 3.13.0
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
 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)

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 1408 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

The const iterator type of the wrapped container.

Definition at line 158 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 263 of file strong_type.h.

◆ iterator

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

The iterator type of the wrapped container.

Definition at line 155 of file strong_type.h.

◆ pointer

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

Definition at line 262 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 1410 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

The element type of the wrapped container.

Definition at line 149 of file strong_type.h.

◆ wrapped_type [1/3]

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

The type wrapped by this strong type.

Definition at line 81 of file strong_type.h.

◆ wrapped_type [2/3]

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

The type wrapped by this strong type.

Definition at line 81 of file strong_type.h.

◆ wrapped_type [3/3]

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

The type wrapped by this strong type.

Definition at line 81 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 268 of file strong_type.h.

268 :
269 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 274 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 1496 of file bitvector.h.

1496{ 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 1498 of file bitvector.h.

1498{ 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 1471 of file bitvector.h.

1471{ 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 1469 of file bitvector.h.

1469{ 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 1428 of file bitvector.h.

1428 {
1429 return this->get().template as<OutT>();
1430 }

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

◆ at() [1/2]

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

Definition at line 1417 of file bitvector.h.

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

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

◆ at() [2/2]

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 1467 of file bitvector.h.

1467{ 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 1465 of file bitvector.h.

1465{ 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

Iterate the wrapped container

Returns
a const iterator to the first element

Definition at line 182 of file strong_type.h.

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

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

◆ begin() [2/2]

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

◆ capacity()

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

Definition at line 1492 of file bitvector.h.

1492{ 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

Iterate the wrapped container

Returns
a const iterator to the first element

Definition at line 198 of file strong_type.h.

198{ 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

Iterate the wrapped container

Returns
a const iterator to the first element

Definition at line 194 of file strong_type.h.

194{ 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

Iterate the wrapped container

Returns
a const iterator one past the last element

Definition at line 206 of file strong_type.h.

206{ 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

Iterate the wrapped container

Returns
a const iterator one past the last element

Definition at line 202 of file strong_type.h.

202{ 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 281 of file strong_type.h.

281{ 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

Query whether the wrapped container is empty

Returns
true if the container holds no elements

Definition at line 214 of file strong_type.h.

216 {
217 return this->get().empty();
218 }

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

Iterate the wrapped container

Returns
a const iterator one past the last element

Definition at line 190 of file strong_type.h.

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

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

◆ end() [2/2]

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

◆ equals()

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

Definition at line 1451 of file bitvector.h.

1451 {
1452 return this->get().equals(other);
1453 }

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 1425 of file bitvector.h.

1425{ 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 1423 of file bitvector.h.

1423{ 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 1479 of file bitvector.h.

1479 {
1480 return this->get().from_bytes(bytes, bits);
1481 }

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 1463 of file bitvector.h.

1463{ 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 1461 of file bitvector.h.

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

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

◆ get() [1/12]

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

Access the wrapped value

Returns
reference to the wrapped value

Definition at line 109 of file strong_type.h.

109{ return m_value; }

Referenced by data().

◆ get() [2/12]

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

Access the wrapped value

Returns
rvalue reference to the wrapped value

Definition at line 117 of file strong_type.h.

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

◆ get() [3/12]

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

Access the wrapped value

Returns
const reference to the wrapped value

Definition at line 113 of file strong_type.h.

113{ return m_value; }

◆ get() [4/12]

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

Access the wrapped value

Returns
const rvalue reference to the wrapped value

Definition at line 121 of file strong_type.h.

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

◆ get() [5/12]

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

Access the wrapped value

Returns
reference to the wrapped value

Definition at line 109 of file strong_type.h.

109{ 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::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().

◆ get() [6/12]

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

Access the wrapped value

Returns
reference to the wrapped value

Definition at line 109 of file strong_type.h.

109{ 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::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().

◆ get() [7/12]

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

Access the wrapped value

Returns
rvalue reference to the wrapped value

Definition at line 117 of file strong_type.h.

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

◆ get() [8/12]

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

Access the wrapped value

Returns
rvalue reference to the wrapped value

Definition at line 117 of file strong_type.h.

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

◆ get() [9/12]

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

Access the wrapped value

Returns
const reference to the wrapped value

Definition at line 113 of file strong_type.h.

113{ return m_value; }

◆ get() [10/12]

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

Access the wrapped value

Returns
const reference to the wrapped value

Definition at line 113 of file strong_type.h.

113{ return m_value; }

◆ get() [11/12]

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

Access the wrapped value

Returns
const rvalue reference to the wrapped value

Definition at line 121 of file strong_type.h.

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

◆ get() [12/12]

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

Access the wrapped value

Returns
const rvalue reference to the wrapped value

Definition at line 121 of file strong_type.h.

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

◆ hamming_weight()

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

Definition at line 1477 of file bitvector.h.

1477{ 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 1475 of file bitvector.h.

1475{ 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 1473 of file bitvector.h.

1473{ 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

Element access

Parameters
ithe index of the element
Returns
const reference to the element at index i

Definition at line 240 of file strong_type.h.

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

Element access

Parameters
ithe index of the element
Returns
reference to the element at index i

Definition at line 248 of file strong_type.h.

248 {
249 return this->get()[std::forward<U>(i)];
250 }

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 1459 of file bitvector.h.

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

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

◆ push_back() [1/2]

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

Definition at line 1455 of file bitvector.h.

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

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

◆ push_back() [2/2]

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

Definition at line 1457 of file bitvector.h.

1457{ 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 1494 of file bitvector.h.

1494{ 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

Change the number of elements held

Parameters
sizethe new number of elements

Definition at line 222 of file strong_type.h.

224 {
225 this->get().resize(size);
226 }
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 1419 of file bitvector.h.

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

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

◆ size()

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

◆ subvector() [1/2]

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

Definition at line 1440 of file bitvector.h.

1440 {
1441 return this->get().template subvector<OutT>(pos);
1442 }
auto subvector(size_type pos, std::optional< size_type > length=std::nullopt) const
Definition bitvector.h:1433

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 1433 of file bitvector.h.

1433 {
1434 return this->get().template subvector<OutT>(pos, length);
1435 }

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>
void Botan::detail::Strong_Adapter< T >::subvector_replace ( size_type pos,
InT value )
inline

Definition at line 1446 of file bitvector.h.

1446 {
1447 return this->get().subvector_replace(pos, value);
1448 }

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 1484 of file bitvector.h.

1484 {
1485 return this->get().template to_bytes<OutT>();
1486 }

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 1488 of file bitvector.h.

1488{ 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 1490 of file bitvector.h.

1490{ 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 1421 of file bitvector.h.

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

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


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