8#ifndef BOTAN_XMSS_TOOLS_H_
9#define BOTAN_XMSS_TOOLS_H_
11#include <botan/cpuid.h>
12#include <botan/secmem.h>
39 typename U =
typename std::enable_if<std::is_integral<T>::value,
54 typename U =
typename std::enable_if<std::is_integral<T>::value,
62template <
typename T,
typename U>
65 const uint8_t* src_bytes =
reinterpret_cast<const uint8_t*
>(&src);
68 std::reverse_copy(src_bytes,
69 src_bytes +
sizeof(src),
70 std::back_inserter(target));
75 src_bytes +
sizeof(src),
76 std::back_inserter(target));
81template <
typename T,
typename U>
86 size_t c =
static_cast<size_t>(std::min(len,
sizeof(src)));
89 target.resize(target.size() + len -
sizeof(src), 0);
92 const uint8_t* src_bytes =
reinterpret_cast<const uint8_t*
>(&src);
95 std::reverse_copy(src_bytes,
97 std::back_inserter(target));
101 std::copy(src_bytes +
sizeof(src) - c,
102 src_bytes +
sizeof(src),
103 std::back_inserter(target));
static bool is_little_endian()
int(* final)(unsigned char *, CTX *)
std::vector< T, secure_allocator< T > > secure_vector