9 template <
typename Bytes>
void change_pubkey_endian(Bytes &pkey) {
10 size_t step = pkey.size() / 2;
11 for (
size_t i = 0; i < pkey.size(); i += step) {
12 for (
size_t j = 0; j < step / 2; j++) {
13 std::swap(pkey[i + j], pkey[i + step - 1 - j]);
18 template <
typename T>
void change_pubkey_endian(T *pkey,
size_t pkey_size) {
19 static_assert(
sizeof(T) == 1,
"change_endian is only for 1 byte type");
20 size_t step = pkey_size / 2;
21 for (
size_t i = 0; i < pkey_size; i += step) {
22 for (
size_t j = 0; j < step / 2; j++) {
23 std::swap(pkey[i + j], pkey[i + step - 1 - j]);
28 template <
typename T>
void endian_swap(T *pData,
int start_index,
int length) {
29 static_assert(
sizeof(T) == 1,
"endian_swap is only for 1 byte type");
30 int i, cnt, end, start;
33 end = start_index + length - 1;
35 for (i = 0; i < cnt; i++) {
36 tmp = pData[start + i];
37 pData[start + i] = pData[end - i];
41 template <
typename Bytes>
void endian_swap(Bytes &data) {
42 endian_swap(data.data(), 0, data.size());