This repository was archived by the owner on Feb 17, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
This repository was archived by the owner on Feb 17, 2025. It is now read-only.
How do you use this library? #4
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Hi @nemothenoone, I've just subscribed to boost mailing list. I am interested in c++ in general but I find cryptography particularly interesting. Thus I decided to have a look a your newly proposed library.
However I am stuck at the first step one would do, ie. try to run some examples.
The first code snippet described in the documentation does not compile.
I am using meson 0.54.2
build system, for the auto-config, compile and linking---it uses pkgconfig
under the hood.
So this is the example:
#include <boost/crypto3/block/aes.hpp>
#include <boost/crypto3/block/algorithm/encrypt.hpp>
#include <string>
#include <cassert>
using namespace boost::crypto3;
int main()
{
std::string input =
"\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
"\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
"\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
"\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
"\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
"\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
"\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
"\xad\x2b\x41\x7b\xe6\x6c\x37\x10";
std::string key =
"\x2b\x7e\x15\x16\x28\xae\xd2\xa6"
"\xab\xf7\x15\x88\x09\xcf\x4f\x3c";
std::string out = encrypt<block::aes<128>>(input.begin(), input.end(), key);
assert(out == "3ad77bb40d7a3660a89ecaf32466ef97f5d3d58503b9699de785895a96fdbaaf"
"43b1cd7f598ece23881b00e3ed0306887b0c785e27e8ad3f8223207104725dd4");
return 0;
}
the compiler execution:
c++ -Iexample@exe -I. -I.. -I/opt/boost/1.73.0/include -I/opt/boost-crypto3/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -g -maes -mpclmul -mssse3 -DCRYPTO3_HAS_RIJNDAEL_NI -maes -mpclmul -mssse3 -MD -MQ 'example@exe/example.cpp.o' -MF 'example@exe/example.cpp.o.d' -o 'example@exe/example.cpp.o' -c ../example.cpp
and the error messages:
In file included from /opt/boost-crypto3/include/boost/crypto3/detail/exploder.hpp:15,
from /opt/boost-crypto3/include/boost/crypto3/detail/pack.hpp:15,
from /opt/boost-crypto3/include/boost/crypto3/block/detail/block_stream_processor.hpp:17,
from /opt/boost-crypto3/include/boost/crypto3/block/rijndael.hpp:15,
from /opt/boost-crypto3/include/boost/crypto3/block/aes.hpp:12,
from ../example.cpp:1:
/opt/boost-crypto3/include/boost/crypto3/detail/reverser.hpp:54:2: error: #error "BOOST_ARCH_CURRENT_WORD_BITS not set"
#error "BOOST_ARCH_CURRENT_WORD_BITS not set"
^~~~~
In file included from /opt/boost-crypto3/include/boost/crypto3/block/rijndael.hpp:15,
from /opt/boost-crypto3/include/boost/crypto3/block/aes.hpp:12,
from ../example.cpp:1:
/opt/boost-crypto3/include/boost/crypto3/block/detail/block_stream_processor.hpp:125: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
In file included from /opt/boost-crypto3/include/boost/crypto3/detail/basic_functions.hpp:15,
from /opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_functions.hpp:16,
from /opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_policy.hpp:12,
from /opt/boost-crypto3/include/boost/crypto3/block/rijndael.hpp:18,
from /opt/boost-crypto3/include/boost/crypto3/block/aes.hpp:12,
from ../example.cpp:1:
/opt/boost-crypto3/include/boost/crypto3/detail/make_uint_t.hpp:30: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
In file included from /opt/boost-crypto3/include/boost/crypto3/block/rijndael.hpp:19,
from /opt/boost-crypto3/include/boost/crypto3/block/aes.hpp:12,
from ../example.cpp:1:
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:44: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:54: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:64: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:67: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:71: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:76: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:88: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:90: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:92: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:109: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:111: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:137: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:158: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:180: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_impl.hpp:198: warning: ignoring #pragma clang loop [-Wunknown-pragmas]
#pragma clang loop unroll(full)
In file included from /opt/boost-crypto3/include/boost/crypto3/block/rijndael.hpp:23,
from /opt/boost-crypto3/include/boost/crypto3/block/aes.hpp:12,
from ../example.cpp:1:
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:28:39: error: expected constructor, destructor, or type conversion before ‘(’ token
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:37:39: error: expected constructor, destructor, or type conversion before ‘(’ token
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:67:39: error: expected constructor, destructor, or type conversion before ‘(’ token
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:93:44: error: expected identifier before string constant
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:93:44: error: expected ‘,’ or ‘...’ before string constant
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:93:55: error: ISO C++ forbids declaration of ‘BOOST_ATTRIBUTE_TARGET’ with no type [-fpermissive]
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:93:55: error: expected ‘;’ at end of member declaration
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
;
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:134:44: error: expected identifier before string constant
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:134:44: error: expected ‘,’ or ‘...’ before string constant
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:134:55: error: ISO C++ forbids declaration of ‘BOOST_ATTRIBUTE_TARGET’ with no type [-fpermissive]
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:134:55: error: expected ‘;’ at end of member declaration
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
;
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:134:21: error: ‘int boost::crypto3::block::detail::rijndael_ni_impl<128, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’ cannot be overloaded with ‘int boost::crypto3::block::detail::rijndael_ni_impl<128, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:93:21: note: previous declaration ‘int boost::crypto3::block::detail::rijndael_ni_impl<128, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:175:44: error: expected identifier before string constant
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:175:44: error: expected ‘,’ or ‘...’ before string constant
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:175:55: error: ISO C++ forbids declaration of ‘BOOST_ATTRIBUTE_TARGET’ with no type [-fpermissive]
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:175:55: error: expected ‘;’ at end of member declaration
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
;
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:175:21: error: ‘int boost::crypto3::block::detail::rijndael_ni_impl<128, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’ cannot be overloaded with ‘int boost::crypto3::block::detail::rijndael_ni_impl<128, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:93:21: note: previous declaration ‘int boost::crypto3::block::detail::rijndael_ni_impl<128, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp: In static member function ‘static void boost::crypto3::block::detail::rijndael_ni_impl<128, 128, PolicyType>::schedule_key(const key_type&, boost::crypto3::block::detail::rijndael_ni_impl<128, 128, PolicyType>::key_schedule_type&, boost::crypto3::block::detail::rijndael_ni_impl<128, 128, PolicyType>::key_schedule_type&)’:
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:182:44: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K1 = AES_128_KEY_EXPANSION(K0, 0x01);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:183:44: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K2 = AES_128_KEY_EXPANSION(K1, 0x02);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:184:44: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K3 = AES_128_KEY_EXPANSION(K2, 0x04);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:185:44: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K4 = AES_128_KEY_EXPANSION(K3, 0x08);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:186:44: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K5 = AES_128_KEY_EXPANSION(K4, 0x10);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:187:44: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K6 = AES_128_KEY_EXPANSION(K5, 0x20);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:188:44: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K7 = AES_128_KEY_EXPANSION(K6, 0x40);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:189:44: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K8 = AES_128_KEY_EXPANSION(K7, 0x80);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:190:44: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K9 = AES_128_KEY_EXPANSION(K8, 0x1B);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:179:48: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
#define AES_128_KEY_EXPANSION(K, RCON) detail::aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON))
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:191:45: note: in expansion of macro ‘AES_128_KEY_EXPANSION’
const __m128i K10 = AES_128_KEY_EXPANSION(K9, 0x36);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp: At global scope:
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:236:44: error: expected identifier before string constant
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:236:44: error: expected ‘,’ or ‘...’ before string constant
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:236:55: error: ISO C++ forbids declaration of ‘BOOST_ATTRIBUTE_TARGET’ with no type [-fpermissive]
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:236:55: error: expected ‘;’ at end of member declaration
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
;
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:281:44: error: expected identifier before string constant
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:281:44: error: expected ‘,’ or ‘...’ before string constant
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:281:55: error: ISO C++ forbids declaration of ‘BOOST_ATTRIBUTE_TARGET’ with no type [-fpermissive]
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:281:55: error: expected ‘;’ at end of member declaration
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
;
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:281:21: error: ‘int boost::crypto3::block::detail::rijndael_ni_impl<192, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’ cannot be overloaded with ‘int boost::crypto3::block::detail::rijndael_ni_impl<192, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:236:21: note: previous declaration ‘int boost::crypto3::block::detail::rijndael_ni_impl<192, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:355:44: error: expected identifier before string constant
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:355:44: error: expected ‘,’ or ‘...’ before string constant
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:355:55: error: ISO C++ forbids declaration of ‘BOOST_ATTRIBUTE_TARGET’ with no type [-fpermissive]
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:355:55: error: expected ‘;’ at end of member declaration
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
;
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:355:21: error: ‘int boost::crypto3::block::detail::rijndael_ni_impl<192, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’ cannot be overloaded with ‘int boost::crypto3::block::detail::rijndael_ni_impl<192, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:236:21: note: previous declaration ‘int boost::crypto3::block::detail::rijndael_ni_impl<192, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp: In static member function ‘static void boost::crypto3::block::detail::rijndael_ni_impl<192, 128, PolicyType>::schedule_key(const key_type&, boost::crypto3::block::detail::rijndael_ni_impl<192, 128, PolicyType>::key_schedule_type&, boost::crypto3::block::detail::rijndael_ni_impl<192, 128, PolicyType>::key_schedule_type&)’:
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:366:13: error: ‘aes_192_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
detail::aes_192_key_expansion(&K0, &K1, _mm_aeskeygenassist_si128(K1, RCON), &encryption_key[EK_OFF], EK_OFF == 48)
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:368:25: note: in expansion of macro ‘AES_192_KEY_EXPANSION’
AES_192_KEY_EXPANSION(0x01, 6);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:366:13: error: ‘aes_192_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
detail::aes_192_key_expansion(&K0, &K1, _mm_aeskeygenassist_si128(K1, RCON), &encryption_key[EK_OFF], EK_OFF == 48)
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:369:25: note: in expansion of macro ‘AES_192_KEY_EXPANSION’
AES_192_KEY_EXPANSION(0x02, 12);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:366:13: error: ‘aes_192_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
detail::aes_192_key_expansion(&K0, &K1, _mm_aeskeygenassist_si128(K1, RCON), &encryption_key[EK_OFF], EK_OFF == 48)
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:370:25: note: in expansion of macro ‘AES_192_KEY_EXPANSION’
AES_192_KEY_EXPANSION(0x04, 18);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:366:13: error: ‘aes_192_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
detail::aes_192_key_expansion(&K0, &K1, _mm_aeskeygenassist_si128(K1, RCON), &encryption_key[EK_OFF], EK_OFF == 48)
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:371:25: note: in expansion of macro ‘AES_192_KEY_EXPANSION’
AES_192_KEY_EXPANSION(0x08, 24);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:366:13: error: ‘aes_192_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
detail::aes_192_key_expansion(&K0, &K1, _mm_aeskeygenassist_si128(K1, RCON), &encryption_key[EK_OFF], EK_OFF == 48)
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:372:25: note: in expansion of macro ‘AES_192_KEY_EXPANSION’
AES_192_KEY_EXPANSION(0x10, 30);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:366:13: error: ‘aes_192_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
detail::aes_192_key_expansion(&K0, &K1, _mm_aeskeygenassist_si128(K1, RCON), &encryption_key[EK_OFF], EK_OFF == 48)
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:373:25: note: in expansion of macro ‘AES_192_KEY_EXPANSION’
AES_192_KEY_EXPANSION(0x20, 36);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:366:13: error: ‘aes_192_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
detail::aes_192_key_expansion(&K0, &K1, _mm_aeskeygenassist_si128(K1, RCON), &encryption_key[EK_OFF], EK_OFF == 48)
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:374:25: note: in expansion of macro ‘AES_192_KEY_EXPANSION’
AES_192_KEY_EXPANSION(0x40, 42);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:366:13: error: ‘aes_192_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
detail::aes_192_key_expansion(&K0, &K1, _mm_aeskeygenassist_si128(K1, RCON), &encryption_key[EK_OFF], EK_OFF == 48)
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:375:25: note: in expansion of macro ‘AES_192_KEY_EXPANSION’
AES_192_KEY_EXPANSION(0x80, 48);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp: At global scope:
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:410:44: error: expected identifier before string constant
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:410:44: error: expected ‘,’ or ‘...’ before string constant
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:410:55: error: ISO C++ forbids declaration of ‘BOOST_ATTRIBUTE_TARGET’ with no type [-fpermissive]
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:410:55: error: expected ‘;’ at end of member declaration
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
;
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:459:44: error: expected identifier before string constant
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:459:44: error: expected ‘,’ or ‘...’ before string constant
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:459:55: error: ISO C++ forbids declaration of ‘BOOST_ATTRIBUTE_TARGET’ with no type [-fpermissive]
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:459:55: error: expected ‘;’ at end of member declaration
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
;
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:459:21: error: ‘int boost::crypto3::block::detail::rijndael_ni_impl<256, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’ cannot be overloaded with ‘int boost::crypto3::block::detail::rijndael_ni_impl<256, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:410:21: note: previous declaration ‘int boost::crypto3::block::detail::rijndael_ni_impl<256, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:508:44: error: expected identifier before string constant
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:508:44: error: expected ‘,’ or ‘...’ before string constant
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:508:55: error: ISO C++ forbids declaration of ‘BOOST_ATTRIBUTE_TARGET’ with no type [-fpermissive]
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:508:55: error: expected ‘;’ at end of member declaration
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^
;
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:508:21: error: ‘int boost::crypto3::block::detail::rijndael_ni_impl<256, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’ cannot be overloaded with ‘int boost::crypto3::block::detail::rijndael_ni_impl<256, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:410:21: note: previous declaration ‘int boost::crypto3::block::detail::rijndael_ni_impl<256, 128, PolicyType>::BOOST_ATTRIBUTE_TARGET(int)’
BOOST_ATTRIBUTE_TARGET("ssse3,aes")
^~~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp: In static member function ‘static void boost::crypto3::block::detail::rijndael_ni_impl<256, 128, PolicyType>::schedule_key(const key_type&, boost::crypto3::block::detail::rijndael_ni_impl<256, 128, PolicyType>::key_schedule_type&, boost::crypto3::block::detail::rijndael_ni_impl<256, 128, PolicyType>::key_schedule_type&)’:
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:515:52: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K2 = detail::aes_128_key_expansion(K0, _mm_aeskeygenassist_si128(K1, 0x01));
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:516:52: error: ‘aes_256_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K3 = detail::aes_256_key_expansion(K1, K2);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:518:52: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K4 = detail::aes_128_key_expansion(K2, _mm_aeskeygenassist_si128(K3, 0x02));
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:519:52: error: ‘aes_256_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K5 = detail::aes_256_key_expansion(K3, K4);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:521:52: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K6 = detail::aes_128_key_expansion(K4, _mm_aeskeygenassist_si128(K5, 0x04));
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:522:52: error: ‘aes_256_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K7 = detail::aes_256_key_expansion(K5, K6);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:524:52: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K8 = detail::aes_128_key_expansion(K6, _mm_aeskeygenassist_si128(K7, 0x08));
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:525:52: error: ‘aes_256_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K9 = detail::aes_256_key_expansion(K7, K8);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:527:53: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K10 = detail::aes_128_key_expansion(K8, _mm_aeskeygenassist_si128(K9, 0x10));
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:528:53: error: ‘aes_256_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K11 = detail::aes_256_key_expansion(K9, K10);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:530:53: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K12 = detail::aes_128_key_expansion(K10, _mm_aeskeygenassist_si128(K11, 0x20));
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:531:53: error: ‘aes_256_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K13 = detail::aes_256_key_expansion(K11, K12);
^~~~~~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/rijndael/rijndael_ni_impl.hpp:533:53: error: ‘aes_128_key_expansion’ is not a member of ‘boost::crypto3::block::detail’
const __m128i K14 = detail::aes_128_key_expansion(K12, _mm_aeskeygenassist_si128(K13, 0x40));
^~~~~~~~~~~~~~~~~~~~~
In file included from ../example.cpp:2:
/opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp: In instantiation of ‘OutputRange& boost::crypto3::encrypt(const SinglePassRange&, const KeyPassRange&, OutputRange&) [with BlockCipher = boost::crypto3::block::rijndael<128, 128>; SinglePassRange = __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >; KeyPassRange = __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >; OutputRange = std::__cxx11::basic_string<char>]’:
../example.cpp:26:79: required from here
/opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp:275:20: error: no matching function for call to ‘boost::crypto3::block::detail::range_cipher_impl<boost::crypto3::block::detail::value_cipher_impl<boost::accumulators::accumulator_set<boost::crypto3::digest<128>, boost::accumulators::features<boost::crypto3::accumulators::tag::block<boost::crypto3::block::detail::isomorphic<boost::crypto3::block::detail::isomorphic_encryption_policy<boost::crypto3::block::rijndael<128, 128>, boost::crypto3::block::nop_padding<boost::crypto3::block::rijndael<128, 128> > > > >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, long unsigned int> > >::range_cipher_impl(const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >&, std::remove_reference<std::__cxx11::basic_string<char>&>::type, CipherAccumulator)’
return EncrypterImpl(
^~~~~~~~~~~~~~
rng, std::move(out),
~~~~~~~~~~~~~~~~~~~~
CipherAccumulator(EncryptionMode(BlockCipher(block::detail::key_value<BlockCipher>(key)))));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp:17,
from ../example.cpp:2:
/opt/boost-crypto3/include/boost/crypto3/block/cipher_value.hpp:90:21: note: candidate: ‘template<class InputIterator> boost::crypto3::block::detail::range_cipher_impl<CipherStateImpl>::range_cipher_impl(InputIterator, InputIterator, const accumulator_set_type&)’
range_cipher_impl(InputIterator first, InputIterator last, const accumulator_set_type &ise) :
^~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/cipher_value.hpp:90:21: note: template argument deduction/substitution failed:
In file included from ../example.cpp:2:
/opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp:275:20: note: deduced conflicting types for parameter ‘InputIterator’ (‘__gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >’ and ‘std::__cxx11::basic_string<char>’)
return EncrypterImpl(
^~~~~~~~~~~~~~
rng, std::move(out),
~~~~~~~~~~~~~~~~~~~~
CipherAccumulator(EncryptionMode(BlockCipher(block::detail::key_value<BlockCipher>(key)))));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp:17,
from ../example.cpp:2:
/opt/boost-crypto3/include/boost/crypto3/block/cipher_value.hpp:74:21: note: candidate: ‘template<class SinglePassRange> boost::crypto3::block::detail::range_cipher_impl<CipherStateImpl>::range_cipher_impl(const SinglePassRange&, const accumulator_set_type&)’
range_cipher_impl(const SinglePassRange &range, const accumulator_set_type &ise) :
^~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/cipher_value.hpp:74:21: note: template argument deduction/substitution failed:
In file included from ../example.cpp:2:
/opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp:275:20: note: candidate expects 2 arguments, 3 provided
return EncrypterImpl(
^~~~~~~~~~~~~~
rng, std::move(out),
~~~~~~~~~~~~~~~~~~~~
CipherAccumulator(EncryptionMode(BlockCipher(block::detail::key_value<BlockCipher>(key)))));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp:17,
from ../example.cpp:2:
/opt/boost-crypto3/include/boost/crypto3/block/cipher_value.hpp:61:24: note: candidate: ‘constexpr boost::crypto3::block::detail::range_cipher_impl<boost::crypto3::block::detail::value_cipher_impl<boost::accumulators::accumulator_set<boost::crypto3::digest<128>, boost::accumulators::features<boost::crypto3::accumulators::tag::block<boost::crypto3::block::detail::isomorphic<boost::crypto3::block::detail::isomorphic_encryption_policy<boost::crypto3::block::rijndael<128, 128>, boost::crypto3::block::nop_padding<boost::crypto3::block::rijndael<128, 128> > > > >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, long unsigned int> > >::range_cipher_impl(const boost::crypto3::block::detail::range_cipher_impl<boost::crypto3::block::detail::value_cipher_impl<boost::accumulators::accumulator_set<boost::crypto3::digest<128>, boost::accumulators::features<boost::crypto3::accumulators::tag::block<boost::crypto3::block::detail::isomorphic<boost::crypto3::block::detail::isomorphic_encryption_policy<boost::crypto3::block::rijndael<128, 128>, boost::crypto3::block::nop_padding<boost::crypto3::block::rijndael<128, 128> > > > >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, long unsigned int> > >&)’
struct range_cipher_impl : public CipherStateImpl {
^~~~~~~~~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/cipher_value.hpp:61:24: note: candidate expects 1 argument, 3 provided
/opt/boost-crypto3/include/boost/crypto3/block/cipher_value.hpp:61:24: note: candidate: ‘constexpr boost::crypto3::block::detail::range_cipher_impl<boost::crypto3::block::detail::value_cipher_impl<boost::accumulators::accumulator_set<boost::crypto3::digest<128>, boost::accumulators::features<boost::crypto3::accumulators::tag::block<boost::crypto3::block::detail::isomorphic<boost::crypto3::block::detail::isomorphic_encryption_policy<boost::crypto3::block::rijndael<128, 128>, boost::crypto3::block::nop_padding<boost::crypto3::block::rijndael<128, 128> > > > >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, long unsigned int> > >::range_cipher_impl(boost::crypto3::block::detail::range_cipher_impl<boost::crypto3::block::detail::value_cipher_impl<boost::accumulators::accumulator_set<boost::crypto3::digest<128>, boost::accumulators::features<boost::crypto3::accumulators::tag::block<boost::crypto3::block::detail::isomorphic<boost::crypto3::block::detail::isomorphic_encryption_policy<boost::crypto3::block::rijndael<128, 128>, boost::crypto3::block::nop_padding<boost::crypto3::block::rijndael<128, 128> > > > >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, long unsigned int> > >&&)’
/opt/boost-crypto3/include/boost/crypto3/block/cipher_value.hpp:61:24: note: candidate expects 1 argument, 3 provided
In file included from /opt/boost/1.73.0/include/boost/range/size_type.hpp:20,
from /opt/boost/1.73.0/include/boost/range/adaptor/sliced.hpp:15,
from /opt/boost-crypto3/include/boost/crypto3/block/rijndael.hpp:13,
from /opt/boost-crypto3/include/boost/crypto3/block/aes.hpp:12,
from ../example.cpp:1:
/opt/boost/1.73.0/include/boost/range/concepts.hpp: In instantiation of ‘struct boost::SinglePassRangeConcept<const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> > >’:
/opt/boost/1.73.0/include/boost/concept/detail/has_constraints.hpp:32:62: required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, boost::concepts::detail::wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> > >]’
/opt/boost/1.73.0/include/boost/concept/detail/has_constraints.hpp:42:5: required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> > > >::value’
/opt/boost/1.73.0/include/boost/concept/detail/has_constraints.hpp:45:51: required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> > > >’
/opt/boost/1.73.0/include/boost/concept/detail/general.hpp:51:8: required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> > >)>’
/opt/boost/1.73.0/include/boost/range/algorithm/equal.hpp:175:13: required from ‘typename Cipher::key_type boost::crypto3::block::detail::key_value(const SinglePassRange&) [with Cipher = boost::crypto3::block::rijndael<128, 128>; SinglePassRange = __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >; typename Cipher::key_type = std::array<unsigned char, 16>]’
/opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp:277:99: required from ‘OutputRange& boost::crypto3::encrypt(const SinglePassRange&, const KeyPassRange&, OutputRange&) [with BlockCipher = boost::crypto3::block::rijndael<128, 128>; SinglePassRange = __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >; KeyPassRange = __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >; OutputRange = std::__cxx11::basic_string<char>]’
../example.cpp:26:79: required from here
/opt/boost/1.73.0/include/boost/range/concepts.hpp:274:17: error: no type named ‘type’ in ‘struct boost::range_iterator<const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >, void>’
>::type const_iterator;
^~~~~~~~~~~~~~
/opt/boost/1.73.0/include/boost/range/concepts.hpp:276:66: error: no type named ‘type’ in ‘struct boost::range_iterator<const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >, void>’
typedef BOOST_DEDUCED_TYPENAME range_iterator<Rng>::type iterator;
^~~~~~~~
In file included from /opt/boost/1.73.0/include/boost/concept/assert.hpp:35,
from /opt/boost/1.73.0/include/boost/concept_check.hpp:20,
from /opt/boost/1.73.0/include/boost/range/concepts.hpp:19,
from /opt/boost/1.73.0/include/boost/range/size_type.hpp:20,
from /opt/boost/1.73.0/include/boost/range/adaptor/sliced.hpp:15,
from /opt/boost-crypto3/include/boost/crypto3/block/rijndael.hpp:13,
from /opt/boost-crypto3/include/boost/crypto3/block/aes.hpp:12,
from ../example.cpp:1:
/opt/boost/1.73.0/include/boost/concept/detail/general.hpp:71:5: error: no type named ‘type’ in ‘struct boost::range_iterator<const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >, void>’
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
/opt/boost/1.73.0/include/boost/concept/assert.hpp:43:5: note: in expansion of macro ‘BOOST_CONCEPT_ASSERT_FN’
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^~~~~~~~~~~~~~~~~~~~~~~
/opt/boost/1.73.0/include/boost/range/concepts.hpp:104:45: note: in expansion of macro ‘BOOST_CONCEPT_ASSERT’
#define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
^~~~~~~~~~~~~~~~~~~~
/opt/boost/1.73.0/include/boost/range/concepts.hpp:278:9: note: in expansion of macro ‘BOOST_RANGE_CONCEPT_ASSERT’
BOOST_RANGE_CONCEPT_ASSERT((
^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/boost/1.73.0/include/boost/concept/detail/general.hpp:71:5: error: no type named ‘type’ in ‘struct boost::range_iterator<const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >, void>’
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
/opt/boost/1.73.0/include/boost/concept/assert.hpp:43:5: note: in expansion of macro ‘BOOST_CONCEPT_ASSERT_FN’
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^~~~~~~~~~~~~~~~~~~~~~~
/opt/boost/1.73.0/include/boost/range/concepts.hpp:104:45: note: in expansion of macro ‘BOOST_CONCEPT_ASSERT’
#define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
^~~~~~~~~~~~~~~~~~~~
/opt/boost/1.73.0/include/boost/range/concepts.hpp:281:9: note: in expansion of macro ‘BOOST_RANGE_CONCEPT_ASSERT’
BOOST_RANGE_CONCEPT_ASSERT((
^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp:21,
from ../example.cpp:2:
/opt/boost-crypto3/include/boost/crypto3/block/detail/key_value.hpp: In instantiation of ‘typename Cipher::key_type boost::crypto3::block::detail::key_value(const SinglePassRange&) [with Cipher = boost::crypto3::block::rijndael<128, 128>; SinglePassRange = __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >; typename Cipher::key_type = std::array<unsigned char, 16>]’:
/opt/boost-crypto3/include/boost/crypto3/block/algorithm/encrypt.hpp:277:99: required from ‘OutputRange& boost::crypto3::encrypt(const SinglePassRange&, const KeyPassRange&, OutputRange&) [with BlockCipher = boost::crypto3::block::rijndael<128, 128>; SinglePassRange = __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >; KeyPassRange = __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >; OutputRange = std::__cxx11::basic_string<char>]’
../example.cpp:26:79: required from here
/opt/boost-crypto3/include/boost/crypto3/block/detail/key_value.hpp:36:107: error: no type named ‘iterator’ in ‘class __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >’
typedef typename std::iterator_traits<typename SinglePassRange::iterator>::value_type value_type;
^~~~~~~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/key_value.hpp:50:31: error: no type named ‘iterator’ in ‘class __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >’
return key;
^
/opt/boost-crypto3/include/boost/crypto3/block/detail/key_value.hpp:40:65: error: no type named ‘iterator’ in ‘class __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >’
std::numeric_limits<value_type>::digits + std::numeric_limits<value_type>::is_signed;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/key_value.hpp:40:65: error: no type named ‘iterator’ in ‘class __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >’
/opt/boost-crypto3/include/boost/crypto3/block/detail/key_value.hpp:47:100: error: ‘const class __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >’ has no member named ‘begin’
boost::crypto3::detail::pack_to<endian_type, value_bits, key_value_bits>(range.begin(), range.end(),
~~~~~~^~~~~
/opt/boost-crypto3/include/boost/crypto3/block/detail/key_value.hpp:47:115: error: ‘const class __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >’ has no member named ‘end’
boost::crypto3::detail::pack_to<endian_type, value_bits, key_value_bits>(range.begin(), range.end(),
~~~~~~^~~
Am I missing some trivial step, or is it that this is still work in progress?
Best regards,
Eduardo
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working