Yawning Angel yawning@schwanenlied.me wrote:
On Fri, 14 Feb 2014 12:00:40 +0100 Fabian Keil freebsd-listen@fabiankeil.de wrote:
Please let me know if it's still broken/if I've missed anything.
from /home/fk/git/obfsclient/src/main.cc:49: /home/fk/git/obfsclient/src/schwanenlied/pt/scramblesuit/client.h:146:60: error: implicit instantiation of undefined template 'std::__1::array<unsigned char, 1448>' ::std::array<uint8_t, kHeaderLength + kMaxPayloadLength> decode_buf_; ^ /usr/include/c++/v1/__tuple:69:60: note: template is declared here template <class _Tp, size_t _Size> struct _LIBCPP_TYPE_VIS array; ^
This should also be fixed, left out #include <array> in scramblesuit/client.h.
I can confirm that, thanks.
In file included from /home/fk/git/obfsclient/src/main.cc:49: /home/fk/git/obfsclient/src/schwanenlied/pt/scramblesuit/client.h:64:14: error: static_cast from 'schwanenlied::pt::scramblesuit::Client *' to 'Socks5Server::Session *' is not allowed return static_castSocks5Server::Session*(new Client(base, sock, addr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 errors generated. *** Error code 1 [...]
Argh. Ok, I think I know what the issue is, although it builds fine with:
somme :: Development/obfsclient/build ‹master*› % clang --version clang version 3.4 (tags/RELEASE_34/final) Target: x86_64-unknown-linux-gnu Thread model: posix
Please try the attached patch and let me know if it's *still* broken.
It's already fixed in 1e25c55ba54 without the patch.
On a side note, tip of tree requires updating liballium since I switched both of liballium and obfsclient to auto[conf/make]/libtool. Hopefully the build process is less rage inducing now.
It is for me. With the attached patches it builds on FreeBSD.
The "#if 0" patch is just FYI, I'm sure a better solution is possible, but it wasn't immediately obvious to me what the pragmas are good for.
./obfsclient_test dumps core:
fk@porttest /home/fk/obfsclient $./obfsclient_test Running main() from gtest_main.cc [==========] Running 29 tests from 7 test cases. [----------] Global test environment set-up. [----------] 3 tests from CryptoUtilsTest [ RUN ] CryptoUtilsTest.memwipe [ OK ] CryptoUtilsTest.memwipe (0 ms) [ RUN ] CryptoUtilsTest.memequalsIsEqual [ OK ] CryptoUtilsTest.memequalsIsEqual (0 ms) [ RUN ] CryptoUtilsTest.memequalsNotEqual [ OK ] CryptoUtilsTest.memequalsNotEqual (0 ms) [----------] 3 tests from CryptoUtilsTest (1 ms total)
[----------] 1 test from UniformDHTest [ RUN ] UniformDHTest.SmokeTest [ OK ] UniformDHTest.SmokeTest (22100 ms) [----------] 1 test from UniformDHTest (22100 ms total)
[----------] 3 tests from Sha256Test [ RUN ] Sha256Test.NIST_NSRL_abc [ OK ] Sha256Test.NIST_NSRL_abc (1 ms) [ RUN ] Sha256Test.NIST_NSRL_abc_dot_dot_dot [ OK ] Sha256Test.NIST_NSRL_abc_dot_dot_dot (0 ms) [ RUN ] Sha256Test.NIST_NSRL_omgLotsOfAs [ OK ] Sha256Test.NIST_NSRL_omgLotsOfAs (8 ms) [----------] 3 tests from Sha256Test (9 ms total)
[----------] 7 tests from HmacSha256Test [ RUN ] HmacSha256Test.RFC4231_Case_1 [ OK ] HmacSha256Test.RFC4231_Case_1 (0 ms) [ RUN ] HmacSha256Test.RFC4231_Case_2 [ OK ] HmacSha256Test.RFC4231_Case_2 (0 ms) [ RUN ] HmacSha256Test.RFC4231_Case_3 [ OK ] HmacSha256Test.RFC4231_Case_3 (0 ms) [ RUN ] HmacSha256Test.RFC4231_Case_4 [ OK ] HmacSha256Test.RFC4231_Case_4 (0 ms) [ RUN ] HmacSha256Test.RFC4231_Case_5 [ OK ] HmacSha256Test.RFC4231_Case_5 (0 ms) [ RUN ] HmacSha256Test.RFC4231_Case_6 [ OK ] HmacSha256Test.RFC4231_Case_6 (0 ms) [ RUN ] HmacSha256Test.RFC4231_Case_7 [ OK ] HmacSha256Test.RFC4231_Case_7 (0 ms) [----------] 7 tests from HmacSha256Test (0 ms total)
[----------] 3 tests from HkdfSha256Test [ RUN ] HkdfSha256Test.RFC5968_Case_1 [ OK ] HkdfSha256Test.RFC5968_Case_1 (0 ms) [ RUN ] HkdfSha256Test.RFC5968_Case_2 [ OK ] HkdfSha256Test.RFC5968_Case_2 (0 ms) [ RUN ] HkdfSha256Test.RFC5968_Case_3 [ OK ] HkdfSha256Test.RFC5968_Case_3 (0 ms) [----------] 3 tests from HkdfSha256Test (1 ms total)
[----------] 6 tests from Base32Test [ RUN ] Base32Test.RFC4648_Test_1 [ OK ] Base32Test.RFC4648_Test_1 (0 ms) [ RUN ] Base32Test.RFC4648_Test_2 [ OK ] Base32Test.RFC4648_Test_2 (0 ms) [ RUN ] Base32Test.RFC4648_Test_3 [ OK ] Base32Test.RFC4648_Test_3 (0 ms) [ RUN ] Base32Test.RFC4648_Test_4 [ OK ] Base32Test.RFC4648_Test_4 (0 ms) [ RUN ] Base32Test.RFC4648_Test_5 [ OK ] Base32Test.RFC4648_Test_5 (0 ms) [ RUN ] Base32Test.RFC4648_Test_6 [ OK ] Base32Test.RFC4648_Test_6 (0 ms) [----------] 6 tests from Base32Test (0 ms total)
[----------] 6 tests from AesTest [ RUN ] AesTest.CtrAes128_SP800_38A Bus error (core dumped)
fk@r500 ~/git/obfsclient $gdb762 obfsclient_test obfsclient_test.core [...] Core was generated by `obfsclient_test'. Program terminated with signal 10, Bus error. #0 0x00000000004090c6 in schwanenlied::crypto::Ctr<schwanenlied::crypto::AesEcb<&EVP_aes_128_ecb, 16ul> >::process (this=0x7fffffffd4f8, buf=0x433c31 schwanenlied::crypto::AesTest_CtrAes128_SP800_38A_Test::TestBody()::vectors+1 "\301\276\342.@\237\226\351=~\021s\223\027*\207Ma\221\266 \343&\033\357hd\231\r\266\316\256-\212W\036\003\254\234\236\267o\254E\257\216Q\230\006\366kyp\375\377\206\027\030{\271\377\375\377\060\310\034F\243\\344\021\345\373\301\031\032\nR\357Z\344\337>\333\325\323^[O\t\002\r\260>\253\366\237$E\337O\233\027\255+A{\346l7\020\036\003\035\332/\276\003\321y!p\240\363", len=<optimized out>, out=<optimized out>) at ./src/schwanenlied/crypto/ctr.h:165 165 *out++ = (*buf++)^ block_[offset_]; (gdb) p offset_ $1 = 11330806256049838041
I didn't look into this or test obfsclient yet, but intend to do so in the next couple of days.
Fabian